AWS: MFA 인증 IAM 사용자가 내 보안 자격 증명(My Security Credentials) 페이지에서 자신의 MFA 디바이스를 관리할 수 있도록 허용합니다. - AWS Identity and Access Management

AWS: MFA 인증 IAM 사용자가 내 보안 자격 증명(My Security Credentials) 페이지에서 자신의 MFA 디바이스를 관리할 수 있도록 허용합니다.

이 예제에서는 다음과 같은 정책을 생성할 수 있는 방법을 보여 줍니다.에서는 Multi-Factor Authentication(MFA)을 통해 인증된 IAM 사용자가 My Security Credentials(내 보안 자격 증명) 페이지에서 자신의 MFA 디바이스를 관리할 수 있도록 허용합니다. 이 AWS Management 콘솔 페이지에는 계정 및 사용자 정보가 표시되지만, 사용자는 자신의 MFA 디바이스만 보고 편집할 수 있습니다. 사용자가 MFA를 사용하여 자신의 모든 자격 증명을 관리하도록 허용하려면 AWS: MFA 인증 IAM 사용자가 내 보안 자격 증명(My Security Credentials) 페이지에서 자신의 자격 증명을 관리할 수 있도록 허용합니다. 단원을 참조하십시오.

참고

이 정책을 가진 IAM 사용자가 MFA 인증을 받지 않은 경우 이 정책은 MFA를 사용하여 인증하는 데 필요한 AWS 작업을 제외한 모든 해당 작업에 대한 액세스를 거부합니다. AWS CLI 및 AWS API를 사용하려면 IAM 사용자가 먼저 AWS STS GetSessionToken 작업을 사용하여 MFA 토큰을 검색한 다음 해당 토큰을 사용하여 원하는 작업을 인증해야 합니다. 리소스 기반 정책이나 기타 자격 증명 기반 정책 등의 기타 정책은 다른 서비스의 작업을 허용할 수 있습니다. 이 정책은 IAM 사용자가 MFA 인증되지 않은 경우 해당 액세스를 거부합니다.

사용자가 My Security Credentials(내 보안 자격 증명) 페이지에 액세스할 수 있는 방법을 알아보려면 IAM 사용자가 자신의 암호를 변경하는 방법(콘솔) 단원을 참조하십시오.

이 정책이 하는 일은 무엇입니까?

  • AllowViewAccountInfo 문은 사용자가 사용자에 대해 활성화된 가상 MFA 디바이스에 대한 세부 정보를 볼 수 있도록 허용합니다. 이 권한은 리소스 ARN 지정을 지원하지 않으므로 자신의 문에 들어 있어야 합니다. 그 대신 "Resource" : "*"를 지정해야 합니다.

  • AllowManageOwnVirtualMFADevice 문은 사용자가 에 대한 자신의 가상 MFA 디바이스를 생성하고 삭제할 수 있도록 허용합니다. 이 문의 리소스 ARN은 현재 로그인한 사용자와 동일한 이름의 MFA 디바이스에만 액세스를 허용합니다. 사용자는 자신의 것이 아닌 다른 가상 MFA 디바이스를 생성하거나 삭제할 수 없습니다.

  • AllowManageOwnUserMFA 문은 사용자가 자신의 가상, U2F 또는 하드웨어 MFA 디바이스를 보거나 관리할 수 있도록 허용합니다. 이 문의 리소스 ARN은 사용자 자신의 IAM 사용자에 대한 액세스만 허용합니다. 사용자는 다른 사용자의 MFA 디바이스를 보거나 관리할 수 없습니다.

  • DenyAllExceptListedIfNoMFA 문은 사용자가 MFA를 사용하여 로그인하지 않은 경우에만 몇 가지 나열된 작업을 제외한 모든 AWS의 모든 작업에 대한 액세스를 거부합니다. 이 문은 "Deny""NotAction"의 조합을 사용하여 나열되지 않은 모든 작업에 대한 액세스를 명시적으로 거부합니다. 나열된 항목은 이 문에 따라 거부되거나 허용되지 않습니다. 하지만 정책의 다른 문에서 작업이 허용됩니다. 이 문의 로직에 대한 자세한 내용은 NotAction 및 Deny 단원을 참조하십시오. 사용자가 MFA를 사용하여 로그인한 경우 Condition 테스트가 실패하며 이 문은 어떠한 작업도 거부하지 않습니다. 이 경우 사용자에 대한 다른 정책 또는 문에 따라 사용자의 권한이 결정됩니다.

    이 문을 사용하면 MFA를 사용하여 로그인하지 않은 사용자는 나열된 작업만 수행할 수 있습니다. 또한 사용자는 다른 문 또는 정책이 해당 작업에 대한 액세스를 허용하는 경우에만 나열된 작업을 수행할 수 있습니다.

    ...IfExists 키를 분실했을 경우 Bool 연산자의 aws:MultiFactorAuthPresent 버전은 조건이 true로 반환됩니다. 따라서 액세스 키와 같은 장기 자격 증명을 사용하여 API 작업에 액세스하는 사용자는 비 IAM API 작업에 대한 액세스가 거부됩니다.

이 정책은 사용자가 IAM 콘솔에서 Users(사용자) 페이지를 보거나 이 페이지를 사용하여 자신의 사용자 정보에 액세스할 수 있도록 허용합니다. 이 작업을 허용하려면 iam:ListUsers 작업을 AllowViewAccountInfo 문과 DenyAllExceptListedIfNoMFA 문에 추가합니다.

주의

MFA 인증 없이 MFA 디바이스를 삭제할 수 있는 권한 추가를 허용하지 마십시오. 이 정책을 보유한 사용자는 스스로를 MFA 디바이스로 지정하려 하고 iam:DeleteVirtualMFADevice 수행에 필요한 권한이 부여되지 않았다는 오류가 표시될 수 있습니다. 이 경우 DenyAllExceptListedIfNoMFA 문에 해당 권한을 추가하지 마십시오. MFA를 사용하여 인증되지 않은 사용자에게 MFA 디바이스 삭제를 허용해서는 안 됩니다. 이전에 사용자에게 가상 MFA 디바이스를 할당하기 시작하고 프로세스를 취소한 경우 이 오류가 표시될 수 있습니다. 이 문제를 해결하려면 사용자 또는 다른 관리자가 AWS CLI 또는 AWS API를 사용하여 사용자의 기존 MFA 디바이스를 삭제해야 합니다. 자세한 내용은 iam:DeleteVirtualMFADevice를 수행할 권한이 없음 단원을 참조하십시오.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowViewAccountInfo", "Effect": "Allow", "Action": "iam:ListVirtualMFADevices", "Resource": "*" }, { "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:GetUser", "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"} } } ] }