将 Amazon 身份联合到外部服务 - Amazon Identity and Access Management
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

将 Amazon 身份联合到外部服务

IAM 出站身份联合验证使您的 Amazon 工作负载无需存储长期凭证即可安全访问外部服务。您的 Amazon 工作负载可通过调用 GetWebIdentityToken API 从 Amazon Security Token Service(Amazon STS)请求短期的 JSON Web 令牌(JWT)。这些令牌经过加密签名,可公开验证,并包含一组全面的声明,用于向外部服务声明 Amazon 工作负载的身份。您可以将这些令牌用于各种第三方云提供商、SaaS 平台和自托管应用程序。外部服务使用在知名端点发布的 Amazon 验证密钥来验证令牌的真实性,并使用令牌中的信息进行身份验证和授权决策。

出站身份联合验证无需在应用程序代码或环境变量中存储 API 密钥或密码等长期凭证,从而改善了您的安全状况。您可以使用 IAM 策略控制对令牌生成的访问权限并强制执行签名算法、允许的受众和持续时间等令牌属性。所有令牌请求均已在 Amazon 中记录,从而为安全监控与合规性报告提供完整的审计跟踪记录。您还可以使用显示为自定义声明的标签自定义令牌,从而使外部服务能够实现基于属性的精细访问控制。

常见使用案例

使用出站身份联合验证,您的 Amazon 工作负载可以安全地实现以下功能:

  • 访问外部云提供商中的资源和服务。例如,处理数据的 Lambda 函数可以将结果写入外部云提供商的存储服务或查询其数据库。

  • 与外部软件即服务(SaaS)提供商集成,以进行分析、数据处理、监控等。例如,您的 Lambda 函数可以向可观测性平台发送指标。

  • 使用托管在 Amazon、外部云提供商或本地数据中心上的自有应用程序进行身份验证,从而实现安全的混合云和多云架构。例如,您的 Amazon 工作负载可以与在本地 Kubernetes 集群中运行的容器化应用程序进行交互。

工作方式

  1. Lambda 函数调用 GetWebIdentityToken API 向 Amazon Security Token Service(Amazon STS)请求 JSON Web 令牌(JWT)。

  2. Amazon STS 验证请求并向 Lambda 函数返回已签名的 JWT。

  3. Lambda 函数将 JWT 发送到外部服务。

  4. 外部服务从令牌中提取发布者 URL,验证其是否与已知的可信发布者匹配,并从 OIDC 发现端点获取 Amazon 的验证密钥和元数据。

  5. 外部服务使用验证密钥来验证令牌的签名,并验证过期时间、主题和受众等声明。

  6. 成功验证后,外部服务将授予对 Lambda 函数的访问权限。