使用和工具进行身份验证 Amazon SDKs 和访问 - Amazon SDKs 和工具
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

使用和工具进行身份验证 Amazon SDKs 和访问

在开发 S Amazon DK 应用程序或使用要使用的 Amazon 工具时 Amazon Web Services 服务,必须确定您的代码或工具的身份验证 Amazon方式。您可以通过不同的方式配置对 Amazon 资源的编程访问权限,具体取决于代码运行的环境和可用的 Amazon 访问权限。

以下选项是凭证提供商链的一部分。这意味着,通过相应地配置您的共享credentials文件 Amazon config和文件,您的 Amazon SDK 或工具将自动发现并使用该身份验证方法。

选择一种方法来验证您的应用程序代码

选择一种方法来验证您的应用程序发 Amazon 出的呼叫。

如果您的代码在上运行 Amazon,则凭据可以自动提供给您的应用程序。例如,如果您的应用程序托管在 Amazon Elastic Compute Cloud 上,并且存在与该资源关联的 IAM 角色,则证书将自动提供给您的应用程序。同样,如果您使用 Amazon ECS 或 Amazon EKS 容器,则可以通过容器内运行的代码通过软件开发工具包的凭证提供程序链自动获取为 IAM 角色设置的证书。

使用 IAM 角色对部署到 Amazon 的应用程序进行身份验证 EC2— 使用 IAM 角色在 Amazon EC2 实例上安全地运行您的应用程序。

当您创建 Lambda 函数时,Lam bda 会创建具有最低权限的执行角色。然后, Amazon 软件开发工具包或工具在运行时通过 Lambda 执行环境自动使用附加到 Lambda 的 IAM 角色。

使用 IAM 角色执行任务。您必须创建一个任务角色并在您的 Amazon ECS 任务定义中指定该角色。然后, Amazon 软件开发工具包或工具会自动使用在运行时通过 Amazon ECS 元数据分配给任务的 IAM 角色。

我们建议您使用 Amazon EKS Pod 身份

注意:如果您认为服务账户 (IRSA) 的 IAM 角色可能更适合您的独特需求,请参阅 A mazon EKS 用户指南中的比较 EKS Pod 身份和 IRSA

有关信息,请参阅使用基于身份的策略。 CodeBuild

请参阅专为您准备的指南 Amazon Web Services 服务。当你在上运行代码时 Amazon,SDK 凭证提供程序链可以自动为你获取和刷新凭证。

如果您正在创建需要访问的移动应用程序或基于客户端的 Web 应用程序 Amazon,请构建您的应用程序,使其能够使用 Web 联合身份验证动态请求临时 Amazon 安全证书。

利用 Web 联合身份验证,您不需要创建自定义登录代码或管理自己的用户身份。相反,应用程序用户可以使用知名的外部身份提供者(IdP)(例如,Login with Amazon、Facebook、Google 或任何其他 OpenID Connect (OIDC) 兼容的 IdP)登录。他们可以接收身份验证令牌,然后将该令牌交换为该映射中的临时安全证书 Amazon ,该证书到有权使用您的资源的 IAM 角色 Amazon Web Services 账户。

要了解如何为您的 SDK 或工具进行配置,请参阅 假设角色使用网络身份或 OpenID Connect 进行身份验证和工具 Amazon SDKs

有关移动应用程序,请考虑使用 Amazon Cognito。Amazon Cognito 充当身份凭证代理程序并为您完成许多联合身份验证工作。有关更多信息,请参阅 IAM 用户指南中的将 Amazon Cognito 用于移动应用程序

我们推荐使用 IAM 身份中心对 Amazon SDK 和工具进行身份验证

作为安全最佳实践,我们建议 Amazon Organizations 与 IAM Identity Center 配合使用来管理所有人的访问权限 Amazon Web Services 账户。你可以在中创建用户 Amazon IAM Identity Center,使用 Microsoft Active Directory,使用 SAML 2.0 身份提供商 (IdP),或者将你的 IdP 单独联合到其中。 Amazon Web Services 账户要查看您的地区是否支持 IAM Identity Center,请参阅 Amazon Web Services 一般参考 中的 Amazon IAM Identity Center 终端点和配额

(推荐)创建一个权限最低的 IAM 用户,该用户有权sts:AssumeRole进入您的目标角色。然后,使用为该用户source_profile设置的设置,将您的个人资料配置为扮演角色

