如何限制AWS CLI仅从环境变量获取凭证并指定凭证源?
强制AWS CLI仅使用环境变量凭证的方法
要让AWS CLI在环境变量无可用凭证时直接失败,而非 fallback 到EC2实例配置文件,可通过以下命令行参数/方式实现:
1. 使用--credentials-source参数(AWS CLI v2专属)
直接在命令中指定仅从环境变量读取凭证:
aws sts get-caller-identity --credentials-source environment
当环境变量中缺少AWS_ACCESS_KEY_ID或AWS_SECRET_ACCESS_KEY时,命令会直接抛出Unable to locate credentials错误,不会尝试使用实例配置文件。
2. 指定空配置文件
通过指定一个空的/不存在的配置文件,让CLI无法加载其他凭证来源的配置:
aws sts get-caller-identity --config-file /dev/null
这种方式下,CLI仅会尝试从环境变量获取凭证,无有效凭证时直接失败。
3. 临时禁用EC2元数据服务
在命令前临时设置环境变量禁用元数据服务,阻止CLI读取实例配置文件:
AWS_EC2_METADATA_DISABLED=true aws sts get-caller-identity
该方式虽通过环境变量实现,但可直接在命令行前缀添加,快速生效。
注意事项
--credentials-source仅支持AWS CLI v2,若使用v1建议升级,或采用后两种方法。- 验证时可先清空环境变量中的AWS凭证,执行命令后若返回凭证未找到错误,即为配置生效。
内容的提问来源于stack exchange,提问作者Shuzheng
相关产品推荐
相关产品推荐

