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

使用gcloud storage rsync同步GCP与S3桶时遇AccessDenied错误求助

问题:GCP存储桶与AWS S3同步时出现AccessDenied错误

我正尝试同步GCP存储桶与AWS S3存储桶的内容,已完成以下配置:

  • GCP本地认证:
    gcloud auth application-default login
    
  • AWS SSO认证:
    aws sso login --sso-session mysession
    
  • 设置AWS假定身份并配置安全令牌:
    aws configure export-credentials
    export AWS_SECURITY_TOKEN=$AWS_SESSION_TOKEN
    

执行同步命令时持续报错:

gcloud storage rsync gs://gcp_bucket_name s3://aws_s3_name --recursive

错误信息:

⠏ERROR: AccessDenied: Access Denied4GiB | 24.2B/s    
⠏ERROR: AccessDenied: Access Denied4GiB | 24.2B/s                              
⠧ERROR: AccessDenied: Access Denied4GiB | 24.2B/s

请问我遗漏了什么配置?是否需要为AWS登录分配额外权限?


排查与解决方案

1. 确认AWS身份的S3权限

AccessDenied最常见的原因是当前AWS身份权限不足,需根据同步方向确保SSO角色具备对应权限:

  • 从GCP同步到S3:需要s3:ListBucket(查看桶内容)、s3:PutObject(上传文件),若启用同步删除还需s3:DeleteObject
  • 双向同步:额外添加s3:GetObject(下载S3文件)权限

可通过以下命令验证当前身份权限:

aws s3api get-bucket-acl --bucket aws_s3_name

若该命令也返回AccessDenied,需联系AWS管理员为SSO角色添加对应S3权限策略。

2. 验证AWS环境变量是否正确加载

手动设置AWS_SECURITY_TOKEN可能遗漏其他必要凭证,建议直接用命令自动导出所有有效变量:

eval $(aws configure export-credentials --format env)

执行后用以下命令确认变量存在:

env | grep AWS_

需确保AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY、AWS_SESSION_TOKEN三个变量均有有效值(AWS_SECURITY_TOKEN为旧变量名,部分工具仅识别AWS_SESSION_TOKEN)。

3. 检查GCP凭据权限(若涉及S3到GCP同步)

如果同步包含从S3到GCP的方向,需确认GCP应用默认凭据对应的账号有GCS的storage.objects.get(读取)、storage.objects.create(写入)权限,可通过以下命令验证:

curl -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" https://storage.googleapis.com/storage/v1/b/gcp_bucket_name/o

若返回403,需为对应GCP服务账号添加Storage Object Admin或更细粒度的权限。

4. 排查S3桶的访问限制

部分S3桶可能通过桶策略或VPC端点规则限制访问:

  • 检查桶策略是否存在拒绝当前身份访问的条目
  • 确认本地终端IP不在桶的访问黑名单中,或桶未限制仅允许特定VPC内访问

5. 用AWS CLI直接验证S3访问权限

跳过gcloud工具,先用AWS CLI测试S3操作,定位问题来源:

# 列出桶内容
aws s3 ls s3://aws_s3_name
# 上传测试文件
echo "test" > test.txt
aws s3 cp test.txt s3://aws_s3_name/test.txt
# 下载测试文件
aws s3 cp s3://aws_s3_name/test.txt test_download.txt

若这些命令均报错AccessDenied,问题出在AWS身份权限或凭证;若能正常操作,再排查gcloud工具的兼容性问题。

6. 更新gcloud到最新版本

旧版本gcloud storage可能存在AWS SSO凭证兼容问题,执行以下命令更新:

gcloud components update

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 14:40:14