[AWS] IAM 계정 force_mfa 정책 설정

김도훈 - DevOps Engineer·2023년 11월 2일
0

AWS

목록 보기
4/4
post-thumbnail

이 글은 IAM 계정을 발급할 때 MFA 등록 및 패스워드 변경을 강제하도록 설정하고, MFA 등록 방법도 설명한다.

1. Force_MFA 정책 생성

{
    "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",
                "iam:GetAccessKeyLastUsed"
            ],
            "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"
            ],
            "Resource": "arn:aws:iam::*:mfa/*"
        },
        {
            "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:GetMFADevice",
                "iam:ListMFADevices",
                "iam:ListVirtualMFADevices",
                "iam:ResyncMFADevice",
                "sts:GetSessionToken",
                "iam:ChangePassword"
            ],
            "Resource": "*",
            "Condition": {
                "BoolIfExists": {
                    "aws:MultiFactorAuthPresent": "false"
                }
            }
        }
    ]
}



2. IAM 유저 생성


IAM 계정을 발급할 때 AWS 관리형 권한인 IAMUserChangePassword, 위에서 생성한 Force_MFA 권한을 추가한다.




3. IAM 유저 콘솔 로그인

발급한 계정의 Id, Password를 입력하면 위와 같이 최초 로그인 시 IAMUSerChangePassword 권한에 따라 반드시 패스워드를 변경해야 한다.


4. 권한 확인

MFA 등록을 하기 전에는 콘솔에서 MFA 등록을 제외한 어떠한 접근도 할 수 없다.


MFA 등록 가이드

1. 우측 상단 계정을 클릭 후 보안 자격 증명을 클릭한다.


2. MFA 디바이스 할당 클릭


3. 디바이스 이름, 디바이스 종류를 선택하고 다음 버튼 클릭


4. Authenticator app을 사용해서 QR코드를 등록하고 MFA 코드 입력 및 다음 코드가 나올때까지 기다린 후 2번째 코드도 입력하고 MFA 추가 버튼 클릭

여기서 MFA를 등록할 때 1password를 사용하면 매우 간편하게 콘솔 로그인 시 id, password, MFA까지 자동으로 입력해준다.


5. 콘솔 엑세스 확인

MFA를 등록하게 되면 부여된 권한에 따라 콘솔에서 접근이 가능하다.

profile
Email:ehgns5669@gmail.com

0개의 댓글