IT/AWS

[AWS] aws-vault로 AWS CLI 사용하기(윈도우,MFA)

반응형

aws-vault란?

aws-vault는 AWS CLI를사용하기위해 보안 키를 안전하게 보관해 주는 도구입니다.

aws-vault를 사용하는 이유

만약 AWS IAM User의 KEY를 발급받았는데 MFA설정이 되어있고, MFA를 사용해야만 리소스에 접근할 수 있도록 설정이 되어있다면 반드시 임시토큰을 발급받아서 AWS CLI설정파일에 등록을 해야 합니다.

임시토큰은 기본적으로 12시간 동안만 유효하므로 매번 토큰을 생성하여 AWS CLI설정 파일에 토큰값을 업데이트 해줘야 하는데,
aws-vault는 이렇게 임시 토큰 발행부터 AWS CLI설정 파일에 값을 업데이트 하는 과정을 자동으로 해준다는 큰 장점을 갖고 있습니다.

aws-vault사용하지 않을 경우

IAM Role

  • 아래 조건과 같이 MFA를 강제로 사용하게 되어있다면 CLI사용시 임시토큰을 발행 받고 AWS CLI설정을 업데이트 해줘야함
"Condition": {
                "BoolIfExists": {
                    "aws:MultiFactorAuthPresent": "false"
                }
            }

임시 토큰 생성

aws sts get-session-token --serial-number arn:aws:iam::123456789012:mfa/USER_NAME --token-code MFA_CODE

MFA 정보 업데이트

  • C:\Users\kakaopaysec.aws\config
  • 설정한 MFA의 arn 정보 입력 mfa_serial
[default]

[profile account1]
region = ap-northeast-2
mfa_serial = arn:aws:iam::123456789012:mfa/USER_NAME
  • C:\Users\kakaopaysec.aws\credentials
[default]

[dev]
aws_access_key_id = 
aws_secret_access_key = 
aws_session_token = 

aws-valut사용 했을 경우

위 과정을 aws-vault를 사용하여 자동화 할 수 있습니다.

choco install

  • choco는 MAC의 brew와 비슷한 패키지 관리 툴입니다.
  • 파워쉘을 관리자 권한으로 파워셀 실행 한 뒤 아래 명령어 입력
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

aws-vault 설치확인

aws-vault --version

aws-vault 프로파일 등록하기

aws-vault add account1

MFA 정보 업데이트

  • C:\Users\kakaopaysec.aws\config
  • 설정한 MFA의 arn 정보 입력 mfa_serial
[default]

[profile account1]
region = ap-northeast-2
mfa_serial = arn:aws:iam::123456789012:mfa/USER_NAME

aws cli 명령어 실행

  • 명령어 실행시 생성한 MFA인증 토큰 값만 입력해주면 됨
aws-vault exec account1 -- aws s3 ls
반응형