您也可以通过环境变量或共享 Amazon credentials文件使用临时 IAM 证书。请参阅使用短期凭证进行身份验证 Amazon SDKs 和工具

注意:仅在沙盒或学习环境中,您可以考虑 使用长期凭证进行身份验证 Amazon SDKs 和工具

是:请参阅使用 IAM Anywhere 角色进行身份验证 Amazon SDKs 和工具。您可以使用 IAM Roles Anywhere 在 IAM 中为在外部运行的服务器、容器和应用程序等工作负载获取临时安全证书 Amazon。要使用 IAM Roles Anywhere,您的工作负载必须使用 X.509 证书。

进程凭证提供者用于在运行时自动检索凭证。这些系统可能使用辅助工具或插件来获取证书,并可能使用在幕后扮演 IAM 角色sts:AssumeRole

使用通过注入的临时证书 Amazon Secrets Manager。有关获取短期访问密钥的选项,请参阅 IAM 用户指南中的申请临时安全证书。有关存储这些临时证书的选项,请参阅Amazon 访问密钥

您可以使用这些凭证从 S ecrets Manager 安全地检索更广泛的应用程序权限,您的生产密钥或基于角色的长期证书可以存储在那里。

请使用第三方提供商编写的文档,获取有关获取证书的最佳指导。

是:使用环境变量和临时 Amazon STS 证书。

否:使用存储在加密机密管理器中的静态访问密钥(最后手段)。

身份验证方法

在 Amazon 环境中运行的代码的身份验证方法

如果您的代码在上运行 Amazon,则凭据可以自动提供给您的应用程序。例如,如果您的应用程序托管在 Amazon Elastic Compute Cloud 上,并且存在与该资源关联的 IAM 角色,则证书将自动提供给您的应用程序。同样,如果您使用 Amazon ECS 或 Amazon EKS 容器,则可以通过容器内运行的代码通过软件开发工具包的凭证提供程序链自动获取为 IAM 角色设置的证书。

通过基于 Web 的身份提供者进行身份验证 - 移动或基于客户端的 Web 应用程序

如果您正在创建需要访问的移动应用程序或基于客户端的 Web 应用程序 Amazon,请构建您的应用程序,使其能够使用 Web 联合身份验证动态请求临时 Amazon 安全证书。

利用 Web 联合身份验证,您不需要创建自定义登录代码或管理自己的用户身份。相反,应用程序用户可以使用知名的外部身份提供者(IdP)(例如,Login with Amazon、Facebook、Google 或任何其他 OpenID Connect (OIDC) 兼容的 IdP)登录。他们可以接收身份验证令牌,然后将该令牌交换为该映射中的临时安全证书 Amazon ,该证书到有权使用您的资源的 IAM 角色 Amazon Web Services 账户。

要了解如何为您的 SDK 或工具进行配置,请参阅 假设角色使用网络身份或 OpenID Connect 进行身份验证和工具 Amazon SDKs

有关移动应用程序,请考虑使用 Amazon Cognito。Amazon Cognito 充当身份凭证代理程序并为您完成许多联合身份验证工作。有关更多信息,请参阅 IAM 用户指南中的将 Amazon Cognito 用于移动应用程序

本地(不在 Amazon)中运行的代码的身份验证方法

有关访问管理的更多信息

I AM 用户指南包含以下有关安全控制 Amazon 资源访问的信息:

Amazon Web Services 一般参考 具有以下基础知识:

可访问的 IAM 身份中心可信身份传播 (TIP) 插件 Amazon Web Services 服务

  • 使用 TIP 插件进行访问 Amazon Web Services 服务— 如果您正在为 Amazon Q Business 或其他支持可信身份传播的服务创建应用程序,并且正在使用 适用于 Java 的 Amazon SDK 或 适用于 JavaScript 的 Amazon SDK,则可以使用 TIP 插件来获得简化的授权体验。

Amazon 构建者 ID

任何 Amazon Web Services 账户 你可能已经拥有或想要创作的 Amazon 构建者 ID 补充。虽然 Amazon Web Services 账户 充当你创建的 Amazon 资源的容器并为这些资源提供安全边界,但你的 Amazon 构建者 ID 代表你是一个个体。您可以使用登录 Amazon 构建者 ID 以访问开发者工具和服务,例如 Amazon Q 和 Amazon CodeCatalyst。