访问和身份验证概述 - AWS Global Accelerator

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

访问和身份验证概述

如果您是首次接触 IAM,请阅读以下主题了解 AWS 中的授权和访问。

什么是身份验证?

身份验证是指如何使用您的凭证登录到 AWS。

注意

要快速开始,您可以忽略此部分。首先,审核有关的介绍性信息AWS Global Accelerator 的身份和访问管理,然后参阅入门

作为委托人,您必须身份验证(登录到 AWS)使用实体(根用户、IAM 用户或 IAM 角色)向 AWS 发送请求。IAM 用户可能具有长期凭证,例如用户名和密码或一组访问密钥。当您代入 IAM 角色时,您将收到临时安全凭证。

要作为用户从 AWS 管理控制台中获得身份验证,您必须使用用户名和密码登录。要从 AWS CLI 或 AWS API 中获取身份验证,您必须提供访问密钥和私有密钥或临时凭证。AWS 提供了开发工具包和 CLI 工具,以使用您的凭证对您的请求进行加密签名。如果您不使用 AWS 工具,则必须自行对请求进行签名。无论使用何种身份验证方法,您可能还需要提供其他安全信息。例如,AWS 建议您使用多重验证 (MFA) 以提高您的账户的安全性。

作为委托人,您可以使用以下实体(用户或角色)登录 AWS:

AWS 账户根用户

在首次创建 AWS 账户时,您最初使用一个具有账户中的所有 AWS 服务和资源的完全访问权限的单点登录身份。此身份称为 AWS 账户根用户,可以通过使用您用于创建账户的电子邮件地址和密码进行登录来访问该身份。强烈建议您不使用根用户执行日常任务,即使是管理任务。相反,请遵循仅使用根用户创建您的第一个 IAM 用户的最佳实践。然后请妥善保存根用户凭证,仅用它们执行少数账户和服务管理任务。

IAM 用户

一个IAM 用户是您的 AWS 账户中具有特定权限的实体。Global Accelerator 支持签名版本 4,这是用于对入站 API 请求进行身份验证的协议。有关验证请求的更多信息,请参阅。签名版本 4 签名过程中的AWS 一般参考

IAM 角色

一个IAM 角色是您可以在账户中创建的一种具有特定权限的 IAM 身份。IAM 角色类似于 IAM 用户,因为它是一个 AWS 身份,具有确定其在 AWS 中可执行和不可执行的操作的权限策略。但是,角色旨在让需要它的任何人代入,而不是唯一地与某个人员关联。此外,角色没有关联的标准长期凭证(如密码或访问密钥)。相反,当您代入角色时,它会为您提供角色会话的临时安全凭证。具有临时凭证的 IAM 角色在以下情况下很有用:

联合身份用户访问

您可以使用来自 AWS Directory Service、您的企业用户目录或 Web 身份提供商的现有身份,而不创建 IAM 用户。他们被称为联合身份用户。在通过身份提供商请求访问权限时,AWS 将为联合身份用户分配角色。有关联合身份用户的详细信息,请参阅联合身份用户和角色中的IAM 用户指南

临时用户权限

IAM 用户可暂时担任角色来获得针对特定任务的不同权限。

跨账户访问

您可以使用 IAM 角色允许不同账户中的可信任委托人访问您账户中的资源。角色是授予跨账户访问权限的主要方式。不过,对于某些 AWS 服务,您可以将策略直接附加到资源(而不是将角色作为代理)。全局加速器不支持这些基于资源的策略。有关选择是使用角色还是基于资源的策略以允许跨账户访问的更多信息,请参阅控制对不同账户中的委托人的访问

AWS 服务访问

服务角色是IAM 角色服务为了代表您执行操作而担任的。服务角色只在您的账户内提供访问权限,不能用于为访问其他账户中的服务授权。IAM 管理员可以在 IAM 中创建、修改和删除服务角色。有关更多信息,请参阅 。创建向 AWS 服务委托权限的角色中的IAM 用户指南

在 Amazon EC2 上运行的应用程序

您可以使用 IAM 角色管理在 EC2 实例上运行并发出 AWS CLI 或 AWS API 请求的应用程序的临时凭证。这优先于在 EC2 实例中存储访问密钥。要将 AWS 角色分配给 EC2 实例并使其对该实例的所有应用程序可用,您可以创建一个附加到该实例的实例配置文件。实例配置文件包含角色,并使 EC2 实例上运行的程序能够获得临时凭证。有关更多信息,请参阅 。使用 IAM 角色向在 Amazon EC2 实例上运行的应用程序授予权限中的IAM 用户指南

什么是访问控制?

在您登录(经过身份验证)AWS 后,您对 AWS 资源和操作的访问由策略控制。访问控制也称为授权。

