AWS Security Token Service (本文未经梳理)

您可以使用 AWS Security Token Service (AWS STS) 创建可控制对您的 AWS 资源的访问的临时安全凭证,并将这些凭证提供给受信任用户。临时安全凭证的工作方式与您的 IAM 用户可使用的长期访问密钥凭证的工作方式几乎相同,仅存在以下差异:

  • 顾名思义,临时安全凭证是短期凭证。可将这些凭证的有效时间配置几分钟到几小时。一旦这些凭证到期,AWS 将不再识别这些凭证或不再允许来自使用这些凭证发出的 API 请求的任何类型的访问。
  • 临时安全凭证不随用户一起存储,而是动态生成并在用户提出请求时提供给用户。临时安全凭证到期时 (甚至之前),用户可以请求新的凭证,只要请求凭证的用户仍有权这样做。

这些差异使得可利用临时凭证获得以下优势:

  • 您不必随应用程序分配或嵌入长期 AWS 安全凭证。
  • 可允许用户访问您的 AWS 资源,而不必为这些用户定义 AWS 身份。临时凭证是角色和联合身份验证的基础。
  • 临时安全凭证的使用期限有限,因此,在不需要这些凭证时不必轮换或显式撤销这些凭证。临时安全凭证到期后无法重复使用。您可指定凭证的有效期,但有最长限期。

AWS STS 和 AWS 区域

临时安全凭证由 AWS STS 生成。默认情况下,AWS STS 是一种全球服务,在 https://sts.amazonaws.com 上具有单个终端节点。不过,您也可以选择对任何其他支持的区域中的终端节点进行 AWS STS API 调用。这可能会将请求发送到地理位置离您较近的区域中的服务器以减少延迟(服务器延迟)。无论您的凭证来自于哪个区域,它们都会在全球范围内起作用。有关更多信息,请参阅 在 AWS 区域中管理 AWS STS。

临时凭证的常见情形

临时凭证在涉及联合身份验证、委派、跨账户访问和 IAM 角色的情形中很有用。

联合身份

用于跨账户访问的角色

适用于 Amazon EC2 的角色

如果您在 Amazon EC2 实例上运行一些应用程序,并且这些应用程序需要访问 AWS 资源,则您可在启动您的实例时为其提供临时安全凭证。这些临时安全凭证对该实例上运行的所有应用程序都可用,因此您无需在该实例上存储任何长期凭证。有关更多信息,请参阅 https://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html

使用 IAM角色向在 Amazon EC2 实例上运行的应用程序授予权限 在 EC2 实例上运行的应用程序必须将 AWS 凭证包含在其 AWS API 请求中。您可以让开发人员将 AWS 凭证直接存储在 EC2 实例中,并允许该实例中的应用程序使用这些凭证。但开发人员随后必须管理凭证,确保他们能安全地将凭证传递给每个实例,并在需要轮换凭证时更新每个 EC2 实例。这需要进行大量的额外工作。

相反,您可以且应使用 IAM 角色管理在 EC2 实例上运行的应用程序的临时 凭证。在使用角色时,您不需要将长期凭证 (如用户名和密码或访问密钥) 分配给 EC2 实例。角色可提供临时权限供应用程序在调用其他 AWS 资源时使用。当您启动 EC2 实例时,可指定要与实例关联的 IAM 角色。然后,实例上运行的应用程序可使用角色提供的临时凭证对 API 请求进行签名。

若要使用角色向 EC2 实例上运行的应用程序授予权限,需要进行一点额外配置。EC2 实例上运行的应用程序由虚拟化操作系统从 AWS 中提取。因为存在这一额外分离操作,所以需要执行一个附加步骤将 AWS 角色及其关联权限分配给 EC2 实例,并使这些权限对其应用程序可用。此额外步骤是创建要附加到实例的实例配置文件。实例配置文件包含角色,并且可以为实例上运行的应用程序提供角色的临时凭证。然后,可以在应用程序的 API 调用中使用这些临时凭证访问资源,以及将访问限制为仅角色指定的那些资源。请注意,一次只能将一个角色分配给 EC2 实例,实例上的所有应用程序都共享相同的角色和权限。

以这种方式使用该角色拥有多种优势。因为角色凭证是临时的,并且会自动轮换,所以您不必管理凭证,也不必担心长期安全风险。此外,如果您对多个实例使用单个角色,则可以对该角色进行更改,而此更改会自动传播到所有实例。

https://docs.aws.amazon.com/STS/latest/APIReference/API_Operations.html

results matching ""

    No results matching ""