본문 바로가기

[AWS]/[Troubleshooting]

[AWS] MFA 적용 후 AWS cli 사용시 access denied 나오는 경우

반응형

[사유]

AWS 로그인 시 MFA로 보안을 강화한 경우가 많을거다. 

MFA를 통한 session token 없이 aws cli를 사용하게 되는 경우 IAM이 poweruser여도 어김없이 AccessDeniedException이 나온다

[해결]

./.aws/credential 파일안에 profile 정보들이 있을텐데 다음과 같은 정보들이 있어야한다.

  1. aws_access_key_id
  2. aws_secret_access_key
  3. aws_session_token

[적용]

1. AWS 사용자 정보에서 mfauser_arn 정보를 가져온다

2. profile 설정

./aws/config 파일에 1에서 가져온 정보들을 입력한다

vi ~/.aws/config

[iam-dev]
mfa_serial = MFA_SERIAL
output = json

[profile dev]
user_arn = USER_ARN
source_profile = iam-dev
region = ap-northeast-2

사용할 IAM 계정 등록

vi ~/.aws/credentials

[iam-dev]
aws_access_key_id = ACCESS_KEY
aws_secret_access_key = SECRET_KEY

3. session token 생성

IAM 사용자의 경우 12시간 동안 유효하고 root계정인 경우 1시간만 유효하다

aws sts get-session-token --serial-number [MFA_SERIAL] --token-code [OTP] --profile dev
# 결과
{
    "Credentials": {
        "AccessKeyId": "ACCESSKEY",
        "SecretAccessKey": "SECRETKEY",
        "SessionToken": "SESSIONTOKEN",
        "Expiration": "2022-02-14T16:51:17+00:00"
    }
}

SessionToken 값을 credential 아래에 추가해준다

vi ~/.aws/credentials

[aws-dev]
aws_access_key_id = ACCESS_KEY
aws_secret_access_key = SECRET_KEY
aws_session_token = SESSION_TOKEN

 

728x90