MFA가 설정되어 있는 경우 CLI 환경에서 AWS 관련 작업을 진행하기 위해서는 자격 증명이 되어야 합니다. 이번 글에서는 세션 토큰을 이용하여 임시로 보안 자격 증명을 받는 방법을 알아보겠습니다.
(Optional) 현재 사용 중인 IAM 사용자/역할 확인하기
$ aws sts get-caller-identity
아래 명령어를 통해 임시 세션 토큰 발급
# 기존 IAM 사용자
$ aws sts get-session-token --serial-number <MFA_DEVICE_ARN> --token-code <MFA_SIX_DIGIT_TOKEN>
# 기존 IAM 사용자가 아닌 다른 사용자를 지정해야할 경우
$ aws --profile [별칭] sts get-session-token --serial-number <MFA_DEVICE_ARN> --token-code <MFA_SIX_DIGIT_TOKEN>
MAF가 등록된 장치의 ARN과 MFA 토큰이 정상적으로 입력되었다면 아래와 같이 임시 세션 토큰이 발행됩니다.
{
"Credentials": {
"AccessKeyId": <AccessKeyId>,
"SecretAccessKey": <SecretAccessKey>,
"SessionToken": <SessionToken>,
"Expiration": "2020-05-22T17:12:13+00:00"
},
}
임시 세션 토큰 등록
발급된 임시 세션 토큰을 ~/.aws/credentials에 적어주거나, export를 통해 환경변수로 등록하면 해당 IAM 사용자 정보로 CLI를 이용할 수 있게 됩니다.
$ vim ~/.aws/credentials
[별칭]
aws_access_key_id=<AccessKeyID>
aws_secret_access_key=<SecretAccessKey>
aws_session_token=<SessionToken>
# 또는,
$ export AWS_ACCESS_KEY_ID=<AccessKeyId>
$ export AWS_SECRET_ACCESS_KEY=<SecretAccessKey>
$ export AWS_SESSION_TOKEN=<SessionToken>
잘못된 내용, 오타, 부정확한 문장 등 어떤 피드백이든 환영합니다. 감사합니다.
References
https://docs.aws.amazon.com/cli/latest/reference/sts/get-caller-identity.html
https://docs.aws.amazon.com/cli/latest/reference/sts/get-session-token.html