You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Docker容器运行时使用docker run传入的AWS凭证获取调用者身份?

可以通过环境变量传入的AWS凭证获取调用者身份信息

完全可以这么做,AWS官方的SDK和CLI工具默认会自动读取容器内的这些环境变量完成身份认证,进而获取调用者身份信息。

注意事项

  • 你当前命令里的AWS_ACCESS_KEY建议改成标准的AWS_ACCESS_KEY_ID,虽然部分AWS SDK兼容前者,但使用标准变量名能避免潜在兼容性问题。修正后的命令如下:
    docker run -e AWS_ACCESS_KEY_ID={user_credentials["AccessKeyId"]} -e AWS_SECRET_ACCESS_KEY={user_credentials["SecretAccessKey"]} -e AWS_SESSION_TOKEN={user_credentials["SessionToken"]} --rm image_name
    
    另外注意--rm参数的位置,应该放在镜像名之前,否则可能无法生效。

验证方法

在容器运行期间,可通过以下方式获取调用者身份信息:

  1. 使用AWS CLI执行命令:
    aws sts get-caller-identity
    
  2. 若容器未预装AWS CLI,可通过对应编程语言的AWS SDK调用接口,比如Python的boto3:
    import boto3
    
    sts_client = boto3.client('sts')
    response = sts_client.get_caller_identity()
    print(response)
    

安全提示

  • 这种方式传入的凭证会暴露在容器环境变量中,容器内所有进程都能读取,需确保容器镜像和运行环境的安全性,防止凭证泄露。
  • 若在AWS托管容器服务(如ECS、EKS)中运行,更推荐使用IAM角色而非硬编码凭证,安全性更高。

内容的提问来源于stack exchange,提问作者Sandeep

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 06:50:31