注意

要快速开始,您可以忽略此页面。首先,审核有关的介绍性信息AWS Global Accelerator 的身份和访问管理,然后参阅入门

在授权期间,AWS 使用请求上下文来检查应用的策略。然后,它使用策略来确定是允许还是拒绝请求。大多数策略作为 JSON 文档存储在 AWS 中,并指定为委托人允许或拒绝的权限。有关 JSON 策略文档的结构和内容的更多信息,请参阅什么是策略?

通过使用策略,管理员可以指定哪些用户有权访问 AWS 资源,以及他们可以对这些资源执行哪些操作。每个 IAM 实体(用户或角色)最初没有任何权限。换而言之,在默认状态下,用户什么都不能做,甚至不能查看自己的访问密钥。要为用户授予执行某些操作的权限,管理员必须将权限策略附加到用户。或者,管理员可以将用户添加到具有所需权限的组中。之后当管理员授予某个组访问权限时,该组内的全部用户都会获得这些访问权限。

您可能使用有效的凭证来对自己的请求进行身份验证,但管理员还必须向您授予权限,您才能创建或访问 AWS Global Accelerator ess 资源。例如,您必须明确拥有权限才能创建 AWS Global Accelerator。

作为管理员,您可以编写策略来控制对以下各项的访问:

  • 委托人— 控制发出请求的人员或应用程序(委托人)被允许这样做。

  • IAM 身份— 控制可访问哪些 IAM 身份(组、用户和角色)以及如何进行访问。

  • IAM 策略— 控制哪些用户可以创建、编辑和删除客户托管策略,以及哪些用户可以附加和分离所有托管策略。

  • AWS 资源— 使用基于身份的策略或基于资源的策略控制哪些用户有权访问资源。

  • AWS 账户— 控制是否仅允许特定账户的成员发出请求。

控制 委托人进行的访问

权限策略控制您作为委托人可以执行的操作。管理员必须将基于身份的权限策略附加到提供权限的身份(用户、组或角色)。权限策略允许或拒绝访问 AWS。管理员还可以设置 IAM 实体(用户或角色)的权限边界以定义该实体可以具有的最大权限。权限边界是一项高级 IAM 功能。有关权限边界的更多信息,请参阅。IAM 身份的权限边界中的IAM 用户指南

有关如何控制委托人的 AWS 访问的更多信息和示例,请参阅控制委托人的访问中的IAM 用户指南

控制对身份的访问

管理员通过创建限制可以对身份执行的操作或谁可以访问身份的策略,来控制您对 IAM 身份(用户、组或角色)可以执行的操作。然后,他们将该策略附加到提供您的权限的身份。

例如,管理员可能允许您重置三个特定用户的密码。为此,他们将一个策略附加到您的 IAM 用户,以允许您仅为自己和具有三个指定用户的 ARN 的用户重置密码。这使您可以重置团队成员的密码,但不能重置其他 IAM 用户的密码。

有关使用策略控制 AWS 对身份的访问的更多信息和示例,请参阅控制对身份的访问中的IAM 用户指南

控制对策略的访问

管理员可以控制哪些用户可以创建、编辑和删除客户托管策略,以及哪些用户可以附加和分离所有托管策略。当您查看一个策略时,您可以查看策略摘要,其中包括该策略中每个服务的访问权限级别的摘要。AWS 将每个服务操作分为四个操作之一访问级别基于每个操作的功能:ListReadWrite,或者Permissions management。您可以使用这些访问权限级别确定将哪些操作包含在您的策略中。有关更多信息,请参阅 。了解策略摘要中的访问级别摘要中的IAM 用户指南

警告

您应限制Permissions Management访问级别权限。否则,您的账户成员为自己创建的策略所拥有的权限可能比他们应有的权限更多。或者,他们可以创建具有 AWS 完全访问权限的单独用户。

有关如何控制 AWS 访问策略的更多信息和示例,请参阅控制对策略的访问中的IAM 用户指南

控制对 资源的访问

管理员可以使用基于身份的策略或基于资源的策略控制对资源的访问。在基于身份的策略中,您将策略附加到一个身份并指定该身份可以访问哪些资源。在基于资源的策略中,您将策略附加到要控制的资源。在该策略中,您指定哪些委托人可以访问该资源。

有关更多信息,请参阅 。控制对资源的访问中的IAM 用户指南

资源创建者不会自动拥有权限

无论谁创建了某个账户中的资源,所有这些资源都归该账户所有。AWS 账户根用户是账户所有者,因此具有对账户中的任意资源执行任意操作的权限。

重要

