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

在Google Cloud SDK Docker中配置gsutil访问S3时认证失败如何解决

首先明确:gcloud config set 命令无法设置AWS凭证,gsutil访问S3依赖boto框架的认证体系,和gcloud自有配置完全独立。
你遇到的报错本质是没有提供有效的AWS认证信息,gsutil默认会尝试访问AWS实例元数据服务拿临时凭证,在本地Docker环境下没有该服务,所以会抛出连接拒绝、找不到认证处理器的错误。

前置要求

你必须先向共享存储桶的所有者索要对你开放的AWS访问密钥对,包含aws_access_key_id和aws_secret_access_key,没有有效密钥的情况下无法访问S3存储桶。

可用的配置方式

拿到密钥后有三种常用配置方案,按易用性排序如下:

  • 运行时传入环境变量(推荐,无需修改配置)
    直接在docker run命令中通过-e参数传入AWS标准认证环境变量,gsutil会自动读取:
docker run --rm -ti --volumes-from gcloud-config \
  -e AWS_ACCESS_KEY_ID=替换为你的aws_access_key_id \
  -e AWS_SECRET_ACCESS_KEY=替换为你的aws_secret_access_key \
  google/cloud-sdk gsutil ls s3://bucketname
  • 本地编写.boto文件挂载使用
    在Windows本地新建一个名为.boto的文件,写入以下内容:
[Credentials]
aws_access_key_id = 替换为你的aws_access_key_id
aws_secret_access_key = 替换为你的aws_secret_access_key

运行命令时将该文件挂载到容器的/root/.boto路径即可:

docker run --rm -ti --volumes-from gcloud-config \
  -v 你本地.boto文件的完整路径:/root/.boto \
  google/cloud-sdk gsutil ls s3://bucketname
  • 将配置写入gcloud-config卷持久化
    如果不想每次运行命令都传参数或者挂载文件,可以直接把配置写入你已经创建的gcloud-config卷:
    首先进入容器的bash交互界面:
docker run --rm -ti --volumes-from gcloud-config google/cloud-sdk bash

在容器内执行以下命令写入.boto配置(替换成你自己的密钥):

cat > /root/.boto << EOF
[Credentials]
aws_access_key_id = 替换为你的aws_access_key_id
aws_secret_access_key = 替换为你的aws_secret_access_key
EOF

输入exit退出容器后,后续运行原有命令即可正常访问S3:

docker run --rm -ti --volumes-from gcloud-config google/cloud-sdk gsutil ls s3://bucketname

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 07:24:05