容器凭证提供者 - AWS 软件开发工具包和工具

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

容器凭证提供者

容器凭证提供者为客户的容器化应用程序获取凭证。该凭证提供程序对 Amazon Elastic Container Service(Amazon ECS)和 Amazon Elastic Kubernetes Service(Amazon EKS)客户很有用。SDK 尝试通过 GET 请求从指定的 HTTP 端点加载凭证。

如果您使用 Amazon ECS,我们建议您使用任务 IAM 角色来改进凭证隔离、授权和提高可审计性。配置后,Amazon ECS 会设置 SDK 和工具用来获取凭证的 AWS_CONTAINER_CREDENTIALS_RELATIVE_URI 环境变量。要配置 Amazon ECS 以使用此功能,请参阅《Amazon Elastic Container Service 开发人员指南》中的任务 IAM 角色

如果您使用 Amazon EKS,我们建议您使用 Amazon EKS 容器组身份来改进凭证隔离,提高最低权限、可审计性,改善独立操作、可重用性和可扩展性。您的容器组(pod)和 IAM 角色都与 Kubernetes 服务账户相关联,以管理应用程序的证书。要了解有关 Amazon EKS 容器组身份的更多信息,请参阅《Amazon EKS 用户指南》中的 Amazon EKS 容器组身份。配置后,Amazon EKS 会设置 SDK 和工具用来获取凭证的 AWS_CONTAINER_CREDENTIALS_FULL_URIAWS_CONTAINER_AUTHORIZATION_TOKEN_FILE 环境变量。有关设置信息,请参阅 Amazon EKS 用户指南中的设置 Amazon EKS Pod 身份代理,或者在 AWS 博客网站上的 A mazon EKS Pod Identity 简化了 Amazon EKS 集群上应用程序的 IAM 权限

使用以下方法配置此功能:

AWS_CONTAINER_CREDENTIALS_FULL_URI - 环境变量

指定完整的 HTTP URL 端点,供 SDK 在请求凭证时使用。这包括方案和主机。

默认值:无。

有效值:有效的 URI。

注意:此设置是 AWS_CONTAINER_CREDENTIALS_RELATIVE_URI 的替代设置,只有在未设置 AWS_CONTAINER_CREDENTIALS_RELATIVE_URI 时才会使用。

Linux/macOS 通过命令行设置环境变量的示例:

export AWS_CONTAINER_CREDENTIALS_FULL_URI=http://localhost/get-credentials

或者

export AWS_CONTAINER_CREDENTIALS_FULL_URI=http://localhost:8080/get-credentials
AWS_CONTAINER_CREDENTIALS_RELATIVE_URI - 环境变量

指定 HTTP URL 端点,供 SDK 在请求凭证时使用。该值将附加到默认的 Amazon ECS 的主机名 169.254.170.2 上。

默认值:无。

有效值:有效的相对 URI。

Linux/macOS 通过命令行设置环境变量的示例:

export AWS_CONTAINER_CREDENTIALS_RELATIVE_URI=/get-credentials?a=1
AWS_CONTAINER_AUTHORIZATION_TOKEN - 环境变量

指定纯文本的授权令牌。如果设置了此变量,SDK 将使用环境变量的值在 HTTP 请求上设置授权标头。

默认值:无。

有效值:字符串。

注意:此设置是 AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE 的替代设置,只有在未设置 AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE 时才会使用。

Linux/macOS 通过命令行设置环境变量的示例:

export AWS_CONTAINER_CREDENTIALS_FULL_URI=http://localhost/get-credential export AWS_CONTAINER_AUTHORIZATION_TOKEN=Basic abcd
AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE - 环境变量

指定至包含纯文本授权令牌的文件的绝对文件路径。

默认值:无。

有效值:字符串。

Linux/macOS 通过命令行设置环境变量的示例:

export AWS_CONTAINER_CREDENTIALS_FULL_URI=http://localhost/get-credential export AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE=/path/to/token

与 AWS SDK 的兼容性

以下 SDK 支持本主题中所述的功能和设置。所有部分例外情况均已注明。 AWS SDK for Java 和 AWS SDK for Kotlin 唯一支持任何 JVM 系统属性设置。