强烈建议您不使用根用户执行日常任务,即使是管理任务。而是应按照仅使用根用户创建您的第一个 IAM 用户的最佳实践。然后请妥善保存根用户凭证,仅用它们执行少数账户和服务管理任务。要查看需要您以根用户身份登录的任务,请参阅需要根用户的 AWS 任务

必须授予 AWS 账户中的实体(用户或角色)创建资源的访问权限。但是,仅仅因为这些实体创建了资源,并不意味着他们自动拥有对该资源的完全访问权限。管理员必须为每个操作明确授予权限。此外,只要管理员有权管理用户和角色权限,就可以随时撤销这些权限。

控制对不同账户中的委托人的访问

管理员可以使用基于 AWS 资源的策略、IAM 跨账户角色或 AWS Organizations 服务,以允许其他账户中的委托人访问您账户中的资源。

对于一些 AWS 服务,管理员可授予对资源的跨账户访问权限。为此,管理员将策略直接附加到要共享的资源,而不是将角色用作代理。如果服务支持此策略类型,则管理员共享的资源还必须支持基于资源的策略。与基于用户的策略不同,基于资源的策略指定哪些人(以 AWS 账户 ID 号列表的形式)可以访问该资源。Global Accelerator 不支持基于资源的策略。

与角色相比,使用基于资源的策略进行跨账户访问具有一些优势。利用通过基于资源的策略访问的资源,委托人(人员或应用程序)仍在可信账户中工作,并且无需放弃用于代替角色权限的用户权限。换句话说,委托人可以同时访问可信账户 信任账户中的资源。这对于从一个账户向另一个账户中复制信息之类的任务非常有用。有关使用跨账户角色的更多信息,请参阅。在您拥有的另一个 AWS 账户中向 IAM 用户提供访问权限中的IAM 用户指南

AWS Organizations 可以针对您拥有的多个 AWS 账户实现基于策略的管理。借助,可以创建账户 Organizations、自动创建账户以及应用和管理这些组的策略。Organizations 支持您针对多个账户集中管理策略,无需使用自定义脚本和手动操作流程。使用 AWS Organizations,您可以创建服务控制策略 (SCP),从而集中控制 AWS 账户对 AWS 服务的使用。有关更多信息,请参阅 。什么是 AWS Organizations?中的AWS Organizations 用户指南

什么是策略?

您可以创建策略并将其附加到 IAM 身份或 AWS 资源,以便控制 AWS 中的访问。

注意

要快速开始,您可以忽略此页面。首先,审核有关的介绍性信息AWS Global Accelerator 的身份和访问管理,然后参阅入门

策略是 AWS 中的一个对象;在与实体或资源相关联时,策略定义了它们的权限。在委托人(如用户)发出请求时,AWS 将评估这些策略。策略中的权限确定是允许还是拒绝请求。大多数策略在 AWS 中存储为 JSON 文档。

IAM 策略定义操作的权限,无关乎您使用哪种方法执行操作。例如,如果策略允许GetUser操作,则具有该策略的用户可以从 AWS 管理控制台、AWS CLI 或 AWS API 中获取用户信息。在创建 IAM 用户时,您可以设置用户以允许控制台或编程访问。IAM 用户可以使用用户名和密码登录到控制台。或者,他们也可以使用访问密钥来使用 CLI 或 API。

按频率顺序列出的以下策略类型可能会影响请求是否已获得授权。有关更多详细信息,请参阅策略类型中的IAM 用户指南

基于身份的策略

您可以将托管策略和内联策略挂载到 IAM 身份(用户、用户所属组和角色)。

基于资源的策略

您可以将内联策略附加到一些 AWS 服务中的资源。基于资源的策略的最常见示例是 Amazon S3 存储桶策略和 IAM 角色信任策略。Global Accelerator 不支持基于资源的策略。

SCP Organizations

您可以使用 AWS Organizations 服务控制策略 (SCP) 将权限边界应用于 AWS Organizations 组织或组织单元 (OU)。这些权限会应用到成员账户中的所有实体。

访问控制列表 (ACL)

您可以使用 ACL 来控制哪些委托人可以访问资源。ACL 类似于基于资源的策略,但它们是唯一不使用 JSON 策略文档结构的策略类型。全局加速器支持 OR 不支持 ACL。

这些策略类型可分类为权限策略权限边界

权限策略

您可以将权限策略挂载到 AWS 中的资源,以定义该对象的权限。在单个账户中,AWS 一起评估所有权限策略。权限策略是最常用的策略。您可以使用以下策略类型作为权限策略:

基于身份的策略

当您将托管策略或内联策略附加到 IAM 用户、组或角色时,策略定义该实体的权限。

基于资源的策略

将 JSON 策略文档附加到资源时,定义该资源的权限。服务必须支持基于资源的策略。

