AWS Identity and Access Management
用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

管理 IAM 用户的访问密钥

注意

如果您查找此主题是因为您正在尝试配置 Product Advertising API 以在您的网站上销售 Amazon 产品,请参阅这些主题:

访问密钥是 IAM 用户或 AWS 账户根用户的长期凭证。您可以使用访问密钥签署对 AWS CLI 或 AWS API 的编程请求(直接或使用 AWS 开发工具包)。有关更多信息,请参阅 Amazon Web Services 一般参考 中的签署 AWS API 请求

访问密钥包含两部分:访问密钥 ID(例如 AKIAIOSFODNN7EXAMPLE)和秘密访问密钥(例如 wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY)。与用户名和密码一样,您必须同时使用访问密钥 ID 和秘密访问密钥对请求执行身份验证。像对用户名和密码一样,安全地管理访问密钥。

重要

请不要向第三方提供访问密钥,甚至为了帮助找到您的规范用户 ID 也是如此。如果您这样做,可能会向某人提供对您的账户的永久访问权限。

作为最佳实践,请使用临时安全凭证(IAM 角色)代替访问密钥,并禁用 AWS 账户根用户访问密钥。有关详细信息,请参阅 Amazon Web Services 一般参考 中的管理 AWS 访问密钥的最佳实践

如果您仍需要使用长期访问密钥,则可创建、修改、查看或轮换您的访问密钥(访问密钥 ID 和秘密访问密钥)。您最多可拥有两个访问密钥。这使您能够根据最佳实践轮换有效的密钥。

当您创建访问密钥对时,将访问密钥 ID 和秘密访问密钥保存在一个安全位置。秘密访问密钥仅在您创建它时可用。如果您丢失了秘密访问密钥,则必须删除访问密钥并创建新的访问密钥。有关更多详细信息,请参阅重置您丢失或遗忘的密码或访问密钥

所需权限

要为您自己的 IAM 用户创建访问密钥,您必须具有以下策略中的权限:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "CreateOwnAccessKeys", "Effect": "Allow", "Action": [ "iam:CreateAccessKey", "iam:GetUser", "iam:ListAccessKeys" ], "Resource": "arn:aws:iam::*:user/${aws:username}" } ] }

要为您自己的 IAM 用户轮换访问密钥,您必须具有以下策略中的权限:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ManageOwnAccessKeys", "Effect": "Allow", "Action": [ "iam:CreateAccessKey", "iam:DeleteAccessKey", "iam:GetAccessKeyLastUsed", "iam:GetUser", "iam:ListAccessKeys", "iam:UpdateAccessKey" ], "Resource": "arn:aws:iam::*:user/${aws:username}" } ] }

管理访问密钥(控制台)

您可以使用 AWS 管理控制台管理 IAM 用户的访问密钥。

创建、修改或删除您自己的 IAM 用户访问密钥(控制台)

  1. 使用 AWS 账户 ID 或账户别名、您的 IAM 用户名和密码登录 IAM 控制台

    注意

    为方便起见,AWS 登录页面将使用浏览器 Cookie 来记住您的 IAM 用户名和账户信息。如果您之前曾以其他用户身份登录,请选择页面底部附近的 Sign in to a different account 以返回到主登录页面。从此处,您可以键入您的 AWS 账户 ID 或账户别名,以重定向到您的账户的 IAM 用户登录页面。

    要获取 AWS 账户 ID,请联系管理员。

  2. 在右上角的导航栏中,选择您的用户名,然后选择 My Security Credentials (我的安全凭证)

    
                  AWS 管理控制台的“My Security Credentials (我的安全凭证)”链接
  3. AWS IAM 凭证选项卡的用于访问 CLI、开发工具包和 API 的访问密钥部分中,执行以下任一操作:

    • 要创建访问密钥,请选择创建访问密钥。然后,选择 Download .csv file (下载 .csv 文件),将访问密钥 ID 和秘密访问密钥保存至计算机上的 .csv 文件中。将文件存储在安全位置。关闭此对话框后,您将无法再次访问该秘密访问密钥。下载 .csv 文件之后选择 Close。在创建访问密钥时,默认情况下,密钥对处于活动状态,并且您可以立即使用此密钥对。

    • 要禁用活动访问密钥,请选择转为非活跃

    • 要重新启用非活动访问密钥,请选择转为活跃

    • 要删除访问密钥,请选择行最右侧的 X 按钮。然后,选择删除以确认。当您删除访问密钥时,意味着永久删除且无法恢复。但是,您始终可以创建新的密钥。

