클라우드 매뉴얼

Home > 클라우드 > 글로벌 클라우드 > AWS > AWS 보안 강화하기

IAM 계정에 멀티 팩터 인증(MFA) 적용 IAM 계정에 멀티 팩터 인증(MFA) 적용

보안을 강화하기 위해 IAM 계정 로그인 시 멀티 팩터 인증(MFA)을 반드시 사용하도록 설정할 수 있습니다.

 

MFA를 사용하여 로그인하는 경우에만 AWS 서비스에 접근 할 수 있도록 아래 절차에 따라 정책을 설정하세요.

 

MFA 로그인을 강제할 정책 생성

 

1. AWS 콘솔에 관리자 자격 증명을 가진 계정으로 로그인합니다.

 

2. IAM 콘솔 (https://console.aws.amazon.com/iam/)을 엽니다.

 

3. 탐색 창에서 [정책]을 클릭합니다.

 

 

4. [정책 생성] 버튼을 클릭합니다.

 

 

5. JSON 탭을 선택하고 텍스트 상자에 입력되어 있는 내용을 모두 삭제합니다. 


아래의 JSON 정책 텍스트를 복사하여 텍스트 상자에 붙여 넣고 [다음:태그] 버튼을 클릭합니다. 
 

 

 

  • JSON 정책 텍스트

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowViewAccountInfo",
            "Effect": "Allow",
            "Action": [
                "iam:GetAccountPasswordPolicy",
                "iam:ListVirtualMFADevices"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowManageOwnPasswords",
            "Effect": "Allow",
            "Action": [
                "iam:ChangePassword",
                "iam:GetUser"
            ],
            "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
            "Sid": "AllowManageOwnAccessKeys",
            "Effect": "Allow",
            "Action": [
                "iam:CreateAccessKey",
                "iam:DeleteAccessKey",
                "iam:ListAccessKeys",
                "iam:UpdateAccessKey"
            ],
            "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
            "Sid": "AllowManageOwnSigningCertificates",
            "Effect": "Allow",
            "Action": [
                "iam:DeleteSigningCertificate",
                "iam:ListSigningCertificates",
                "iam:UpdateSigningCertificate",
                "iam:UploadSigningCertificate"
            ],
            "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
            "Sid": "AllowManageOwnSSHPublicKeys",
            "Effect": "Allow",
            "Action": [
                "iam:DeleteSSHPublicKey",
                "iam:GetSSHPublicKey",
                "iam:ListSSHPublicKeys",
                "iam:UpdateSSHPublicKey",
                "iam:UploadSSHPublicKey"
            ],
            "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
            "Sid": "AllowManageOwnGitCredentials",
            "Effect": "Allow",
            "Action": [
                "iam:CreateServiceSpecificCredential",
                "iam:DeleteServiceSpecificCredential",
                "iam:ListServiceSpecificCredentials",
                "iam:ResetServiceSpecificCredential",
                "iam:UpdateServiceSpecificCredential"
            ],
            "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
            "Sid": "AllowManageOwnVirtualMFADevice",
            "Effect": "Allow",
            "Action": [
                "iam:CreateVirtualMFADevice",
                "iam:DeleteVirtualMFADevice"
            ],
            "Resource": "arn:aws:iam::*:mfa/${aws:username}"
        },
        {
            "Sid": "AllowManageOwnUserMFA",
            "Effect": "Allow",
            "Action": [
                "iam:DeactivateMFADevice",
                "iam:EnableMFADevice",
                "iam:ListMFADevices",
                "iam:ResyncMFADevice"
            ],
            "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
            "Sid": "DenyAllExceptListedIfNoMFA",
            "Effect": "Deny",
            "NotAction": [
                "iam:CreateVirtualMFADevice",
                "iam:EnableMFADevice",
                "iam:GetUser",
                "iam:ListMFADevices",
                "iam:ListVirtualMFADevices",
                "iam:ResyncMFADevice",
                "sts:GetSessionToken"
            ],
            "Resource": "*",
            "Condition": {
                "BoolIfExists": {
                    "aws:MultiFactorAuthPresent": "false"
                }
            }
        }
    ]
}
 

 

(선택 사항) 6. 태그 페이지에서 태그 키-값을 추가하고, 다음을 클릭합니다.

 

7. 정책 검토 페이지에서 정책 이름에 ‘Force_MFA’을 입력합니다.


정책 설명에 아래 문장을 입력합니다:

 

This policy allows users to manage their own passwords and MFA devices but nothing else unless they authenticate with MFA.


정책 요약을 검토하여 정책이 부여한 권한을 확인합니다. 


[정책 생성] 버튼을 선택하여 작업을 저장합니다.
 

 

8. 새로운 정책이 관리형 정책 목록에 나타나며 연결 준비가 완료됩니다.

 

 

 

사용자 그룹에 정책 연결

 

MFA 보호 권한을 부여하는 데 사용할 테스트 IAM 사용자 그룹에 두 개의 정책을 연결합니다.

 

1. 탐색 창에서 [사용자 그룹]을 클릭합니다.

 

 

2. [그룹 생성] 버튼을 클릭합니다.

 

 

3. 사용자 그룹 생성 화면에서 그룹 이름 지정에 적절한 이름(예, EC2MFA)을 입력합니다.

 

 

4. 권한 정책 연결 페이지의 검색 상자에 ‘EC2Full’을 입력합니다. 

 

목록에서 ‘AmazonEC2FullAccess’의 왼쪽에 있는 체크박스를 선택합니다. 

 

 

5. 검색 상자에 ‘Force’를 입력한 다음, 목록에서 ‘Force_MFA’의 왼쪽에 있는 체크박스를 선택합니다. 

 

 

6. [그룹 생성] 버튼을 클릭합니다.

 

MFA 설정 정책을 추가하여 IAM 계정 생성

 

1. 탐색창에서 [사용자]를 클릭합니다.

 

 

2. [사용자 추가] 버튼을 클릭합니다.

 

 

3. 적절한 사용자 이름과 액세스 유형을 선택합니다.

 

 

4. 권한 설정에서 그룹에 사용자 추가 아래의 목록을 확인합니다. 


‘EC2MFA’ 왼쪽의 체크박스를 선택하고 [다음:태그] 버튼을 클릭합니다. 

 

 

(선택 사항) 5. 태그 추가 페이지에서 태그 키-값을 추가하고, 다음을 클릭합니다.

 

6. 검토 페이지에서 입력했던 내용을 확인한 다음 [사용자 만들기]를 클릭합니다.

 

IAM 계정에서 MFA 설정하기

 

1. AWS 콘솔에 IAM 계정으로 로그인합니다.

 

2. EC2를 선택해 Amazon EC2 콘솔을 열고 사용자에게 어떤 권한도 없음을 확인합니다.

 

3. [멀티 팩터 인증(MFA) 적용 안내] 매뉴얼을 참고하여 MFA를 설정합니다.

 

4. 로그아웃 후 다시 로그인한 다음, EC2를 선택해 Amazon EC2 콘솔을 열고 권한이 생겼음을 확인합니다.

 

※ 참고
IAM 자습서: 사용자가 자신의 자격 증명 및 MFA 설정을 관리하도록 허용
 

  • AWS

    • 빌링콘솔 기능 안내

    • API 키 발급 안내

    • AWS 예산 초과 알림 설정하기

    • AWS 예산 초과 알림 수정하기

    • 멀티 팩터 인증(MFA) 적용 안내

    • 멀티 팩터 인증(MFA) 분실 시 대응 방법 안내

    • AWS 보안 강화하기

    • 퍼블릭 IP 인사이트 활용하기