访问控制列表 (ACL)

将 ACL 附加到资源时,定义具有访问该资源的权限的委托人的列表。资源必须支持 ACL。

权限边界

您可以使用策略来定义实体(用户或角色)的权限边界。权限边界控制实体可以具有的最大权限。权限边界是一项高级 AWS 功能。当多个权限边界应用于请求时,AWS 会单独评估每个权限边界。您可以在以下情况下应用权限边界:

组织

您可以使用 AWS Organizations 服务控制策略 (SCP) 将权限边界应用于 AWS Organizations 组织或组织单元 (OU)。

IAM 用户或角色

您可以对用户或角色的权限边界使用托管策略。有关更多信息,请参阅 。IAM 实体的权限边界中的IAM 用户指南

基于身份的策略

您可以向 IAM 身份附加策略。例如,您可以执行以下操作:

将权限策略附加到账户中的用户或组

要向用户授予创建 AWS Global Accelerator ess 资源(例如加速器)的权限,您可以将权限策略附加到用户或用户所属的组。

将权限策略附加到角色(授予跨账户权限)

您可以将基于身份的权限策略挂载到 IAM 角色,以授予跨账户的权限。例如,账户 A 中的管理员可以创建一个角色,以向其他 AWS 账户(如账户 B)或某项 AWS 服务授予跨账户权限,如下所述:

  1. 账户 A 管理员可以创建一个 IAM 角色,然后向该角色附加授予其访问账户 A 中资源的权限的权限策略。

  2. 账户 A 管理员可以向角色挂载信任策略,将账户 B 标识为能够担任该角色的委托人。

  3. 之后,账户 B 管理员可以委派权限,指派账户 B 中的任何用户担任该角色。这样,账户 B 中的用户就可以创建或访问账户 A 中的资源了。如果您需要授予 AWS 服务权限来担任该角色,则信任策略中的委托人也可以是 AWS 服务委托人。

有关使用 IAM 委派权限的更多信息,请参阅访问控制中的IAM 用户指南

有关用户、组、角色和权限的更多信息,请参阅《IAM 用户指南》 中的身份 (用户、组和角色)

以下是您可以与全球加速器一起使用的两个策略示例第一个示例策略授予用户对 AWS 账户中加速器的所有 “列表” 和 “描述” 操作的编程访问权限:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "globalaccelerator:List*", "globalaccelerator:Describe*" ], "Resource": "*" } ] }

以下示例授予对ListAccelerators操作:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "globalaccelerator:ListAccelerators", ], "Resource": "*" } ] }

基于资源的策略

基于资源的策略是附加到资源的 JSON 策略文档。这些策略允许您指定,指定的委托人可在何种条件下对该资源执行哪些操作。最常见的基于资源的策略是面向 Amazon S3 存储桶的。基于资源的策略是仅存在于资源上的内联策略。没有基于托管资源的策略。

使用基于资源的策略向其他 AWS 账户的成员授予权限比 IAM 角色具有一些优势。有关更多信息,请参阅 。IAM 角色与基于资源的策略有何不同中的IAM 用户指南

策略访问级别分类

在 IAM 控制台中,使用以下访问级别分类对操作进行分组:

List

提供权限列出服务内的资源以确定某个对象是否存在。此访问权限级别的操作可以列出对象,但是看不到资源的内容。具有 List (列表) 访问级别的大多数操作都无法在特定资源上执行。使用这些操作创建策略语句时,必须指定 All resources (所有资源) ("*")。

Read

提供权限读取服务中资源的内容和属性但不对其进行编辑。例如,Amazon S3 操作GetObjectGetBucketLocation具有Read访问级别。

写入

提供在服务中创建、删除或修改资源的权限。例如,Amazon S3 操作CreateBucketDeleteBucket, 和PutObject具有写入访问级别。

权限管理

提供权限在服务中授予或修改资源权限。例如,大多数 IAM 和 AWS Organizations 策略操作具有权限管理访问级别。

Tip

要提高您的 AWS 账户的安全性,请限制或定期监控包括权限管理访问级别分类。

标记

提供权限创建、删除或修改附加到服务中的资源的标签。例如,Amazon EC2CreateTagsDeleteTags操作具有标记访问级别。

入门

AWS Identity and Access Management (IAM) 是一项 AWS 服务,可让您安全地管理对服务和资源的访问。IAM 是为您的 AWS 账户提供的一项功能,不会另外收费。

注意

在开始使用 IAM 之前,请阅读有关AWS Global Accelerator 的身份和访问管理

