~/.aws/config
의 프로파일을 통해 역할 부여해당 계정에 대해 MFA 인증
을 받아야만 sts
를 발급 받고 CLI 환경에서 명령을 수행
할 수 있도록 하는 역할을 생성
합니다.
신뢰 관계
내용은 아래와 같습니다.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowDevUserAssumeRole",
"Effect": "Allow",
"Principal": {
"AWS": [
<IAM 사용자 ARN>
]
},
"Action": "sts:AssumeRole",
"Condition": {
"StringEquals": {
"sts:RoleSessionName": "${aws:username}-cli"
},
"Bool": {
"aws:MultiFactorAuthPresent": "true"
}
}
}
]
}
AmazonEC2FullAccess
정책을 연결해줍니다.~/.aws/config
의 내용에 역할을 부여할 프로파일 밑에 role_arn
, role_session_name
, mfa_serial
, source_profile
을 추가합니다.
role_arn
: 위에서 생성한 역할의 ARN을 붙여 넣습니다.role_session_name
: IAM사용자-cli
형식으로 넣습니다.mfa_serial
: IAM 사용자의 MFA ARN을 붙여 넣습니다.source_profile
: ~/.aws/credentials
파일에서 액세스 키 관련 정보를 가져오고 싶은 프로파일을 입력합니다.[profile hongikit]
region = ap-northeast-2
role_arn = arn:aws:iam::<계정ID>:role/<역할 이름>
role_session_name = <IAM 사용자 이름>-cli
mfa_serial = arn:aws:iam::<계정ID>:mfa/<IAM 사용자 이름>
source_profile = hongikit
해당 내용을 저장하면, AWS CLI를 이용할 때 해당 프로파일을 사용하게 되면 MFA
인증을 요구하게 됩니다.
주의
이렇게 역할을 부여하게 되면 기존에 사용자나 사용자 그룹에 연결된 정책들은모두 무시
되고 해당 역할에 연결된 정책으로 덮어씌워집니다.
프로파일과 관련된 ec2 인스턴스 목록을 조회하려는 명령을 수행하려하면 아래와 같이 MFA 인증을 요구하는 것을 볼 수 있습니다.
MFA 인증을 하면 명령이 수행됩니다.