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

IAM 临时安全凭证

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

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

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

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

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

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

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

Amazon STS 和 Amazon 区域

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

临时凭证的常见情形

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

联合身份

您可以在 Amazon 之外的外部系统中管理用户身份,并为从这些系统登录的用户授予访问权限以执行 Amazon 任务和访问您的 Amazon 资源。IAM 支持两种联合身份验证。在两种情况下,身份都存储在 Amazon 外部。区别在于外部系统所处的位置 在您的数据中心内或 Web 上的外部第三方。有关外部身份提供程序的更多信息,请参阅身份提供程序和联合身份验证

  • 企业身份联合验证 – 您可以对您的企业网络中的用户进行身份验证,然后为这些用户提供对 Amazon 的访问权限,而无需为其创建新的 Amazon 身份,他们也无需使用不同的登录凭证进行登录。这称为用于临时访问的单点登录方法。Amazon STS 支持开放标准 [如安全断言标记语言(SAML)2.0],这使您可以使用 Microsoft AD FS 来利用您的 Microsoft Active Directory。您还可以使用 SAML 2.0 管理自己的联合身份用户身份解决方案。有关更多信息,请参阅关于基于 SAML 2.0 的联合身份验证

  • Web 身份联合验证 - 您可让用户使用已知的第三方身份提供商(例如,Login with Amazon、Facebook、Google 或任何 OpenID Connect (OIDC) 2.0 兼容的提供商)登录。您可以交换来自这些提供商的凭证,以获取对您的 Amazon Web Services 账户 中的资源的临时使用权限。这称为用于临时访问的 Web 联合身份验证方法。当您对移动应用程序或 Web 应用程序使用 Web 联合身份验证时,您不需要创建自定义登录代码或管理您自己的用户身份。使用 Web 身份联合验证可帮助您确保 Amazon Web Services 账户 的安全,因为您不必随应用程序分配长期安全凭证(如 IAM 用户访问密钥)。有关更多信息,请参阅关于 Web 联合身份验证

    Amazon STS Web 联合身份验证支持 Login with Amazon、Facebook、Google 和任何 OpenID Connect (OIDC) 兼容的身份提供程序。

    注意

    有关移动应用程序,我们建议使用 Amazon Cognito。您可以将此服务与面向移动开发的 Amazon 开发工具包搭配使用,为用户创建唯一的身份,并对其进行身份验证,以使其安全地访问您的 Amazon 资源。Amazon Cognito 支持与 Amazon STS 相同的身份提供程序,还支持未经身份验证的(来宾)访问,并允许您在用户登录时迁移用户数据。Amazon Cognito 还提供用于同步用户数据的 API 操作,因此,无论用户在设备间怎样转移,其数据总能得以保留。有关更多信息,请参阅《Amplify 文档》中的使用 Amplify 进行身份验证

用于跨账户访问的角色

很多组织均维护多个 Amazon Web Services 账户。利用角色和跨账户访问,您可以在一个账户中定义用户身份,并使用这些身份访问属于您组织的其他账户中的 Amazon 资源。这称为用于临时访问的委派方法。有关创建跨账户角色的更多信息,请参阅 创建向 IAM 用户委派权限的角色。要了解您信任区域之外的账户(受信任的企业或账户)中的主体是否有权承担您的角色,请参阅什么是 IAM Access Analyzer?

适用于 Amazon EC2 的 角色

如果您在 Amazon EC2 实例上运行一些应用程序,并且这些应用程序需要访问 Amazon 资源,则您可在启动您的实例时为其提供临时安全凭证。这些临时安全凭证对该实例上运行的所有应用程序都可用,因此您无需在该实例上存储任何长期凭证。有关更多信息,请参阅使用 IAM 角色向在 Amazon EC2 实例上运行的应用程序授予权限

其他 Amazon 服务

可使用临时安全凭证访问大多数 Amazon 服务。有关接受临时安全凭证的服务的列表,请参阅使用 IAM 的Amazon服务