在首次创建 AWS 账户时,您最初使用一个具有账户中的所有 AWS 服务和资源的完全访问权限的单点登录身份。此身份称为 AWS 账户根用户,可以通过使用您用于创建账户的电子邮件地址和密码进行登录来访问该身份。强烈建议您不使用根用户执行日常任务,即使是管理任务。相反,请遵循仅使用根用户创建您的第一个 IAM 用户的最佳实践。然后请妥善保存根用户凭证,仅用它们执行少数账户和服务管理任务。

创建您的 IAM 管理员用户

自行创建管理员用户并将该用户添加到管理员组(控制台)
  1. 登录到IAM 控制台作为帐户所有者,方法是选择根用户并输入您的 AWS 账户电子邮件地址。在下一页上,输入您的密码。

    注意

    强烈建议您遵守使用Administrator跟随并安全地锁定根用户凭证的 IAM 用户。只在执行少数账户和服务管理任务时才作为根用户登录。

  2. 在导航窗格中,选择用户,然后选择添加用户

  3. 对于 User name (用户名),输入 Administrator

  4. 选中 AWS Management Console access (AWS 管理控制台访问) 旁边的复选框。然后选择自定义密码,并在文本框中输入新密码。

  5. (可选)默认情况下,AWS 要求新用户在首次登录时创建新密码。您可以清除 User must create a new password at next sign-in (用户必须在下次登录时创建新密码) 旁边的复选框以允许新用户在登录后重置其密码。

  6. 选择后续:权限。

  7. 设置权限下,选择将用户添加到组

  8. 选择创建组

  9. Create group (创建组) 对话框中,对于 Group name (组名称),输入 Administrators

  10. 选择筛选策略,然后选择AWS 托管-工作职能来过滤表格内容。

  11. 在策略列表中,选中 AdministratorAccess 的复选框。然后选择 Create group (创建组)

    注意

    您必须先激活 IAM 用户和角色对账单的访问权限,然后才能使用 AdministratorAccess 权限访问 AWS 账单和成本管理控制台。为此,请按照“向账单控制台委派访问权限”教程第 1 步中的说明进行操作。

  12. 返回到组列表中,选中您的新组所对应的复选框。如有必要,选择 Refresh 以在列表中查看该组。

  13. 选择后续:标签

  14. (可选)通过以键值对的形式附加标签来向用户添加元数据。有关在 IAM 中使用标签的更多信息,请参阅。标记 IAM 实体中的IAM 用户指南

  15. 选择后续:审核查看要添加到新用户的组成员资格的列表。如果您已准备好继续,请选择 Create user

您可使用此相同的流程创建更多的组和用户,并允许您的用户访问 AWS 账户资源。要了解有关使用策略限制用户对特定 AWS 资源的权限的信息,请参阅访问管理示例策略

为 Global Accelerator 创建委托用户

要支持 AWS 账户中的多个用户,您必须委派权限以允许其他人仅执行您要允许的操作。为此,请创建一个 IAM 组(其中具有这些用户所需的权限),然后在创建 IAM 用户时将其添加到必要的组。您可以使用此过程为您的整个 AWS 账户设置组、用户和权限。此解决方案最适合中小型组织,其中 AWS 管理员可以手动管理用户和组。对于大型组织,您可以使用自定义 IAM 角色联合身份验证,或者单点登录

在以下过程中,您将创建名为arnavcarlos, 和martha并附加一个策略,该策略授予创建名为my-example-accelerator,但只能在接下来的 30 天内。您可以使用此处提供的步骤添加具有不同权限的用户。

