管理 IAM 用户的访问密钥
如果您发现此页面是因为您正在寻找有关 Product Advertising API 的信息以在您的网站上销售亚马逊产品,请参阅 Product Advertising API 5.0 文档
访问密钥是 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 和秘密访问密钥保存在一个安全位置。秘密访问密钥仅在您创建它时可用。如果您丢失了秘密访问密钥,则必须删除访问密钥并创建新的访问密钥。有关更多信息,请参阅 重置您丢失或遗忘的 AWS 密码或访问密钥。
所需权限
要为您自己的 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 Management Console 管理 IAM 用户的访问密钥。
创建、修改或删除您自己的 IAM 用户访问密钥(控制台)
-
使用 AWS 账户 ID 或账户别名、您的 IAM 用户名和密码登录到 IAM 控制台
。 注意 为方便起见,AWS登录页面使用浏览器 Cookie 记住您的 IAM 用户名和账户信息。如果您之前以其他用户身份登录,请选择页面底部的 Sign-in to a different account(登录到其他账户)以返回主登录页面。在此处,您可以输入要重新导向到您账户 IAM 用户登录页面的 AWS 账户 ID 或账户别名。
要获取 AWS 账户 ID,请联系管理员。
-
在右上角的导航栏中,选择您的用户名,然后选择 My Security Credentials (我的安全凭证)。
-
展开 Access keys (access key ID and secret access key) 部分。
-
执行以下任一操作:
-
要创建访问密钥,请选择 Create New Access Key (创建新的访问密钥)。如果此功能已禁用,则必须先删除现有密钥中的一个,然后才能创建新密钥。一个警告说明,您只有这一次机会可以查看或下载秘密访问密钥。要复制密钥以将其粘贴到其他位置进行保管,请选择 Show Access Key (显示访问密钥)。要将访问密钥 ID 和秘密访问密钥以
.csv
文件形式保存计算机上的安全位置,请选择 Download Key File (下载密钥文件)。 -
要禁用活动的访问密钥,请选择 Make Inactive (设为非活动)。
-
要重新启用非活动访问密钥,请选择 Make Active。
-
要删除访问密钥,请选择 Delete(删除)。AWS 建议在执行此操作之前,先停用该密钥并测试它是否已不再使用。使用 AWS Management Console 时,必须先停用密钥,然后才能删除它。
-
创建、修改或删除其他 IAM 用户的访问密钥(控制台)
登录 AWS Management Console,单击 https://console.aws.amazon.com/iam/
打开 IAM 控制台。 -
在导航窗格中,选择 Users。
-
选择要管理其访问密钥的用户的名称,然后选择 Security credentials (安全凭证) 选项卡。
-
在 Access keys (访问密钥) 部分中,执行以下任意操作:
-
要创建访问密钥,请选择创建访问密钥。然后,选择 Download .csv file (下载 .csv 文件),将访问密钥 ID 和秘密访问密钥保存至计算机上的 CSV 文件中。将文件存储在安全位置。关闭此对话框后,您将无法再次访问该秘密访问密钥。下载 CSV 文件之后,选择 Close (关闭)。在创建访问密钥时,预设情况下,密钥对处于活动状态,并且您可以立即使用此密钥对。
-
要禁用活动访问密钥,请选择转为非活跃。
-
要重新启用非活动访问密钥,请选择转为活跃。
-
要删除访问密钥,请选择 Delete(删除)。AWS 建议在执行此操作之前,先停用该密钥并测试它是否已不再使用。使用 AWS Management Console 时,必须先停用密钥,然后才能删除它。
-
列出 IAM 用户的访问密钥(控制台)
登录 AWS Management Console,单击 https://console.aws.amazon.com/iam/
打开 IAM 控制台。 -
在导航窗格中,选择 Users。
-
选择预期用户的名称,然后选择安全凭证选项卡。将显示用户的访问密钥和每个密钥的状态。
注意 只有用户的访问密钥 ID 是可见的。秘密访问密钥只能在创建密钥时检索到。
列出多个 IAM 用户的访问密钥 ID(控制台)
登录 AWS Management Console,单击 https://console.aws.amazon.com/iam/
打开 IAM 控制台。 -
在导航窗格中,选择 Users。
-
如有必要,可通过完成以下步骤来将 Access key ID 列添加到用户表中:
-
在最右侧的表上方,选择设置图标 (
)。
-
在 Manage columns (管理列) 中,选择访问密钥 ID。
-
选择 Close 返回到用户列表。
-
-
访问密钥 ID 列显示各个访问密钥 ID,后跟其状态;例如,23478207027842073230762374023 (活动) 或 22093740239670237024843420327 (不活动)。
您可以利用该信息查看和复制具有一个或两个访问密钥的用户的访问密钥。对于没有访问密钥的用户,该列显示 None。
注意 只有用户的访问密钥 ID 和状态是可见的。秘密访问密钥只能在创建密钥时检索到。
查找哪个 IAM 用户拥有特定的访问密钥(控制台)
登录 AWS Management Console,单击 https://console.aws.amazon.com/iam/
打开 IAM 控制台。 -
在导航窗格中,选择 Users。
-
在搜索框中,键入或粘贴要查找的用户的访问密钥 ID。
-
如有必要,可通过完成以下步骤来将 Access key ID 列添加到用户表中:
-
在最右侧的表上方,选择设置图标 (
)。
-
在 Manage columns (管理列) 中,选择访问密钥 ID。
-
选择 Close 返回用户列表,并确认筛选出的用户拥有指定的访问密钥。
-
管理访问密钥 (AWS CLI)
要从 AWS CLI 管理 IAM 用户的访问密钥,请运行以下命令。
-
创建访问密钥:
aws iam create-access-key
-
禁用或重新启用访问密钥:
aws iam update-access-key
-
列出用户访问密钥的步骤:
aws iam list-access-keys
-
确定最近使用访问密钥的时间:
aws iam get-access-key-last-used
-
删除访问密钥:
aws iam delete-access-key
管理访问密钥 (AWS API)
要从 AWS API 管理 IAM 用户的访问密钥,请调用以下操作。
-
创建访问密钥:
CreateAccessKey
-
禁用或重新启用访问密钥:
UpdateAccessKey
-
列出用户访问密钥的步骤:
ListAccessKeys
-
确定最近使用访问密钥的时间:
GetAccessKeyLastUsed
-
删除访问密钥:
DeleteAccessKey
轮换访问密钥
建议您定期轮换(更改)IAM 用户访问密钥,这是最佳安全做法。如果您的管理员向您授予了必要的权限,则您可轮换自己的访问密钥。
有关如何向用户授予权限以轮换他们自己的访问密钥的详细信息,请参阅AWS:允许 IAM 用户在“My Security Credentials”(我的安全凭证)页面上管理自己的密码、访问密钥和 SSH 公有密钥。您还可以将密码策略应用于您的账户,以要求所有 IAM 用户定期轮换其密码。您可以选择这些用户必须执行此操作的频率。有关更多信息,请参阅 为 IAM 用户设置账户密码策略。
作为最佳实践,请勿使用 AWS 账户 根用户。如果您使用 AWS 账户 根用户凭证,建议您还要定期轮换这些凭证。此账户密码策略不适用于根用户凭证。IAM 用户无法管理 AWS 账户 根用户的凭证,因此您必须使用根用户凭证(而不是用户凭证)来更改根用户凭证。请注意,我们建议进行 AWS 日常工作时不要使用根用户。
轮换 IAM 用户访问密钥(控制台)
您可以从 AWS Management Console 轮换访问密钥。
在不中断应用程序的情况下轮换 IAM 用户的访问密钥(控制台)
-
当第一个访问密钥仍处于活动状态时,创建第二个访问密钥。
登录 AWS Management Console,单击 https://console.aws.amazon.com/iam/
打开 IAM 控制台。 -
在导航窗格中,选择 Users。
-
选择预期用户的名称,然后选择安全凭证选项卡。
-
选择创建访问密钥,然后选择 Download .csv file (下载 .csv 文件),将访问密钥 ID 和秘密访问密钥保存至计算机上的
.csv
文件。将文件存储在安全位置。完成此步骤后,您将无法再访问这些秘密访问密钥。下载.csv
文件之后选择 Close。默认情况下,新的访问密钥处于活动状态。此时,用户拥有两个访问密钥。
-
更新所有应用程序和工具以使用新的访问密钥。
-
通过查看最早的访问密钥的 Last used 列来确定第一个访问密钥是否仍在使用。一种方法是等待几天,然后检查旧访问密钥是否被使用,然后再继续。
-
即使 Last used 列值指示旧密钥从未使用过,我们还是建议您不要立即删除第一个访问密钥。您可以选择 Make inactive 来停用第一个访问密钥。
-
仅使用新的访问密钥,以确认您的应用程序可以正常工作。此时,任何仍在使用初始访问密钥的应用程序和工具将停止工作,因为它们不再具有对 AWS 资源的访问权限。如果您发现此类应用程序或工具,可以选择 Make active 来重新启用第一个访问密钥。然后返回到 步骤 3 并更新此应用程序以使用新的密钥。
-
在等待一段时间以确保所有应用程序和工具均已更新后,可以删除第一个访问密钥:
登录 AWS Management Console,单击 https://console.aws.amazon.com/iam/
打开 IAM 控制台。 -
在导航窗格中,选择 Users。
-
选择预期用户的名称,然后选择安全凭证选项卡。
-
找到要删除的访问密钥,然后选择行最右侧的 X 按钮。输入访问密钥 ID 以确认删除,然后选择 Delete(删除)。
确定访问密钥何时需要轮换(控制台)
登录 AWS Management Console,单击 https://console.aws.amazon.com/iam/
打开 IAM 控制台。 -
在导航窗格中,选择 Users。
-
如有必要,可通过完成以下步骤来将 Access key age 列添加到用户表中:
-
在最右侧的表上方,选择设置图标 (
)。
-
在 Manage columns (管理列) 中,选择 Access key age (访问密钥使用期限)。
-
选择 Close 返回到用户列表。
-
-
Access key age 列显示最早的活动访问密钥自创建至今经过的天数。您可以利用该信息查找需要轮换访问密钥的用户。对于没有访问密钥的用户,该列显示 None。
轮换访问密钥 (AWS CLI)
您可以从 AWS Command Line Interface 轮换访问密钥。
在不中断应用程序的情况下轮换访问密钥 (AWS CLI)
-
当第一个访问密钥仍处于活动状态时,创建第二个访问密钥,后者在默认情况下将处于活动状态。运行以下命令:
-
此时,用户拥有两个访问密钥。
-
-
更新所有应用程序和工具以使用新的访问密钥。
-
通过使用以下命令,确定第一个访问密钥是否仍在使用:
一种方法是等待几天,然后检查旧访问密钥是否被使用,然后再继续。
-
即使步骤 步骤 3 指示旧密钥未被使用,我们也建议您不要立即删除第一个访问密钥。而是通过以下命令,将第一个访问密钥的状态更改为
Inactive
: -
仅使用新的访问密钥,以确认您的应用程序可以正常工作。此时,任何仍在使用初始访问密钥的应用程序和工具将停止工作,因为它们不再具有对 AWS 资源的访问权限。如果您发现此类应用程序或工具,可将其状态切换回
Active
以重新启用第一个访问密钥。然后返回到步骤 步骤 2 并更新此应用程序以使用新的密钥。 -
在等待一段时间以确保所有应用程序和工具均已更新后,您可以通过以下命令删除第一个访问密钥:
有关更多信息,请参阅下列内容:
-
如何轮换 IAM 用户的访问密钥
。AWS 安全博客上的这篇文章介绍了更多有关密钥轮换的信息。 -
IAM 中的安全最佳实践. 本页介绍有助于保护您的 AWS 资源的一般建议。
轮换访问密钥 (AWS API)
您可以使用 AWS API 轮换访问密钥。
在不中断应用程序的情况下轮换访问密钥 (AWS API)
-
当第一个访问密钥仍处于活动状态时,创建第二个访问密钥,后者在默认情况下将处于活动状态。调用以下操作:
-
此时,用户拥有两个访问密钥。
-
-
更新所有应用程序和工具以使用新的访问密钥。
-
通过调用以下操作,确定第一个访问密钥是否仍在使用:
一种方法是等待几天,然后检查旧访问密钥是否被使用,然后再继续。
-
即使步骤 步骤 3 指示旧密钥未被使用,我们也建议您不要立即删除第一个访问密钥。而是调用以下操作,将第一个访问密钥的状态更改为
Inactive
: -
仅使用新的访问密钥,以确认您的应用程序可以正常工作。此时,任何仍在使用初始访问密钥的应用程序和工具将停止工作,因为它们不再具有对 AWS 资源的访问权限。如果您发现此类应用程序或工具,可将其状态切换回
Active
以重新启用第一个访问密钥。然后返回到步骤 步骤 2 并更新此应用程序以使用新的密钥。 -
在等待一段时间以确保所有应用程序和工具均已更新后,您可以通过调用以下操作,删除第一个访问密钥:
有关更多信息,请参阅下列内容:
-
如何轮换 IAM 用户的访问密钥
。AWS 安全博客上的这篇文章介绍了更多有关密钥轮换的信息。 -
IAM 中的安全最佳实践. 本页介绍有助于保护您的 AWS 资源的一般建议。
审计访问密钥
您可以在代码中查看 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 事件。
为了安全起见,您可以查看 AWS CloudTrail 日志以了解已在 AWS 中执行操作的人员。您可以在角色信任策略中使用 sts:SourceIdentity
条件键,以要求用户在代入角色时指定身份。例如,您可以要求 IAM 用户指定自己的用户名作为其源身份。这可以帮助您确定哪个用户在 AWS 中执行了具体的操作。有关更多信息,请参阅 sts:SourceIdentity。)
该操作不指示访问密钥的状态。密钥可能处于活动状态、非活动状态或已删除状态 非活动密钥可能没有执行操作的权限。提供删除的访问密钥可能会返回“密钥不存在”错误。