

# 更新访问密钥
<a name="id-credentials-access-keys-update"></a>

作为一项安全[最佳实践](best-practices.md#update-access-keys)，建议您在需要时更新 IAM 用户访问密钥，例如员工从公司离职时。已获得必要权限的 IAM 用户可以更新自己的访问密钥。

有关如何向 IAM 用户授予自行更新访问密钥的详细信息，请参阅 [AWS：允许 IAM 用户在“安全凭证”页面上管理自己的密码、访问密钥和 SSH 公有密钥](reference_policies_examples_aws_my-sec-creds-self-manage-pass-accesskeys-ssh.md)。您还可以将密码策略应用于您的账户，以要求所有 IAM 用户定期更新其密码，并规定必须执行这一操作的频率。有关更多信息，请参阅 [为 IAM 用户设置账户密码策略](id_credentials_passwords_account-policy.md)。

**注意**  
如果您丢失了秘密访问密钥，则必须删除访问密钥并创建新的访问密钥。秘密访问密钥只能在创建密钥时检索到。使用此过程停用所有丢失的访问密钥，然后用新的凭证替换任何丢失的访问密钥。

**Topics**
+ [更新 IAM 用户访问密钥（控制台）](#rotating_access_keys_console)
+ [更新访问密钥（AWS CLI）](#rotating_access_keys_cli)
+ [更新访问密钥（AWS API）](#rotating_access_keys_api)

## 更新 IAM 用户访问密钥（控制台）
<a name="rotating_access_keys_console"></a>

您可以通过 AWS 管理控制台更新访问密钥。

**在不中断应用程序的情况下更新 IAM 用户的访问密钥（控制台）**

1. 当第一个访问密钥仍处于活动状态时，创建第二个访问密钥。

   1. 登录 AWS 管理控制台，单击 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 打开 IAM 控制台。

   1. 在导航窗格中，选择**用户**。

   1. 选择预期用户的名称，然后选择**安全凭证**选项卡。

   1. 在**访问密钥**部分，选择**创建访问密钥**。在 **Access key best practices & alternatives**（访问密钥最佳实践和替代方法）页面上，选择 **Other**（其他），然后选择 **Next**（下一步）。

   1. （可选）设置访问密钥的描述标签值，以向 IAM 用户添加标签键/值对。这有助于您以后标识和更新访问密钥。标签密钥设置为访问密钥 ID。标签值设置为您指定的访问密钥描述。完成后，选择 **Create access key**（创建访问密钥）。

   1. 在 **Retrieve access keys**（检索访问密钥）页面上，选择 **Show**（显示）来显示用户的秘密访问密钥的值，或选择 **Download .csv file**（下载 .csv 文件）。这是您保存秘密访问密钥的唯一机会。将秘密访问密钥保存在安全位置后，请选择 **Done**（完成）。

      为用户创建访问密钥时，默认情况下，密钥对处于活动状态，并且您可以立即使用此密钥对。此时，用户拥有两个访问密钥。

1. 更新所有应用程序和工具以使用新的访问密钥。

1. <a name="id_credentials_access-keys-key-still-in-use"></a>通过查看最早的访问密钥的 **Last used**（上次使用）信息来确定第一个访问密钥是否仍在使用。一种方法是等待几天，然后检查旧访问密钥是否被使用，然后再继续。

1. 即使 **Last used**（上次使用）信息指示旧密钥从未使用过，我们还是建议您不要立即删除第一个访问密钥。相反，选择 **Actions**（操作），然后选择 **Deactivate**（停用）以停用第一个访问密钥。

1. 仅使用新的访问密钥，以确认您的应用程序可以正常工作。此时，任何仍在使用初始访问密钥的应用程序和工具将停止工作，因为它们不再具有对 AWS 资源的访问权限。如果您发现此类应用程序或工具，可以选择重新激活第一个访问密钥。然后返回到 [Step 3](#id_credentials_access-keys-key-still-in-use) 并更新此应用程序以使用新的密钥。

1. 在等待一段时间以确保所有应用程序和工具均已更新后，可以删除第一个访问密钥：

   1. 登录 AWS 管理控制台，单击 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 打开 IAM 控制台。

   1. 在导航窗格中，选择**用户**。

   1. 选择预期用户的名称，然后选择**安全凭证**选项卡。

   1. 在要删除的访问密钥的 **Access keys**（访问密钥）部分中，选择 **Actions**（操作），然后选择 **Delete**（删除）。按照对话框中的说明先 **Deactivate**（停用），然后确认删除。

**确定需要更新或删除的访问密钥（控制台）**

1. 登录 AWS 管理控制台，单击 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 打开 IAM 控制台。

1. 在导航窗格中，选择**用户**。

1. 如有必要，可通过完成以下步骤来将 **Access key age** 列添加到用户表中：

   1. 在最右侧的表上方，选择设置图标 (![\[Settings icon\]](http://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/images/console-settings-icon.console.png))。

   1. 在 **Manage columns (管理列)** 中，选择 **Access key age (访问密钥使用期限)**。

   1. 选择 **Close** 返回到用户列表。

1. **Access key age** 列显示最早的活动访问密钥自创建至今经过的天数。您可以利用此信息来确定可能需要更新或删除访问密钥的用户。对于没有访问密钥的用户，该列显示 **None**。

## 更新访问密钥（AWS CLI）
<a name="rotating_access_keys_cli"></a>

您可以通过 AWS Command Line Interface 更新访问密钥。

**在不中断应用程序的情况下更新访问密钥（AWS CLI）**

1. 当第一个访问密钥仍处于活动状态时，创建第二个访问密钥，后者在默认情况下将处于活动状态。运行如下命令：
   + [https://docs.aws.amazon.com/cli/latest/reference/iam/create-access-key.html](https://docs.aws.amazon.com/cli/latest/reference/iam/create-access-key.html)

     此时，用户拥有两个访问密钥。

1. <a name="step-update-apps"></a>更新所有应用程序和工具以使用新的访问密钥。

1. <a name="step-determine-use"></a>通过使用以下命令，确定第一个访问密钥是否仍在使用：
   +  [https://docs.aws.amazon.com/cli/latest/reference/iam/get-access-key-last-used.html](https://docs.aws.amazon.com/cli/latest/reference/iam/get-access-key-last-used.html)

   一种方法是等待几天，然后检查旧访问密钥是否被使用，然后再继续。

1. 即使步骤 [Step 3](#step-determine-use) 指示旧密钥未被使用，我们也建议您不要立即删除第一个访问密钥。而是通过以下命令，将第一个访问密钥的状态更改为 `Inactive`：
   +  [https://docs.aws.amazon.com/cli/latest/reference/iam/update-access-key.html](https://docs.aws.amazon.com/cli/latest/reference/iam/update-access-key.html)

1. 仅使用新的访问密钥，以确认您的应用程序可以正常工作。此时，任何仍在使用初始访问密钥的应用程序和工具将停止工作，因为它们不再具有对 AWS 资源的访问权限。如果您发现此类应用程序或工具，可将其状态切换回 `Active` 以重新激活第一个访问密钥。然后返回到步骤 [Step 2](#step-update-apps) 并更新此应用程序以使用新的密钥。

1. 在等待一段时间以确保所有应用程序和工具均已更新后，您可以通过以下命令删除第一个访问密钥：
   + [https://docs.aws.amazon.com/cli/latest/reference/iam/delete-access-key.html](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-access-key.html)

## 更新访问密钥（AWS API）
<a name="rotating_access_keys_api"></a>

您可以使用 AWS API 来更新访问密钥。

**在不中断应用程序的情况下更新访问密钥（AWS API）**

1. 当第一个访问密钥仍处于活动状态时，创建第二个访问密钥，后者在默认情况下将处于活动状态。调用以下操作：
   + [https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateAccessKey.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateAccessKey.html)

     此时，用户拥有两个访问密钥。

1. <a name="step-update-apps-2"></a>更新所有应用程序和工具以使用新的访问密钥。

1. <a name="step-determine-use-2"></a>通过调用以下操作，确定第一个访问密钥是否仍在使用：
   + [https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetAccessKeyLastUsed.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetAccessKeyLastUsed.html)

   一种方法是等待几天，然后检查旧访问密钥是否被使用，然后再继续。

1. 即使步骤 [Step 3](#step-determine-use-2) 指示旧密钥未被使用，我们也建议您不要立即删除第一个访问密钥。而是调用以下操作，将第一个访问密钥的状态更改为 `Inactive`：
   + [https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateAccessKey.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateAccessKey.html)

1. 仅使用新的访问密钥，以确认您的应用程序可以正常工作。此时，任何仍在使用初始访问密钥的应用程序和工具将停止工作，因为它们不再具有对 AWS 资源的访问权限。如果您发现此类应用程序或工具，可将其状态切换回 `Active` 以重新激活第一个访问密钥。然后返回到步骤 [Step 2](#step-update-apps-2) 并更新此应用程序以使用新的密钥。

1. 在等待一段时间以确保所有应用程序和工具均已更新后，您可以通过调用以下操作，删除第一个访问密钥：
   + [https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteAccessKey.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteAccessKey.html)