创建、修改或删除其他 IAM 用户的访问密钥(控制台)

  1. 登录 AWS 管理控制台 并通过以下网址打开 IAM 控制台 https://console.amazonaws.cn/iam/

  2. 在导航窗格中,选择 Users

  3. 选择要管理其访问密钥的用户的名称,然后选择 Security credentials (安全凭证) 选项卡。

  4. Access keys (访问密钥) 部分中,执行以下任意操作:

    • 要创建访问密钥,请选择创建访问密钥。然后,选择 Download .csv file (下载 .csv 文件),将访问密钥 ID 和秘密访问密钥保存至计算机上的 CSV 文件中。将文件存储在安全位置。关闭此对话框后,您将无法再次访问该秘密访问密钥。下载 CSV 文件之后,选择 Close (关闭)。在创建访问密钥时,默认情况下,密钥对处于活动状态,并且您可以立即使用此密钥对。

    • 要禁用活动访问密钥,请选择转为非活跃

    • 要重新启用非活动访问密钥,请选择转为活跃

    • 要删除访问密钥,请选择行最右侧的 X 按钮。然后,选择删除以确认。当您删除访问密钥时,意味着永久删除且无法恢复。但是,您始终可以创建新的密钥。

列出 IAM 用户的访问密钥(控制台)

  1. 登录 AWS 管理控制台 并通过以下网址打开 IAM 控制台 https://console.amazonaws.cn/iam/

  2. 在导航窗格中,选择 Users

  3. 选择预期用户的名称,然后选择安全凭证选项卡。将显示用户的访问密钥和每个密钥的状态。

    注意

    只有用户的访问密钥 ID 是可见的。秘密访问密钥只能在创建密钥时检索到。

列出多个 IAM 用户的访问密钥 ID(控制台)

  1. 登录 AWS 管理控制台 并通过以下网址打开 IAM 控制台 https://console.amazonaws.cn/iam/

  2. 在导航窗格中,选择 Users

  3. 如有必要,可通过完成以下步骤来将 Access key ID 列添加到用户表中:

    1. 在最右侧的表上方,选择设置图标 ( 
                           Settings icon
                        )。

    2. Manage columns (管理列) 中,选择访问密钥 ID

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

  4. 访问密钥 ID 列显示各个访问密钥 ID,后跟其状态;例如,23478207027842073230762374023 (活动)22093740239670237024843420327 (不活动)

    您可以利用该信息查看和复制具有一个或两个访问密钥的用户的访问密钥。对于没有访问密钥的用户,该列显示 None

    注意

    只有用户的访问密钥 ID 和状态是可见的。秘密访问密钥只能在创建密钥时检索到。

查找哪个 IAM 用户拥有特定的访问密钥(控制台)

  1. 登录 AWS 管理控制台 并通过以下网址打开 IAM 控制台 https://console.amazonaws.cn/iam/

  2. 在导航窗格中,选择 Users

  3. 在搜索框中,键入或粘贴要查找的用户的访问密钥 ID。

  4. 如有必要,可通过完成以下步骤来将 Access key ID 列添加到用户表中:

    1. 在最右侧的表上方,选择设置图标 ( 
                           Settings icon
                        )。

    2. Manage columns (管理列) 中,选择访问密钥 ID

    3. 选择 Close 返回用户列表,并确认筛选出的用户拥有指定的访问密钥。

管理访问密钥 (AWS CLI)

要从 AWS CLI 管理 IAM 用户的访问密钥,请运行以下命令。

管理访问密钥 (AWS API)

要从 AWS API 管理 IAM 用户的访问密钥,请调用以下操作。

轮换访问密钥

建议您定期轮换(更改)IAM 用户访问密钥,这是最佳安全做法。如果您的管理员向您授予了必要的权限,则您可轮换自己的访问密钥。

有关如何向用户授予权限以轮换他们自己的访问密钥的详细信息,请参阅AWS:允许 IAM 用户在“My Security Credentials (我的安全凭证)”页面上管理自己的密码、访问密钥和 SSH 公有密钥。。您还可以将密码策略应用于您的账户,以要求所有 IAM 用户定期轮换其密码。您可以选择这些用户必须执行此操作的频率。有关更多信息,请参阅为 IAM 用户设置账户密码策略

重要

作为最佳实践,请勿使用 AWS 账户根用户。如果您使用 AWS 账户根用户凭证,建议您还要定期轮换这些凭证。账户密码策略不适用于 根用户 凭证。IAM 用户无法管理 AWS 账户根用户 的凭证,因此您必须使用 根用户(不是用户的)凭证来更改 根用户 凭证。请注意,我们建议进行 AWS 日常工作时不要使用 根用户。

轮换 IAM 用户访问密钥(控制台)

您可以从 AWS 管理控制台 轮换访问密钥。

