이 예시는 보안 인증 페이지에서 IAM 사용자가 암호, 액세스 키, X.509 인증서를 관리할 수 있도록 허용하는 자격 증명 기반 정책을 생성하는 방법을 보여줍니다. 이 AWS Management Console 페이지에는 계정 ID 및 정식 사용자 ID와 같은 계정 정보가 표시됩니다. 또한 사용자는 자신의 암호, 액세스 키, MFA 디바이스, X.509 인증서, SSH 키 및 Git 자격 증명을 보고 편집할 수 있습니다. 이 예제 정책에는 자신의 암호, 액세스 키 및 X.509 인증서만 보고 편집하는 데 필요한 권한이 포함되어 있습니다. 사용자가 MFA를 사용하여 자신의 모든 자격 증명을 관리하도록 허용하려면 AWS: MFA 인증 IAM 사용자가 보안 인증 페이지에서 자신의 보안 인증을 관리할 수 있도록 허용 섹션을 참조하세요. 사용자가 MFA를 사용하지 않고 자신의 자격 증명을 관리하도록 허용하려면 AWS: IAM 사용자가 보안 인증 페이지에서 자신의 보안 인증을 관리할 수 있도록 허용 섹션을 참조하세요.
사용자가 보안 인증 페이지에 액세스할 수 있는 방법을 알아보려면 IAM 사용자가 자신의 암호를 변경하는 방법(콘솔) 섹션을 참조하세요.
이 정책이 하는 일은 무엇입니까?
-
AllowViewAccountInfo
문은 사용자가 계정 수중 정보를 볼 수 있도록 허용합니다. 이러한 권한은 리소스 ARN을 지원하지 않거나 리소스 ARN을 지정하는 데 필요하지 않기 때문에 자신의 문에 포함되어 있어야 합니다. 권한 대신"Resource" : "*"
를 지정합니다. 이 문에는 사용자가 특정 정보를 볼 수 있도록 허용하는 다음 작업이 포함되어 있습니다.-
GetAccountPasswordPolicy
- 자신의 IAM 사용자 암호를 변경하는 동안 계정 암호 요구 사항을 봅니다. -
GetAccountSummary
- 계정 ID 및 계정 정식 사용자 ID를 봅니다.
-
-
AllowManageOwnPasswords
문은 사용자가 자신의 암호를 변경할 수 있도록 허용합니다. 또한 이 문에는 My security credentials(내 보안 자격 증명) 페이지에 있는 대부분의 정보를 보는 데 필요한GetUser
작업도 포함되어 있습니다. -
AllowManageOwnAccessKeys
문은 사용자가 자신의 액세스 키를 생성, 업데이트 및 삭제할 수 있도록 허용합니다. 사용자가 지정된 액세스 키가 마지막으로 사용된 시간에 대한 정보를 검색할 수도 있습니다. -
AllowManageOwnSSHPublicKeys
문은 사용자가 CodeCommit에 대한 자신의 SSH 퍼블릭 키를 업로드, 업데이트 및 삭제할 수 있도록 허용합니다.
이 정책은 사용자가 자신의 MFA 디바이스를 보거나 관리하도록 허용하지 않습니다. 또한 사용자는 IAM 콘솔에서 사용자 페이지를 보거나 이 페이지를 사용하여 자신의 사용자 정보에 액세스할 수 없습니다. 이 작업을 허용하려면 iam:ListUsers
작업을 AllowViewAccountInfo
문에 추가합니다. 또한 이 문은 사용자가 자신의 사용자 페이지에서 암호를 변경하도록 허용하지 않습니다. 이 작업을 허용하려면 iam:GetLoginProfile
및 iam:UpdateLoginProfile
작업을 AllowManageOwnPasswords
문에 추가합니다.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowViewAccountInfo",
"Effect": "Allow",
"Action": [
"iam:GetAccountPasswordPolicy",
"iam:GetAccountSummary"
],
"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": "AllowManageOwnSSHPublicKeys",
"Effect": "Allow",
"Action": [
"iam:DeleteSSHPublicKey",
"iam:GetSSHPublicKey",
"iam:ListSSHPublicKeys",
"iam:UpdateSSHPublicKey",
"iam:UploadSSHPublicKey"
],
"Resource": "arn:aws:iam::*:user/${aws:username}"
}
]
}