AWS:允許 IAM 使用者在 My Security Credentials (我的安全憑證) 頁面上管理其憑證 - AWS Identity and Access Management

AWS:允許 IAM 使用者在 My Security Credentials (我的安全憑證) 頁面上管理其憑證

此範例會示範如何建立 IAM 政策,允許 IAM 使用者在 My Security Credentials (我的安全憑證) 頁面上管理其所有憑證。此 AWS Management Console 頁面會顯示如帳戶 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 陳述式可讓使用者變更自己的密碼。此陳述式也包括檢視 My Security Credentials 頁面上大部分資訊所需的 GetUser 動作。

  • AllowManageOwnAccessKeys 陳述式可讓使用者建立、更新及刪除自己的存取金鑰。

  • AllowManageOwnSigningCertificates 陳述式可讓使用者上傳、更新及刪除自己的簽章憑證。

  • AllowManageOwnSSHPublicKeys 陳述式允許使用者上傳、更新及刪除自己用於 CodeCommit 的 SSH 公有金鑰。

  • AllowManageOwnGitCredentials 陳述式可讓使用者建立、更新及刪除自己用於 CodeCommit 的 Git 憑證。

此政策不允許使用者檢視或管理自己的 MFA 裝置。他們也不能檢視 IAM 主控台中的 Users (使用者) 頁面,或使用該頁面存取自己的使用者資訊。若要允許此操作,請將 iam:ListUsers 動作加入 AllowViewAccountInfo 陳述式。它也不允許使用者在自己的使用者頁面上變更密碼。若要允許此操作,請將 iam:CreateLoginProfileiam:DeleteLoginProfileiam:GetLoginProfileiam: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}" } ] }