为其他人创建委托用户(控制台)
  1. 登录 AWS 管理控制台,并通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

  2. 在导航窗格中,选择 Users,然后选择 Add user

  3. 对于 User name (用户名),输入 arnav

  4. 选择 Add another user (添加其他用户) 并输入 carlos 作为第二个用户。然后选择 Add another user (添加其他用户) 并输入 martha 作为第三个用户。

  5. 选中 旁边的复选框AWS 管理控制台访问,然后选择自动生成的密码

  6. 清除 User must create a new password at next sign-in (用户必须在下次登录时创建新密码) 旁边的复选框以允许新用户在登录后重置其密码。

  7. 选择后续:权限。

  8. 选择直接附加现有策略。您将为用户创建新的托管策略。

  9. 选择创建策略

    将在新的选项卡或浏览器窗口中打开 Create policy (创建策略) 向导。

  10. 可视化编辑器选项卡上,选择选择服务。然后选择 Global Accelerator。您可以使用顶部的搜索框限制服务列表中的结果。

    这些区域有:服务部分关闭,操作部分会自动打开。

  11. 选择要允许的全局加速器操作。例如,要授予创建加速器的权限,请在globalaccelerator:CreateAccelerator中的筛选操作文本框。当筛选全局加速器操作列表时,选中globalaccelerator:CreateAccelerator

    全局加速器操作按访问级别分类进行分组,以便您轻松快速确定每个操作提供的访问级别。有关更多信息,请参阅 策略访问级别分类

  12. 如果在前面的步骤中选择的操作不支持选择特定的资源,则会所有资源为您选择。在这种情况下,您无法编辑该部分。

    如果您选择了一个或多个支持资源级权限的操作,则可视化编辑器会在 Resources (资源) 部分中列出这些资源类型。选择您选择了需要加速器资源类型选择是否要为策略输入特定的加速器。

  13. 如果您想要允许针对所有资源执行 globalaccelerator:CreateAccelerator 操作,请选择 All resources (所有资源)

    如果您要指定一个资源,请选择 Add ARN (添加 ARN)。指定区域和账户 ID(或账户 ID)(或者选择任何),然后输入my-example-accelerator对于资源。然后,选择添加

  14. 选择 Specify request conditions (optional) (指定请求条件 (可选))

  15. 选择添加条件授予创建加速器的权限接下来的 7 天内。假定当天日期为 2019 年 1 月 1 日。

  16. 对于 Condition Key (条件键),选择 aws: CurrentTime。此条件键检查用户发出请求的日期和时间。它返回 true,因此仅当日期和时间在指定范围内时才允许 globalaccelerator:CreateAccelerator 操作。

  17. 适用于限定词,请保留默认值。

  18. 要指定允许的日期和时间范围的开始日期,对于 Operator (运算符),请选择 DateGreaterThan。然后,对于 Value (值),输入 2019-01-01T00:00:00Z

  19. 选择 Add (添加) 以保存您的条件。

  20. 选择 Add another condition (添加另一个条件) 以指定结束日期。

  21. 按照类似步骤指定允许的日期和时间范围的结束日期。对于 Condition Key (条件键),选择 aws: CurrentTime。对于 Operator (运算符),请选择 DateLessThan。对于 Value (值),请输入 2019-01-06T23:59:59Z,值为第一个日期之后的第 7 天。然后,选择 Add (添加) 以保存您的条件。

  22. (可选)要查看您正在创建的策略的 JSON 策略文档,请选择JSON选项卡。您可以随时在可视化编辑器JSON 选项卡之间切换。但是,如果您进行更改或选择查看策略中的可视化编辑器选项卡上,IAM 可能会调整您的策略结构以针对可视化编辑器进行优化。有关更多信息,请参阅 。调整策略结构中的IAM 用户指南

  23. 完成后,选择查看策略

  24. 在存储库的查看策略页面, 用于名称输入,输入globalaccelerator:CreateAcceleratorPolicy。对于描述,输入 Policy to grants permission to create an accelerator。查看策略摘要以确保您授予了所需的权限,然后选择创建策略以保存新策略。

  25. 返回到原始选项卡或窗口,然后刷新您的策略列表。

  26. 在搜索框中,输入 globalaccelerator:CreateAcceleratorPolicy。选中新策略旁边的复选框。然后选择 Next Step

  27. 选择后续:审核以预览您的新用户。如果您准备好继续,请选择 Create users (创建用户)

  28. 下载或复制新用户的密码并安全地将其提供给用户。另外,为用户提供链接到您的 IAM 用户控制台页面和刚刚创建的用户名。

允许用户自行管理其凭据

您必须拥有对将托管用户的虚拟 MFA 设备的硬件的物理访问权限以便配置 MFA。例如,您可能为使用在智能手机上运行的虚拟 MFA 设备的用户配置 MFA。在这种情况下,您必须具有智能手机才能完成该向导。因此,您可能想让用户配置和管理他们自己的虚拟 MFA 设备。在此情况下,您必须授予用户执行必要的 IAM 操作所需的权限。

