本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
容器凭证提供者
注意
如需了解设置页面布局或解释后面的 Support b y AWS SDKs 和 tools 表格的帮助,请参阅了解本指南的设置页面。
容器凭证提供者为客户的容器化应用程序获取凭证。该证书提供者对亚马逊弹性容器服务 (Amazon ECS) 和亚马逊 Elastic Kubernetes Service (Amazon EKS) 客户非常有用。 SDKs 尝试通过 GET 请求从指定的 HTTP 端点加载凭证。
如果您使用 Amazon ECS,我们建议您使用任务 IAM 角色来改进凭证隔离、授权和提高可审计性。配置后,Amazon ECS 会设置 SDKs和工具用来获取凭证的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 会设置AWS_CONTAINER_CREDENTIALS_FULL_URI
SDKs和工具用来获取凭证的和AWS_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
Support AWS SDKs by 和工具
以下内容 SDKs 支持本主题中描述的功能和设置。所有部分例外情况均已注明。 适用于 Java 的 AWS SDK 和 AWS SDK for Kotlin 唯一支持任何 JVM 系统属性设置。
SDK | 支持 | 备注或更多信息 |
---|---|---|
AWS CLI v2 | 是 | |
适用于 C++ 的 SDK | 是 | |
适用于 Go V2 (1.x) 的 SDK |
是 | |
适用于 Go 1.x(V1)的 SDK | 是 | |
适用于 Java 2.x 的 SDK | 是 | 当 Lambda SnapStart 被激活AWS_CONTAINER_CREDENTIALS_FULL_URI 并自动AWS_CONTAINER_AUTHORIZATION_TOKEN 用于身份验证时。 |
适用于 Java 1.x 的 SDK | 是 | 当 Lambda SnapStart 被激活AWS_CONTAINER_CREDENTIALS_FULL_URI 并自动AWS_CONTAINER_AUTHORIZATION_TOKEN 用于身份验证时。 |
适用于 JavaScript 3.x 的软件开发工具包 | 是 | |
适用于 JavaScript 2.x 的 SDK | 是 | |
适用于 Kotlin 的 SDK | 是 | |
适用于 .NET 3.x 的 SDK | 是 | 当 Lambda SnapStart 被激活AWS_CONTAINER_CREDENTIALS_FULL_URI 并自动AWS_CONTAINER_AUTHORIZATION_TOKEN 用于身份验证时。 |
适用于 PHP 3.x 的 SDK | 是 | |
适用于 Python (Boto3) 的 SDK |
是 | 当 Lambda SnapStart 被激活AWS_CONTAINER_CREDENTIALS_FULL_URI 并自动AWS_CONTAINER_AUTHORIZATION_TOKEN 用于身份验证时。 |
适用于 Ruby 3.x 的 SDK | 是 | |
适用于 Rust 的 SDK | 是 | |
适用于 Swift 的 SDK | 是 | |
用于 PowerShell | 是 |