管理 Amazon 访问密钥的最佳实践 - Amazon 一般参考
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

管理 Amazon 访问密钥的最佳实践

当您以编程方式使用Amazon时,您需要提供您的Amazon访问密钥,以便Amazon可以在编程调用中验证您的身份。您的访问密钥包含访问密钥 ID(例如 AKIAIOSFODNN7EXAMPLE)和秘密访问密钥(例如 wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY)。

拥有您的访问密钥的任何人将与您拥有相同的Amazon资源访问权限级别。因此,Amazon 全力保护您的访问密钥并确保符合我们的分担责任模型,您也应当如此。

下述步骤可以帮助您保护您的访问密钥。有关背景信息,请参阅Amazon 安全凭证

注意

贵组织的安全要求和策略可能与本主题中介绍的有所不同。此处提供的建议旨在用作一般准则。

保护或不创建您的根用户访问密钥

您必须使用访问密钥(访问密钥 ID 和秘密访问密钥)以编程方式向Amazon提出请求。例如,在使用 Amazon Command Line InterfaceAmazon SDK 或直接 API 调用时。拥有您的Amazon Web Services 账户根用户的访问密钥的任何人都可以无限制地访问您Amazon账户中的所有资源,包括账单信息。您无法减少与您的Amazon Web Services 账户根用户访问密钥关联的权限。

有关更多信息,请参阅《IAM 用户指南》中的隐藏您的AmazonAmazon Web Services 账户根用户访问密钥

管理 IAM 用户的访问密钥。

不是共享Amazon Web Services 账户根用户的凭证,而是创建单个 IAM 用户,仅授予每个用户所需的权限。有关更多信息,请参阅《IAM 用户指南》中的管理 IAM 用户的访问密钥

使用访问密钥时,请遵守这些预防措施:

  • 请勿直接将访问密钥嵌入到代码。 利用 Amazon SDK Amazon命令行工具,您可以将访问密钥放在已知位置,这样就不必将其保留在代码中。

    在以下任一位置中放置访问密钥:

    • Amazon凭证文件。 Amazon 开发工具包和 Amazon CLI 自动使用您存储在 Amazon 凭证文件中的凭证。

      有关使用 Amazon 证书文件的信息,请参阅软件开发工具包文档。示例包括:《Amazon SDK for Java 开发人员指南》中的设置Amazon凭证和开发区域以及《Amazon Command Line Interface 用户指南》中的配置和凭证文件

      要存储适用于 .NET 的 Amazon 开发工具包和 Amazon Tools for Windows PowerShell 的凭证,建议您使用 SDK Store。有关更多信息,请参阅《Amazon SDK for .NET 开发人员指南》中的使用 SDK 存储

    • 环境变量. 在多租户系统上,选择用户环境变量,而不是系统环境变量。

      有关使用环境变量存储凭证的更多信息,请参阅《Amazon Command Line Interface 用户指南》中的环境变量

  • 定期轮换访问密钥。 定期更改访问密钥。有关详细信息,请参阅《IAM 用户指南》中的轮换访问密钥(Amazon CLI、Tools for Windows PowerShell 和 Amazon API)以及Amazon安全博客上的 How to Rotate Access Keys for IAM Users

  • 删除未使用的访问密钥。 如果某个用户离开了贵组织,请删除相应的 IAM 用户,以使该用户无法再访问您的资源。要找出上次使用访问密钥的时间,请使用 GetAccessKeyLastUsed API(Amazon CLI 命令:aws iam get-access-key-last-used)。

  • 为最敏感的操作配置多重验证。 有关更多信息,请参阅《IAM 用户指南》中的在Amazon中使用多重身份验证(MFA)

使用 IAM 角色而不是长期访问密钥

在许多情况下,您并不需要永不过期的长期访问密钥(如 IAM 用户访问密钥)。相反,您可以创建 IAM 角色并生成临时安全凭证。临时安全证书包括访问密钥 ID 和秘密访问密钥,以及一个指示证书何时到期的安全令牌。

在手动撤消之前,长期访问密钥将保持有效,例如与 IAM 用户和Amazon Web Services 账户根用户相关联的访问密钥。但是,通过 IAM 角色获取的临时安全凭证和 Amazon Security Token Service 的其他功能将在短时间内过期。凭证意外泄漏时,使用临时安全凭证可帮助降低您的风险。