创建允许凭证自我管理的策略(控制台)
  1. 登录 AWS 管理控制台,并通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

  2. 在导航窗格中,选择策略,然后选择创建策略

  3. 选择 JSON 选项卡,然后复制以下 JSON 策略文档中的文本。将该文本粘贴到 JSON 文本框中。

    重要

    本示例策略不允许用户在登录时重置密码。新用户和密码过期的用户可以执行此操作。您可以通过向语句 BlockMostAccessUnlessSignedInWithMFA 中添加 iam:ChangePasswordiam:CreateLoginProfile 来允许此操作。但是,IAM 不建议这样做。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAllUsersToListAccounts", "Effect": "Allow", "Action": [ "iam:ListAccountAliases", "iam:ListUsers", "iam:ListVirtualMFADevices", "iam:GetAccountPasswordPolicy", "iam:GetAccountSummary" ], "Resource": "*" }, { "Sid": "AllowIndividualUserToSeeAndManageOnlyTheirOwnAccountInformation", "Effect": "Allow", "Action": [ "iam:ChangePassword", "iam:CreateAccessKey", "iam:CreateLoginProfile", "iam:DeleteAccessKey", "iam:DeleteLoginProfile", "iam:GetLoginProfile", "iam:ListAccessKeys", "iam:UpdateAccessKey", "iam:UpdateLoginProfile", "iam:ListSigningCertificates", "iam:DeleteSigningCertificate", "iam:UpdateSigningCertificate", "iam:UploadSigningCertificate", "iam:ListSSHPublicKeys", "iam:GetSSHPublicKey", "iam:DeleteSSHPublicKey", "iam:UpdateSSHPublicKey", "iam:UploadSSHPublicKey" ], "Resource": "arn:aws:iam::*:user/${aws:username}" }, { "Sid": "AllowIndividualUserToViewAndManageTheirOwnMFA", "Effect": "Allow", "Action": [ "iam:CreateVirtualMFADevice", "iam:DeleteVirtualMFADevice", "iam:EnableMFADevice", "iam:ListMFADevices", "iam:ResyncMFADevice" ], "Resource": [ "arn:aws:iam::*:mfa/${aws:username}", "arn:aws:iam::*:user/${aws:username}" ] }, { "Sid": "AllowIndividualUserToDeactivateOnlyTheirOwnMFAOnlyWhenUsingMFA", "Effect": "Allow", "Action": [ "iam:DeactivateMFADevice" ], "Resource": [ "arn:aws:iam::*:mfa/${aws:username}", "arn:aws:iam::*:user/${aws:username}" ], "Condition": { "Bool": { "aws:MultiFactorAuthPresent": "true" } } }, { "Sid": "BlockMostAccessUnlessSignedInWithMFA", "Effect": "Deny", "NotAction": [ "iam:CreateVirtualMFADevice", "iam:DeleteVirtualMFADevice", "iam:ListVirtualMFADevices", "iam:EnableMFADevice", "iam:ResyncMFADevice", "iam:ListAccountAliases", "iam:ListUsers", "iam:ListSSHPublicKeys", "iam:ListAccessKeys", "iam:ListServiceSpecificCredentials", "iam:ListMFADevices", "iam:GetAccountSummary", "sts:GetSessionToken" ], "Resource": "*", "Condition": { "BoolIfExists": { "aws:MultiFactorAuthPresent": "false" } } } ] }

    此策略有何作用?

    • 这些区域有:AllowAllUsersToListAccounts语句让用户可以在 IAM 控制台中查看账户及其用户的基本信息。这些权限必须位于自己的语句中,因为它们不支持或不需要指定特定的资源 ARN,而需要指定 "Resource" : "*"

    • 这些区域有:AllowIndividualUserToSeeAndManageOnlyTheirOwnAccountInformation语句让用户可以在 IAM 控制台中管理自己的用户、密码、访问密钥、签名证书、SSH 公有密钥和 MFA 信息。它还允许用户首次登录(尽管管理员要求他们设置首次密码)。资源 ARN 仅限在用户自己的 IAM 用户实体中使用这些权限。

    • AllowIndividualUserToViewAndManageTheirOwnMFA 语句让用户可以查看或管理其 MFA 设备。请注意,此语句中的资源 ARN 仅允许访问 MFA 设备,或者与当前登录用户完全同名的用户。用户不能创建或更改除自己设备外的任何 MFA 设备。

    • AllowIndividualUserToDeactivateOnlyTheirOwnMFAOnlyWhenUsingMFA 语句让用户可以仅停用自己的 MFA 设备(仅在用户使用 MFA 登录时)。这可防止仅具有访问密钥(但没有 MFA 设备)的其他用户停用 MFA 设备和访问账户。

    • 这些区域有:BlockMostAccessUnlessSignedInWithMFA语句使用"Deny""NotAction"拒绝访问 IAM 和其他 AWS 服务中除少数操作外的所有操作if用户未登录 MFA。有关此语句的逻辑的更多信息,请参阅。NotAction 与 Deny中的IAM 用户指南。如果用户使用 MFA 登录,则 "Condition" 测试失败,最后一个 "deny" 语句失效,而用户的其他策略或语句确定用户的权限。此语句可确保,当用户未使用 MFA 登录时,他们只能执行所列出的操作,并且仅当另一个语句或策略允许访问这些操作时方可执行。

      ...IfExists 运算符的 Bool 版本可确保:如果 aws:MultiFactorAuthPresent 键缺失,条件将返回 true。这意味着使用长期凭证(例如访问密钥)访问 API 的用户被拒绝访问非 IAM API 操作。

  4. 完成后,选择查看策略

  5. Review (查看) 页面上,输入 Force_MFA 作为策略名称。对于策略描述,输入This policy allows users to manage their own passwords and MFA devices but nothing else unless they authenticate with MFA.查看策略摘要以查看策略授予的权限,然后选择创建策略以保存您的工作。

    将在托管策略列表中显示新策略,并已准备好附加该策略。

