Amazon 安全凭证 - Amazon Identity and Access Management
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

Amazon 安全凭证

当您与 Amazon 交互时,可指定 Amazon 安全凭证 以验证您的身份以及您是否有权访问所请求的资源。Amazon 使用安全凭证来对您的请求进行身份验证和授权。

例如,如果要从 Amazon Simple Storage Service (Amazon S3) 存储桶下载受保护的文件,则您的凭证必须允许该访问。如果您的凭证未显示您有权下载该文件,Amazon 会拒绝您的请求。但是,下载公开共享的 Amazon S3 存储桶中的文件不需要您的 Amazon 安全凭证。

Amazon 中有不同类型的用户。所有 Amazon 用户都具有安全凭证。账户类型包括:账户所有者(根用户)、Amazon IAM Identity Center 中的用户、联合用户与 IAM 用户。

用户拥有长期或临时安全凭证。根用户、IAM 用户和访问密钥具有不会过期的长期安全凭证。为保护长期凭证,您可以制定相应的流程,以 管理访问密钥更改密码启用 MFA

IAM 角色 Amazon IAM Identity Center 中的用户 和联合用户具有临时安全凭证。临时安全凭证在规定的时间段后或用户结束会话时过期。临时凭证的工作方式与长期凭证的工作方式几乎相同,仅存在以下差异:

  • 顾名思义,临时安全凭证是短期 凭证。可将这些凭证的有效时间配置几分钟到几小时。一旦这些凭证到期,Amazon 将不再识别这些凭证或不再允许来自使用这些凭证发出的 API 请求的任何类型的访问。

  • 临时安全凭证不随用户一起存储,而是动态生成并在用户提出请求时提供给用户。临时安全凭证到期时 (甚至之前),用户可以请求新的凭证,只要请求凭证的用户仍有权这样做。

因此,与长期凭证相比,临时凭证具有以下优势:

  • 您不必随应用程序分配或嵌入长期 Amazon 安全凭证。

  • 可允许用户访问您的 Amazon 资源,而不必为这些用户定义 Amazon 身份。临时凭证是角色和联合身份验证的基础。

  • 临时安全凭证的生命周期较短,因此无需更新或在不再需要这些凭证时显式撤销这些凭证。临时安全凭证到期后无法重复使用。您可指定凭证的有效期,但有最长限期。

安全注意事项

在确定 Amazon Web Services 账户 的安全规定时,我们建议您考虑以下信息:

  • 当您创建 Amazon Web Services 账户 时,我们会创建账户根用户。根用户(账户所有者)的凭证允许完全访问账户中的所有资源。您使用根用户执行的首项任务是向其他用户授予对您的 Amazon Web Services 账户 的管理权限,以便最大限度地减少根用户的使用。

  • 您无法使用 IAM policy 显式拒绝根用户访问资源。您只能使用 Amazon Organizations 服务控制策略(SCP)来限制根用户的权限。

  • 如果您忘记或丢失了根用户密码,则必须有权访问与您的账户关联的电子邮件地址才能重置根用户密码。

  • 如果丢失了根用户访问密钥,则您必须能够以根用户身份登录您的账户才能创建新的访问密钥。

  • 请不要将根用户用于您的日常任务。请使用它来执行仅限根用户可以执行的任务。有关需要您以根用户身份登录的任务的完整列表,请参阅 需要根用户凭证的任务

  • 安全凭证特定于账户。如果您有权访问多个 Amazon Web Services 账户,则每个账户都必须有单独的凭证。

  • 策略确定用户、角色或用户组成员可以在什么样的条件下对哪些 Amazon 资源执行哪些操作。使用策略,您可以安全地控制对 Amazon Web Services 和 Amazon Web Services 账户 中资源的访问。如果必须修改或撤销权限以响应安全事件,您可以删除或修改策略,而不是直接更改身份。

  • 请务必将您的 Emergency Access IAM 用户的登录凭证以及您为编程访问创建的任何访问密钥保存在安全位置。如果您丢失了访问密钥,则必须登录您的账户才能创建新的访问密钥。

  • 我们强烈建议您使用 IAM 角色和联合用户提供的临时凭证,而不是 IAM 用户和访问密钥提供的长期凭证。

