Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
aws-vault — 개발 환경에서 AWS 자격 증명을 안전하게 저장하고 접근하기 위한 vault | Kitploit
도구/GitHubGitHub/99designs/aws-vault
Cloud Infrastructure SecurityGeneral Purpose UtilitiesEncryption/Decryption ToolsCloud SecurityDevSecOpsSecret DetectionIdentity & Access Management (IAM)Authentication
GitHub99designs/aws-vault

aws-vault

개발 환경에서 AWS 자격 증명을 안전하게 저장하고 접근하기 위한 vault

저장소 보기
9.0k8279개월 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

AWS Vault

Downloads Continuous Integration

[!WARNING] 이 프로젝트는 중단되었으며 더 이상 업데이트를 받지 않습니다. 계속해서 업데이트를 받거나 기여하고 싶으시다면, 다음의 활성 포크를 확인해 주세요: https://github.com/ByteNess/aws-vault

AWS Vault는 개발 환경에서 AWS 자격 증명을 안전하게 저장하고 접근하기 위한 도구입니다.

AWS Vault는 IAM 자격 증명을 운영 체제의 보안 키스토어에 저장한 다음, 그로부터 임시 자격 증명을 생성하여 셸과 애플리케이션에 노출합니다. 이는 AWS CLI 도구를 보완하도록 설계되었으며, ~/.aws/config의 프로필과 구성을 인식합니다.

자세한 내용은 발표 블로그 글을 확인해 주세요.

설치

AWS Vault를 설치할 수 있는 방법:

  • 최신 릴리스 다운로드
  • macOS에서 Homebrew 사용: brew install aws-vault
  • macOS에서 MacPorts 사용: port install aws-vault
  • Windows에서 Chocolatey 사용: choco install aws-vault
  • Windows에서 Scoop 사용: scoop install aws-vault
  • Linux에서 Homebrew on Linux 사용: brew install aws-vault
  • Arch Linux에서: pacman -S aws-vault
  • Gentoo Linux에서: emerge --ask app-admin/aws-vault (먼저 Guru 활성화)
  • FreeBSD에서: pkg install aws-vault
  • OpenSUSE에서: devel:languages:go 저장소를 활성화한 후 zypper install aws-vault
  • Nix 사용: nix-env -i aws-vault
  • asdf-vm 사용: asdf plugin-add aws-vault https://github.com/karancode/asdf-aws-vault.git && asdf install aws-vault <version>

문서

구성, 사용법, 팁과 요령은 USAGE.md 파일에서 확인할 수 있습니다.

보관 백엔드

지원되는 보관 백엔드는 다음과 같습니다:

  • macOS Keychain
  • Windows Credential Manager
  • Secret Service (Gnome Keyring, KWallet)
  • KWallet
  • Pass
  • 암호화된 파일

--backend 플래그 또는 AWS_VAULT_BACKEND 환경 변수를 사용하여 지정하세요.

빠른 시작

# Store AWS credentials for the "jonsmith" profile
$ aws-vault add jonsmith
Enter Access Key Id: ABDCDEFDASDASF
Enter Secret Key: %%%

# Execute a command (using temporary credentials)
$ aws-vault exec jonsmith -- aws s3 ls
bucket_1
bucket_2

# open a browser window and login to the AWS Console
$ aws-vault login jonsmith

# List credentials
$ aws-vault list
Profile                  Credentials              Sessions
=======                  ===========              ========
jonsmith                 jonsmith                 -

# Start a subshell with temporary credentials
$ aws-vault exec jonsmith
Starting subshell /bin/zsh, use `exit` to exit the subshell
$ aws s3 ls
bucket_1
bucket_2

작동 방식

aws-vault는 Amazon의 STS 서비스를 사용하여 GetSessionToken 또는 AssumeRole API 호출을 통해 임시 자격 증명을 생성합니다. 이들은 짧은 기간 내에 만료되므로 자격 증명이 유출될 위험이 줄어듭니다.

