

# AWS: IAM ユーザーが [セキュリティ認証情報] ページで自分のパスワード、アクセスキー、および SSH パブリックキーを管理できるようにします
<a name="reference_policies_examples_aws_my-sec-creds-self-manage-pass-accesskeys-ssh"></a>

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

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

**このポリシーで行うこと**
+ この `AllowViewAccountInfo` ステートメントでは、ユーザーにアカウントレベルの情報を表示します。これらのアクセス許可は、リソース ARN をサポートしていないか、または指定する必要がないため、独自のステートメントに含まれている必要があります。代わりに `"Resource" : "*"` を指定するアクセス許可を使用します。このステートメントには、ユーザーが特定の情報を表示できるようにする以下のアクションが含まれています。
  + `GetAccountPasswordPolicy` – IAM ユーザーパスワードを変更しながら、アカウントのパスワード要件を確認します。
  + `GetAccountSummary` – アカウント ID とアカウントの表示 [正規ユーザー ID](https://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html#FindingCanonicalId)。
+ `AllowManageOwnPasswords` ステートメントを使用すると、ユーザーは自分のパスワードを変更できます。このステートメントには `GetUser` アクションも含まれています。これは、**[My security credentials]** (セキュリティ認証情報) ページのほとんどの情報を表示するために必要です。
+ この `AllowManageOwnAccessKeys` ステートメントにより、ユーザーは自分のアクセスキーを作成、更新、削除できます。ユーザーは指定されたアクセスキーの最後の使用時の情報を取得することもできます。
+ この `AllowManageOwnSSHPublicKeys` ステートメントにより、ユーザーは自分の CodeCommit の SSH パブリックキーをアップロード、更新、削除できます。

このポリシーでは、ユーザーは自分の MFA デバイスを表示または管理できません。このポリシーでは、IAM コンソールで **[Users]** (ユーザー) ページを表示したり、そのページを使用して自分のユーザー情報にアクセスすることもできません。これを許可するには、`iam:ListUsers` アクションを `AllowViewAccountInfo` ステートメントに追加します。また、ユーザーが自分のユーザーページで自分のパスワードを変更することはできません。これを許可するには、`iam:GetLoginProfile` および `iam:UpdateLoginProfile` アクションを `AllowManageOwnPasswords` ステートメントに追加します。

------
#### [ JSON ]

****  

```
{
    "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}"
        }
    ]
}
```

------