联合身份

联合身份是指具有外部身份的用户,这些用户被授予临时 Amazon 凭证,可以使用这些凭证访问安全 Amazon Web Services 账户 资源。外部身份可能来自公司身份存储(如 LDAP 或 Windows Active Directory)或第三方(如 Login with Amazon、Facebook 或 Google)。联合身份不使用 Amazon Web Services Management Console 或 Amazon 访问门户登录。

要使联合身份能够登录亚马逊云科技,您必须创建包含 https://signin.aws.amazon.com/federation 的自定义 URL。有关更多信息,请参阅使自定义身份代理能够访问 Amazon 控制台

有关联合身份的更多信息,请参阅 身份提供程序和联合身份验证

多重身份验证 (MFA)

多重身份验证 (MFA) 为可以访问 Amazon Web Services 账户 的用户提供了额外的安全级别。为了提高安全性,我们建议您要求对 Amazon Web Services 账户根用户 凭证和所有 IAM 用户使用 MFA。有关更多信息,请参阅在 Amazon 中使用多重身份验证 (MFA)

当您激活 MFA 并登录到您的 Amazon Web Services 账户 时,系统会提示您输入登录凭证,外加 MFA 设备生成的响应,例如代码、触摸、点按或者生物识别扫描。添加 MFA 之后,您 Amazon Web Services 账户 设置和资源会更加安全。

默认情况下,MFA 未激活。您可以前往安全凭证页面或Amazon Web Services Management Console中的 IAM 控制面板,为 Amazon Web Services 账户根用户 激活和管理 MFA 设备。有关为 IAM 用户激活 MFA 的更多信息,请参阅 为 Amazon 中的用户启用 MFA 设备

有关使用多重身份验证 (MFA) 设备登录的更多信息,请参阅 使用 MFA 设备访问您的 IAM 登录页面

以编程方式访问

您提供 Amazon 访问密钥,以编程方式调用 Amazon 或使用 Amazon Command Line Interface 或 Amazon Tools for PowerShell。我们建议尽可能使用短期访问密钥。

创建长期访问密钥时,您将访问密钥 ID(例如 AKIAIOSFODNN7EXAMPLE)和秘密访问密钥(例如 wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY)创建为一组。秘密访问密钥仅在您创建它时可供下载。如果您没有下载秘密访问密钥或丢失了它,则必须创建新的秘密访问密钥。

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

AKIA 开头的访问密钥 ID 是 IAM 用户或 Amazon Web Services 账户 根用户的长期访问密钥。以 ASIA 开头的访问密钥 ID 是使用 Amazon STS 操作创建的临时凭证访问密钥。

如果用户需要在 Amazon Web Services Management Console 之外与 Amazon 交互,则需要编程式访问权限。Amazon API 和 Amazon Command Line Interface 需要访问密钥。可能的话,创建临时凭证,该凭证由一个访问密钥 ID、一个秘密访问密钥和一个指示凭证何时到期的安全令牌组成。

要向用户授予编程式访问权限,请选择以下选项之一。

哪个用户需要编程式访问权限? 目的 方式
IAM 使用短期凭证签署对 Amazon CLI 或 Amazon API 的编程式请求(直接或使用 Amazon SDK)。 按照《IAM 用户指南》将临时凭证用于 Amazon 资源中的说明进行操作。
IAM

(不推荐使用)

使用长期凭证签署对 Amazon CLI 或 Amazon API 的编程式请求(直接或使用 Amazon SDK)。
按照《IAM 用户指南》管理 IAM 用户的访问密钥中的说明进行操作。

长期访问密钥的替代方案

