AWS: IAM ユーザーが [My Security Credentials (セキュリティ認証情報)] ページで自分の認証情報を管理できるようにします。 - AWS Identity and Access Management

AWS: IAM ユーザーが [My Security Credentials (セキュリティ認証情報)] ページで自分の認証情報を管理できるようにします。

次のようなポリシーを作成する方法を示します。 IAM ユーザーが [My Security Credentials (セキュリティ認証情報)] ページで自分のすべての認証情報を管理することを許可します。この AWS マネジメントコンソール ページには、アカウント ID や正規ユーザー ID などのアカウント情報が表示されます。ユーザーは、自分のパスワード、アクセスキー、X.509 証明書、SSH キー、および Git 認証情報を表示および編集することもできます。この例では、ユーザーの MFA デバイス以外の必要なアクセス許可がポリシーに含まれているページ上のすべての情報を表示および編集する手順について説明します。ユーザーが MFA を使用して自らのすべての認証情報を管理することを許可するには、「AWS: MFA で認証された IAM ユーザーが [My Security Credentials (セキュリティ認証情報)] ページで自分の認証情報を管理できるようにします。」を参照してください。

ユーザーが [My Security Credentials (セキュリティ認証情報)] ページにアクセスする方法については、「IAM ユーザー自身によるパスワードの変更方法 (コンソール)」を参照してください。

このポリシーで行うこと

  • この AllowViewAccountInfo ステートメントでは、ユーザーにアカウントレベルの情報を表示します。これらのアクセス許可は、リソース ARN をサポートしていないか、または指定する必要がないため、独自のステートメントに含まれている必要があります。代わりに "Resource" : "*" を指定するアクセス許可を使用します。このステートメントには、ユーザーが特定の情報を表示できるようにする以下のアクションが含まれています。

    • GetAccountPasswordPolicy – IAM ユーザーパスワードを変更しながら、アカウントのパスワード要件を確認します。

    • GetAccountSummary – アカウント ID とアカウントの表示 正規ユーザー ID

  • AllowManageOwnPasswords ステートメントを使用すると、ユーザーは自分のパスワードを変更できます。このステートメントにはGetUser アクションも含まれています。これは、[My Security Credentials (セキュリティ認証情報)] ページのほとんどの情報を表示するために必要です。

  • この AllowManageOwnAccessKeys ステートメントにより、ユーザーは自分のアクセスキーを作成、更新、削除できます。

  • この AllowManageOwnSigningCertificates ステートメントにより、ユーザーは自分のデジタル署名用証明書をアップロード、更新、削除できます。

  • AllowManageOwnSSHPublicKeys ステートメントにより、ユーザーは自分の CodeCommit の SSH パブリックキーをアップロード、更新、削除できます。

  • AllowManageOwnGitCredentials ステートメントにより、ユーザーは自分の CodeCommit の Git 認証情報をアップロード、更新、削除できます。

このポリシーでは、ユーザーは自分の MFA デバイスを表示または管理できません。このポリシーでは、IAM コンソールで [ユーザー] ページを表示したり、そのページを使用して自分のユーザー情報にアクセスすることもできません。これを許可するには、iam:ListUsers アクションを AllowViewAccountInfo ステートメントに追加します。また、ユーザーが自分のユーザーページで自分のパスワードを変更することはできません。これを許可するには、iam:CreateLoginProfileiam:DeleteLoginProfileiam: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" ], "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}" } ] }