在不中断应用程序的情况下轮换 IAM 用户的访问密钥(控制台)

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

    1. 登录 AWS 管理控制台 并通过以下网址打开 IAM 控制台 https://console.amazonaws.cn/iam/

    2. 在导航窗格中,选择 Users

    3. 选择预期用户的名称,然后选择安全凭证选项卡。

    4. 选择创建访问密钥,然后选择 Download .csv file (下载 .csv 文件),将访问密钥 ID 和秘密访问密钥保存至计算机上的 .csv 文件。将文件存储在安全位置。完成此步骤后,您将无法再访问这些秘密访问密钥。下载 .csv 文件之后选择 Close

      默认情况下,新的访问密钥处于活动状态。此时,用户拥有两个访问密钥。

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

  3. 通过查看最早的访问密钥的 Last used 列来确定第一个访问密钥是否仍在使用。一种方法是等待几天,然后检查旧访问密钥是否被使用,然后再继续。

  4. 即使 Last used 列值指示旧密钥从未使用过,我们还是建议您不要立即删除第一个访问密钥。您可以选择 Make inactive 来停用第一个访问密钥。

  5. 仅使用新的访问密钥,以确认您的应用程序可以正常工作。此时,任何仍在使用初始访问密钥的应用程序和工具将停止工作,因为它们不再具有对 AWS 资源的访问权限。如果您发现此类应用程序或工具,可以选择 Make active 来重新启用第一个访问密钥。然后返回到 步骤 3 并更新此应用程序以使用新的密钥。

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

    1. 登录 AWS 管理控制台 并通过以下网址打开 IAM 控制台 https://console.amazonaws.cn/iam/

    2. 在导航窗格中,选择 Users

    3. 选择预期用户的名称,然后选择安全凭证选项卡。

    4. 找到要删除的访问密钥,然后选择行最右侧的 X 按钮。然后,选择删除以确认。

确定访问密钥何时需要轮换(控制台)

  1. 登录 AWS 管理控制台 并通过以下网址打开 IAM 控制台 https://console.amazonaws.cn/iam/

  2. 在导航窗格中,选择 Users

  3. 如有必要,可通过完成以下步骤来将 Access key age 列添加到用户表中:

    1. 在最右侧的表上方,选择设置图标 ( 
                              Settings icon
                           )。

    2. Manage columns (管理列) 中,选择 Access key age (访问密钥使用期限)

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

  4. Access key age 列显示最早的活动访问密钥自创建至今经过的天数。您可以利用该信息查找需要轮换访问密钥的用户。对于没有访问密钥的用户,该列显示 None

轮换访问密钥 (AWS CLI)

您可以从 AWS Command Line Interface 轮换访问密钥。

在不中断应用程序的情况下轮换访问密钥 (AWS CLI)

  1. 当第一个访问密钥仍处于活动状态时,创建第二个访问密钥,后者在默认情况下将处于活动状态。运行以下命令:

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

  3. 通过使用以下命令,确定第一个访问密钥是否仍在使用:

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

  4. 即使步骤 步骤 3 指示旧密钥未被使用,我们也建议您不要立即删除第一个访问密钥。而是通过以下命令,将第一个访问密钥的状态更改为 Inactive

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

  6. 在等待一段时间以确保所有应用程序和工具均已更新后,您可以通过以下命令删除第一个访问密钥:

有关更多信息,请参阅下列内容:

轮换访问密钥 (AWS API)

您可以使用 AWS API 轮换访问密钥。

在不中断应用程序的情况下轮换访问密钥 (AWS API)

  1. 当第一个访问密钥仍处于活动状态时,创建第二个访问密钥,后者在默认情况下将处于活动状态。调用以下操作:

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

  3. 通过调用以下操作,确定第一个访问密钥是否仍在使用:

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

  4. 即使步骤 步骤 3 指示旧密钥未被使用,我们也建议您不要立即删除第一个访问密钥。而是调用以下操作,将第一个访问密钥的状态更改为 Inactive

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

  6. 在等待一段时间以确保所有应用程序和工具均已更新后,您可以通过调用以下操作,删除第一个访问密钥:

有关更多信息,请参阅下列内容:

审核访问密钥

您可以在代码中查看 AWS 访问密钥,以确定密钥是否来自于您拥有的账户。您可以使用 aws sts get-access-key-info AWS CLI 命令或 GetAccessKeyInfo AWS API 操作传递访问密钥 ID。

AWS CLI 和 AWS API 操作返回访问密钥所属的 AWS 账户的 ID。以 AKIA 开头的访问密钥 ID 是 IAM 用户或AWS 账户根用户的长期凭证。以 ASIA 开头的访问密钥 ID 是使用 AWS STS 操作创建的临时凭证。如果响应中的账户属于您,您可以作为根用户登录并查看您的 根用户 访问密钥。然后,您可以提取凭证报告以了解哪个 IAM 用户拥有这些密钥。要了解谁请求了 ASIA 访问密钥的临时凭证,请查看 CloudTrail 日志中的 AWS STS 事件。

该操作不指示访问密钥的状态。密钥可能处于活动状态、非活动状态或已删除状态非活动密钥可能没有执行操作的权限。提供删除的访问密钥可能会返回“密钥不存在”错误。