AWS: IAM ユーザーが [セキュリティ認証情報] ページで自分のパスワード、アクセスキー、および SSH パブリックキーを管理できるようにします - AWS Identity and Access Management

AWS: IAM ユーザーが [セキュリティ認証情報] ページで自分のパスワード、アクセスキー、および SSH パブリックキーを管理できるようにします

この例は、IAM ユーザーが [セキュリティ認証情報] ページで自分のパスワード、アクセスキー、および X.509 証明書を管理できるようにする ID ベースポリシーを作成する方法を示しています。この AWS Management Console ページには、アカウント ID や正規ユーザー ID などのアカウント情報が表示されます。ユーザーは、自分のパスワード、アクセスキー、MFA デバイス、X.509 証明書、SSH キー、および Git 認証情報を表示および編集することもできます。このポリシー例には、パスワード、アクセスキー、および X.509 証明書のみを表示および編集するために必要なアクセス許可が含まれています。ユーザーに MFA を使用して自らのすべての認証情報を管理することを許可するには、「AWS: MFA で認証された IAM ユーザーが [セキュリティ認証情報] ページで自分の認証情報を管理できるようにします」を参照してください。ユーザーに MFA を使用せずに自らの認証情報を管理することを許可するには、「AWS: IAM ユーザーが [セキュリティ認証情報] ページで自分の認証情報を管理できるようにします」を参照してください。

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

このポリシーで行うこと

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

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

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

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

  • この AllowManageOwnAccessKeys ステートメントにより、ユーザーは自分のアクセスキーを作成、更新、削除できます。ユーザーは指定されたアクセスキーの最後の使用時の情報を取得することもできます。

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

このポリシーでは、ユーザーは自分の MFA デバイスを表示または管理できません。このポリシーでは、IAM コンソールで [Users] (ユーザー) ページを表示したり、そのページを使用して自分のユーザー情報にアクセスすることもできません。これを許可するには、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}" } ] }