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

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

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

当您使用时Amazon以编程方式,你提供你的Amazon访问密钥以便Amazon可以在程序化通话中验证你的身份。您的访问密钥包含一个访问密钥 ID(例如,AKIAIOSFODNN7EXAMPLE) 和一个私有访问密钥 (例如,wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY)。

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

下述步骤可以帮助您保护访问密钥。有关背景信息,请参阅创建和删除的访问密钥 Amazon Web Services 账户 根用户

注意

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

删除(或不生成)账户访问密钥

必须使用访问密钥来签署您使用Amazon命令行工具Amazon软件开发工具包,或直接 API 调用。任何拥有你的访问密钥的人 Amazon Web Services 账户 根用户可以无限制地访问您账户中的所有资源,包括账单信息。您无法限制您的权限 Amazon Web Services 账户 根用户。

保护账户的最佳方法之一是不为您的设置访问密钥。 Amazon Web Services 账户 根用户。除非必须具有根用户访问密钥(这种情况很少见),否则最好不要生成根用户访问密钥。相反,推荐的最佳实践是创建一个或多个Amazon Identity and Access Management(IAM) 用户。为 IAM 用户授予必要的权限,并使用这些权限进行日常互动。Amazon.

如果您已经拥有账户的访问密钥,我们建议以下方法:找到您当前在应用程序中使用访问密钥(如果有)的位置,并使用 IAM 用户访问密钥替换根用户访问密钥。然后禁用并删除根用户访问密钥。有关如何替换另一个访问密钥的更多信息,请参阅。如何轮换 IAM 用户的访问密钥在Amazon安全博客。

默认情况下,Amazon不会为新账户生成访问密钥。

有关如何创建具有管理权限的 IAM 用户的信息,请参阅。创建您的第一个 IAM 管理员用户和组中的IAM 用户指南.

使用临时安全凭证(IAM 角色)代替长期访问密钥

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

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

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

  • 您有申请或Amazon CLI在 Amazon EC2 实例上运行的脚本。请勿直接在应用程序中使用访问密钥。请勿采取以下做法:将访问密钥传递给应用程序、将访问密钥嵌入应用程序中、让应用程序从任何源读取访问密钥 相反,为应用程序定义具有适当权限的 IAM 角色,并使用启动 Amazon Elastic Compute Cloud (Amazon EC2) 实例。适用于 EC2 的角色. 这样做会将 IAM 角色与 Amazon EC2 实例相关联。这种做法还使应用程序能够获得临时安全凭证,然后再使用这些证书来进行编程调用。Amazon. 这些区域有:Amazon开发工具包和Amazon Command Line Interface(Amazon CLI) 可以自动获得角色的临时凭证。

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

  • 您拥有一个移动应用程序。请勿采取以下做法:将访问密钥嵌入到应用程序中,即使是在 相反,请使用Amazon Cognito管理应用程序中的用户身份。借助此服务,您可以使 Login with Amazon、Facebook、Google 或任何 OpenID Connect (OIDC) 兼容的身份提供商来验证用户身份验证。然后,您可以使用 Amazon Cognito 凭证提供程序来管理应用程序用于向发出请求的证书。Amazon. 有关更多信息,请参阅 。使用 Amazon Cognito 凭证提供程序在Amazon手机博客。

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

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

正确管理 IAM 用户访问密钥

如果您必须创建访问密钥才能对Amazon,为 IAM 用户创建它们,仅向用户授予他们所需的权限。有关更多信息,请参阅 。管理 IAM 用户的访问密钥中的IAM 用户指南.

注意

您是否将 Amazon EC2 实例与需要编程访问权限的应用程序一起使用Amazon资源? 如果是这样,请使用适用于 EC2 的 IAM 角色.

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

  • 请勿直接将访问密钥嵌入到代码。这些区域有:Amazon软件开发工具包Amazon命令行工具使您可以将访问密钥放在已知位置,这样就不必将访问密钥保留在代码中。

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

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

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

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

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

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

  • 对不同应用程序使用不同的访问密钥。这样您就可以隔离权限并撤消单个应用程序的访问密钥,如果这些应用程序已公开。为不同的应用程序设置不同的访问密钥也会在 Amazon CloudTrail 日志文件中生成不同的条目。通过此配置,您可以更轻松地确定哪个应用程序执行了特定的操作。

  • 定期轮换访问密钥。定期更改访问密钥。有关详细信息,请参阅。轮换访问密钥 (Amazon CLI、适用于 Windows PowerShell 的工具和AmazonAPI)中的IAM 用户指南如何轮换 IAM 用户的访问密钥在Amazon安全博客。

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

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

使用 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 (访问密钥) 页面上输入您的信息。

    • 访问密钥 ID— 输入您的访问密钥 ID。

    • 秘密访问密钥— 输入您的私有访问密钥。

    • 身份名称— 输入将在移动应用程序中显示的身份名称。这不需要与 IAM 用户名一致。

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

      注意

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

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

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

了解更多信息

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