在以下这些情况下使用 IAM 角色和临时安全凭证:

  • 您在 Amazon EC2 实例上运行一个应用程序或 Amazon CLI 脚本。 请勿直接在应用程序中使用访问密钥。请勿采取以下做法:将访问密钥传递给应用程序、将访问密钥嵌入到应用程序中、让应用程序从任何源读取密钥。相反,请定义一个对您的应用程序具有适当权限的 IAM 角色,并使用 EC2 角色启动 Amazon EC2 实例。执行此操作会将 IAM 角色与 Amazon EC2 实例相关联。这种做法还会允许应用程序获取临时安全凭证,然后再使用这些凭证对Amazon进行编程调用。Amazon 软件开发工具包和 Amazon CLI 可以自动获得角色的临时证书。

  • 您需要授予跨账户访问权限。 使用 IAM 角色建立账户之间的信任,然后向用户授予有限的账户权限来访问可信账户。有关更多信息,请参阅《IAM 用户指南》中的教程:使用 IAM 角色委派跨Amazon账户的访问权限

  • 您拥有一个移动应用程序。 请勿将访问密钥嵌入应用程序,即使是嵌入加密存储也不允许。而应使用 Amazon Cognito 管理应用程序中的用户身份。此服务让您可以使用 Login with Amazon、Facebook、Google 或任何与 OpenID Connect(OIDC)兼容的身份提供商进行用户身份验证。然后,您可以使用 Amazon Cognito 凭证提供程序来管理应用程序用于向Amazon发出请求的凭证。有关更多信息,请参阅Amazon移动博客上的 Using the Amazon Cognito Credentials Provider

  • 您希望向 Amazon 进行联合身份验证且贵组织支持 SAML 2.0。 如果您所在的组织具有支持 SAML 2.0 的身份提供程序,请将提供程序配置为使用 SAML。您可以使用 SAML 与 Amazon 交换身份验证信息,并获得一组临时安全证书。有关更多信息,请参阅《IAM 用户指南》中的关于基于 SAML 2.0 的联合身份验证.

  • 您希望向 Amazon 进行联合身份验证且贵组织拥有本地身份存储。 如果用户可以在组织内部进行身份验证,您可以编写一个可向他们颁发用于访问 Amazon 资源的临时安全凭证的应用程序。有关更多信息,请参阅《IAM 用户指南》中的创建允许联合身份用户访问Amazon Web Services Management Console(自定义联合身份代理)的 URL

使用 Amazon 访问密钥访问移动应用程序

您可以使用 Amazon 移动应用程序访问一组有限的 Amazon 服务和功能。该移动应用程序可帮助您在外出时支持事件响应。如需了解更多信息和下载应用程序,请参阅 Amazon 控制台移动应用程序

您可以使用控制台密码或访问密钥登录移动应用程序。作为最佳实践,不建议使用根用户访问密钥。相反,我们强烈建议您在移动设备上除了使用密码或生物识别锁定之外,还应创建一个 IAM 用户来管理Amazon资源。如果您的移动设备丢失了,您可以删除 IAM 用户的访问权限。有关为 IAM 用户生成访问密钥的更多信息,请参阅《IAM 用户指南》中的管理 IAM 用户的访问密钥

使用访问密钥登录(移动应用程序)

  1. 在移动设备上打开该应用程序。

  2. 如果这是您第一次向设备添加身份,请选择 Add an identity (添加身份),然后选择 Access keys (访问密钥)

    如果您已使用其他身份登录,请选择菜单图标并选择 Switch identity (切换身份)。然后选择 Sign in as a different identity (以其他身份登录),然后选择 Access keys (访问密钥)

  3. Access keys (访问密钥) 页面上输入您的信息。

    • Access key ID (访问密钥 ID) – 输入您的访问密钥 ID。

    • Secret access key (秘密访问密钥) – 输入您的秘密访问密钥。

    • Identity name (身份名称) – 输入将在移动应用程序中显示的身份名称。此名称不需要与您的 IAM 用户名一致。

    • Identity PIN (身份 PIN) – 创建将来在登录时使用的个人身份识别码(PIN)。

      注意

      如果您为 Amazon 移动应用程序启用了生物识别技术,系统将提示您使用指纹或面部识别(而非 PIN)进行验证。如果生物识别失败,系统可能会提示您输入 PIN。

  4. 选择 Verify and add keys (验证并添加密钥)

    现在,您就可以使用移动应用程序访问一组选定的资源。

了解更多信息

有关确保 Amazon 账户安全的最佳实践的更多信息,请参阅以下资源: