[AWS] AWS CLI를 이용할 때 MFA 인증하도록 프로파일에 역할 부여

HYEOB KIM·2022년 6월 16일
1

aws

목록 보기
41/62

개요

  • AWS CLI를 이용할 때 MFA를 통해 인증해야만 명령 실행이 가능하도록 프로파일에 역할을 부여해봅시다.

전체 과정

AWS 공식 문서 - 멀티 팩터 인증 사용

  1. sts 발급 및 MFA 인증 관련 역할 생성
  2. ~/.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 인증을 하면 명령이 수행됩니다.

profile
Devops Engineer

0개의 댓글