본문 바로가기

퍼블릭 클라우드

AWS IAM 사용자에게 MFA 강제 적용하고 정책과 MFA 디바이스를 스스로 관리 설정하는 정책

반응형

AWS IAM 사용자에게 MFA 강제 적용하고 정책과 MFA 디바이스를 스스로 관리 설정하는 정책

AWS IAM 사용자에게 MFA(Multi-Factor Authentication)를 강제 적용하고 각 사용자가 자신의 정책과 MFA 디바이스를 스스로 관리하도록 허용하는 IAM 정책입니다.

1. MFA 미사용 시 모든 액세스를 차단하는 정책(MFA 강제 정책)

MFA 인증 여부를 확인하고 MFA 인증된 경우에만 AWS 리소스에 대한 접근을 허용하는 정책을 정의합니다.

정책 이름 : EnforceMFAAccessPolicy

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "DenyAllActionsWithoutMFA",
      "Effect": "Deny",
      "Action": "*",
      "Resource": "*",
      "Condition": {
        "BoolIfExists": {
          "aws:MultiFactorAuthPresent": "false"
        }
      }
    },
    {
      "Sid": "AllowMinimalMFASetup",
      "Effect": "Allow",
      "Action": [
        "iam:CreateVirtualMFADevice",
        "iam:EnableMFADevice",
        "iam:ListMFADevices",
        "iam:ResyncMFADevice",
        "iam:DeactivateMFADevice",
        "iam:DeleteVirtualMFADevice",
        "iam:GetUser",
        "iam:ListVirtualMFADevices",
        "sts:GetSessionToken"
      ],
      "Resource": [
        "arn:aws:iam::*:user/${aws:username}",
        "arn:aws:iam::*:mfa/${aws:username}"
      ]
    },
    {
      "Sid": "AllowChangeOwnPassword",
      "Effect": "Allow",
      "Action": [
        "iam:ChangePassword",
        "iam:GetLoginProfile",
        "iam:UpdateLoginProfile"
      ],
      "Resource": "arn:aws:iam::*:user/${aws:username}"
    }
  ]
}

2. IAM 사용자가 자신의 비밀번호 및 MFA 디바이스를 스스로 등록/관리하는 정책(자체 관리 정책)

사용자가 자신의 정책 및 MFA 디바이스를 관리할 수 있는 권한을 부여하는 정책을 정의합니다.

정책 이름 : SelfManageMFAAndPolicyPolicy

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "AllowManageOwnInlinePolicies",
      "Effect": "Allow",
      "Action": [
        "iam:GetUserPolicy",
        "iam:ListUserPolicies",
        "iam:PutUserPolicy",
        "iam:DeleteUserPolicy"
      ],
      "Resource": "arn:aws:iam::*:user/${aws:username}"
    },
    {
      "Sid": "AllowFullSelfMFADeviceManagement",
      "Effect": "Allow",
      "Action": [
        "iam:CreateVirtualMFADevice",
        "iam:DeleteVirtualMFADevice",
        "iam:EnableMFADevice",
        "iam:DeactivateMFADevice",
        "iam:ListVirtualMFADevices",
        "iam:ListMFADevices",
        "iam:ResyncMFADevice",
        "iam:GetUser"
      ],
      "Resource": [
        "arn:aws:iam::*:user/${aws:username}",
        "arn:aws:iam::*:mfa/${aws:username}"
      ]
    },
    {
      "Sid": "AllowManageOwnPassword",
      "Effect": "Allow",
      "Action": [
        "iam:GetLoginProfile",
        "iam:UpdateLoginProfile",
        "iam:ChangePassword"
      ],
      "Resource": "arn:aws:iam::*:user/${aws:username}"
    }
  ]
}

 

728x90
반응형