将策略附加到用户(控制台)
  1. 在导航窗格中,选择 Users

  2. 选择要编辑的用户的名称(不是复选框)。

  3. 权限选项卡中,请选择添加权限

  4. 选择直接附加现有策略

  5. 在搜索框中输入 Force,然后选中列表中 Force_MFA 旁的复选框。接下来,选择 Next (下一步):审核

  6. 检查更改,然后选择 Add permissions (添加权限)

为 IAM 用户启用 MFA

为增强安全性,我们建议所有 IAM 用户配置多重验证 (MFA) 以帮助保护您的全球加速器资源。MFA 增强了安全性,因为它要求用户除了其常规登录凭证之外,还要提供来自 AWS 支持的 MFA 设备的唯一身份验证。最安全的 AWS MFA 设备是 U2F 安全密钥。如果您的公司已经有 U2F 设备,我们建议您为 AWS 启用这些设备。否则,您必须为每个用户购买设备并等待硬件到达。有关更多信息,请参阅 。启用 U2F 安全密钥中的IAM 用户指南

如果您还没有 U2F 设备,则可以通过启用虚拟 MFA 设备快速、低成本地开始使用。这要求您在现有手机或其他移动设备上安装软件应用程序。该设备将基于进行了时间同步的一次性密码算法生成一个六位数字代码。当用户登录 AWS 时,系统会提示从设备输入代码。分配给用户的每个虚拟 MFA 设备必须是唯一的。用户无法从另一个用户的虚拟 MFA 设备代码输入代码来进行身份验证。有关可用作虚拟 MFA 设备的一些受支持应用程序的列表,请参阅 Multi-Factor Authentication

注意

您必须拥有对将托管用户的虚拟 MFA 设备的移动设备的物理访问权限以便为 IAM 用户配置 MFA。

为 IAM 用户启用虚拟 MFA 设备(控制台)
  1. 登录 AWS 管理控制台,并通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

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

  3. User Name 列表中,选择目标 MFA 用户的名称。

  4. 选择 Security Credentials 选项卡。在 Assigned MFA device (已分配 MFA 设备) 旁边,选择 Manage (管理)

  5. Manage MFA Device (管理 MFA 设备) 向导中,选择 Virtual MFA device (虚拟 MFA 设备),然后选择 Continue (继续)

    IAM 将生成并显示虚拟 MFA 设备的配置信息,包括 QR 代码图形。此图形是秘密配置密钥的表示形式,适用于不支持 QR 代码的设备上的手动输入。

  6. 打开您的虚拟 MFA 应用程序。

    有关可用于托管虚拟 MFA 设备的应用程序的列表,请参阅 Multi-Factor Authentication。如果虚拟 MFA 应用程序支持多个账户 (多个虚拟 MFA 设备),请选择相应的选项以创建新账户 (新的虚拟 MFA 设备)。

  7. 确定 MFA 应用程序是否支持 QR 代码,然后执行以下操作之一:

    • 在向导中,选择 Show QR 代码 (显示 QR 代码),然后使用该应用程序扫描 QR 代码。例如,您可选择摄像头图标或选择类似于 Scan code 的选项,然后使用设备的摄像头扫描此代码。

    • Manage MFA Device (管理 MFA 设备) 向导中,选择 Show secret key (显示私有密钥),然后在您的 MFA 应用程序中输入私有密钥。

    完成操作后,虚拟 MFA 设备会开始生成一次性密码。

  8. Manage MFA Device (管理 MFA 设备) 向导的 MFA code 1 (MFA 代码 1) 框中,输入虚拟 MFA 设备上当前显示的一次性密码。请等候 30 秒,以便设备生成新的一次性密码。然后在 MFA code 2 (MFA 代码 2) 框中输入第二个一次性密码。选择 Assign MFA (分配 MFA)

    重要

    生成代码之后立即提交您的请求。如果生成代码后等待很长时间才提交请求,MFA 设备会成功与用户关联,但 MFA 设备无法同步。这是因为基于时间的一次性密码 (TOTP) 很快会过期。这种情况下,您可以重新同步设备。有关更多信息,请参阅 。重新同步虚拟和硬件 MFA 设备中的IAM 用户指南

    虚拟 MFA 设备现在已准备好与 AWS 一起使用了。