그런 다음 AWS Vault는 다음 두 가지 방법 중 하나로 임시 자격 증명을 하위 프로세스에 노출합니다

  1. 환경 변수가 하위 프로세스에 기록됩니다. 아래 예제에서 AWS 자격 증명이 어떻게 기록되는지 확인하세요
    $ aws-vault exec jonsmith -- env | grep AWS
    AWS_VAULT=jonsmith
    AWS_DEFAULT_REGION=us-east-1
    AWS_REGION=us-east-1
    AWS_ACCESS_KEY_ID=%%%
    AWS_SECRET_ACCESS_KEY=%%%
    AWS_SESSION_TOKEN=%%%
    AWS_CREDENTIAL_EXPIRATION=2020-04-16T11:16:27Z
    
  2. 로컬 메타데이터 서버가 시작됩니다. 이 접근 방식은 Amazon의 SDK를 사용하는 모든 것이 필요에 따라 자격 증명을 자동으로 갱신한다는 장점이 있어 세션 시간을 가능한 한 짧게 유지할 수 있습니다.
    $ aws-vault exec --server jonsmith -- env | grep AWS
    AWS_VAULT=jonsmith
    AWS_DEFAULT_REGION=us-east-1
    AWS_REGION=us-east-1
    AWS_CONTAINER_CREDENTIALS_FULL_URI=%%%
    AWS_CONTAINER_AUTHORIZATION_TOKEN=%%%
    

기본값은 환경 변수를 사용하는 것이지만, exec 명령에 --server 플래그를 사용하여 로컬 인스턴스 메타데이터 서버를 선택적으로 사용할 수 있습니다.

역할 및 MFA

모범 사례는 권한을 위임하기 위해 역할을 생성하는 것입니다. 보안을 위해 사용자가 다중 인증(MFA) 장치에서 생성된 일회용 키를 제공하도록 요구해야 합니다.

먼저 IAM에서 사용자와 역할을 생성하고 MFA 장치를 설정해야 합니다. 그런 다음 MFA를 강제하도록 IAM 역할을 설정할 수 있습니다.

다음은 역할과 MFA를 사용하는 구성 예제입니다:

[default]
region = us-east-1

[profile jonsmith]
mfa_serial = arn:aws:iam::111111111111:mfa/jonsmith

[profile foo-readonly]
source_profile = jonsmith
role_arn = arn:aws:iam::22222222222:role/ReadOnly

[profile foo-admin]
source_profile = jonsmith
role_arn = arn:aws:iam::22222222222:role/Administrator
mfa_serial = arn:aws:iam::111111111111:mfa/jonsmith

[profile bar-role1]
source_profile = jonsmith
role_arn = arn:aws:iam::333333333333:role/Role1
mfa_serial = arn:aws:iam::111111111111:mfa/jonsmith

[profile bar-role2]
source_profile = bar-role1
role_arn = arn:aws:iam::333333333333:role/Role2
mfa_serial = arn:aws:iam::111111111111:mfa/jonsmith

aws-vault에서 기대할 수 있는 동작은 다음과 같습니다

CommandCredentialsCachedMFA
aws-vault exec jonsmith --no-sessionLong-term credentialsNoNo
aws-vault exec jonsmithsession-tokensession-tokenYes
aws-vault exec foo-readonlyroleNoNo
aws-vault exec foo-adminsession-token + rolesession-tokenYes
aws-vault exec foo-admin --duration=2hroleroleYes
aws-vault exec bar-role2session-token + role + rolesession-tokenYes
aws-vault exec bar-role2 --no-sessionrole + roleroleYes

개발

macOS 릴리스 빌드는 Keychain에서 추가 프롬프트를 피하기 위해 코드 서명되어 있습니다. 다음으로 이를 확인할 수 있습니다:

$ codesign --verify --verbose $(which aws-vault)

aws-vault 바이너리를 직접 개발하거나 컴파일하는 경우, Keychain Access > Certificate Assistant > Create Certificate -> Certificate Type: Code Signing에 접근하여 자체 서명 인증서를 생성할 수 있습니다. 그런 다음 다음으로 바이너리에 서명할 수 있습니다:

$ go build .
$ codesign --sign <Name of certificate created above> ./aws-vault

참고 및 영감

  • https://github.com/pda/aws-keychain
  • https://docs.aws.amazon.com/IAM/latest/UserGuide/MFAProtectedAPI.html
  • https://docs.aws.amazon.com/IAM/latest/UserGuide/IAMBestPractices.html#create-iam-users
  • https://github.com/makethunder/awsudo
  • https://github.com/AdRoll/hologram
  • https://github.com/realestate-com-au/credulous
  • https://github.com/dump247/aws-mock-metadata
  • https://boto.readthedocs.org/en/latest/boto_config_tut.html
도구 다운로드