AWS Command Line Interface
用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

使用外部进程获取凭证

警告

以下主题讨论从外部进程获取凭证。如果生成凭证的命令可由未经批准的进程或用户访问,则可能存在安全风险。我们建议您使用 CLI 和 AWS 提供的支持的安全替代方案,以降低泄露凭证的风险。请务必保管好 config 文件及任何支持文件和工具,以防泄露。

如果您有 AWS CLI 不直接支持的生成或查找凭证的方法,则可以通过在 config 文件中配置 credential_process 设置来配置 CLI 使用它。

例如,您可以在配置文件中包含类似于以下内容的条目:

[profile developer] credential_process = /opt/bin/awscreds-custom --username helen

AWS CLI 完全按照配置文件中指定的方式运行该命令,然后从 STDOUT 读取数据。您指定的命令必须在 STD​​OUT 上生成符合以下语法的 JSON 输出:

{ "Version": 1, "AccessKeyId": "an AWS access key", "SecretAccessKey": "your AWS secret access key", "SessionToken": "the AWS session token for temporary credentials", "Expiration": "ISO8601 timestamp when the credentials expire" }

截至撰写本文之时,Version 密钥必须设置为 1。随时间推移和该结构的发展,该值可能会增加。

Expiration 密钥是采用 ISO8601 格式的时间戳。如果工具的输出中不存在 Expiration 键,则 CLI 假定凭证是不刷新的长期凭证。否则,将其视为临时凭证,并通过在其过期前重新运行 credential_process 命令来自动刷新凭证。

注意

AWS CLI 缓存外部进程凭据,这一点不同于代入角色凭证。如果需要缓存,则必须在外部进程中实现。

外部进程可以返回非零返回代码,以指示在检索凭证时发生错误。