对于许多常见使用案例,应有长期访问密钥的替代方法。为了提高您的账户安全性,请考虑以下几点。

  • 不要在应用程序代码或代码存储库中嵌入长期访问密钥和秘密访问密钥 –改用 Amazon Secrets Manager 或其他秘密管理解决方案,因此您不必以纯文本硬编码密钥。然后,应用程序或客户端可以在需要时检索秘密。有关更多信息,请参阅《Amazon Secrets Manager 用户指南》中的什么是 Amazon Secrets Manager?

  • 尽可能使用 IAM 角色来生成临时安全凭证 –尽可能使用机制颁发临时安全凭证,而不是使用长期访问密钥。临时安全凭证更加安全,因为它们不随用户一起存储,而是动态生成并在用户提出请求时提供给用户。临时安全凭证的生命周期较短,因此无需管理或更新。提供临时访问密钥的机制包括 IAM 角色或 IAM Identity Center 用户的身份验证。对于在 Amazon 外部运行的计算机,您可以使用 Amazon Identity and Access Management Roles Anywhere

  • 对 Amazon Command Line Interface(Amazon CLI) 或 aws-shell 使用长期访问密钥的替代方法 – 替代方法包括如下。

    • Amazon CloudShell 是一个基于浏览器的预先验证 shell,您可以直接从 Amazon Web Services Management Console 中启动。您可以通过自己喜爱的 Shell(Bash、Powershell 或 Z shell)来对 Amazon Web Services 运行 Amazon CLI 命令。在执行此操作时,您无需下载或安装命令行工具。有关更多信息,请参阅《Amazon CloudShell 用户指南》中的什么是 Amazon CloudShell?

    • Amazon CLI 版本 2 与 Amazon IAM Identity Center (IAM Identity Center) 集成。您可以对用户进行身份验证并提供短期凭证以运行 Amazon CLI 命令。要了解更多信息,请参阅 Amazon IAM Identity Center 用户指南中的集成 Amazon CLI 与 IAM Identity CenenterAmazon Command Line Interface 用户指南中的配置 Amazon CLI 以使用 IAM Identy Center

  • 不要为需要访问应用程序或 Amazon Web Services 的人类用户创建长期访问密钥 – IAM Identity Center 可以生成临时访问凭证,供您的外部 IdP 用户访问 Amazon Web Services。这样就无需在 IAM 中创建和管理长期凭证。在 IAM Identity Center 中,创建一个 IAM Identity Center 权限集,该权限集向外部 IdP 用户授予访问权限。然后,将来自 IAM Identity Center 的组分配给选定 Amazon Web Services 账户 中的权限集。有关更多信息,请参阅什么是 Amazon IAM Identity Center连接到外部身份提供者以及 Amazon IAM Identity Center 用户指南中的权限集

  • 不要 Amazon 计算服务中存储长期访问密钥 – 相反,应为计算资源分配 IAM 角色。这会自动提供临时凭证以授予访问权限。例如,在创建附加到 Amazon EC2 实例的实例配置文件,可以将 Amazon 角色分配给该实例并使其对该实例的所有应用程序可用。实例配置文件包含角色,并使 Amazon EC2 实例上运行的程序能够获得临时凭证。要了解更多信息,请参阅使用 IAM 角色为 Amazon EC2 实例上运行的应用程序授予权限

使用您的 Amazon 凭证访问 Amazon

Amazon 需要不同类型的安全凭证,具体取决于您访问 Amazon 的方式以及您所属的 Amazon 用户类型。例如,您可以使用登录凭证登入 Amazon Web Services Management Console,但对 Amazon 进行编程调用时则需要使用访问密钥。此外,您使用的每个身份(无论是账户根用户、Amazon Identity and Access Management (IAM) 用户、Amazon IAM Identity Center 用户还是联合身份)在 Amazon 中都有唯一的凭证。

有关如何根据用户类型登录 Amazon 的分步说明,请参阅《Amazon 登录用户指南》中的如何登录 Amazon