从S3同步文件到EC2失败:无法定位凭证问题求助
解决AWS S3 Sync无法定位凭证的问题
方法1:给EC2实例附加IAM角色(推荐方案)
这是AWS官方推荐的权限管理方式,无需在实例上存储明文凭证:
- 先创建一个IAM角色,给它添加能访问目标S3桶的权限策略,示例策略如下:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetObject" ], "Resource": [ "arn:aws:s3:::deg-s3bucketwebfiles", "arn:aws:s3:::deg-s3bucketwebfiles/*" ] } ] }
- 把这个角色附加到你的EC2实例:
- 登录AWS EC2控制台,找到目标实例
- 右键实例 → 安全 → 修改IAM角色
- 选中刚才创建的角色,保存设置
- 重新登录EC2的SSH会话,再次执行同步命令:
sudo aws s3 sync s3://deg-s3bucketwebfiles /var/www/html
方法2:临时配置AWS CLI凭证(仅用于测试)
如果只是临时测试,可以直接在EC2实例上配置CLI凭证:
- 执行命令:
sudo aws configure
- 按照提示依次输入你的AWS Access Key ID、Secret Access Key、默认区域(比如
us-east-1)、输出格式(比如json) - 配置完成后重新执行同步命令即可
- 注意:这种方式会把凭证明文存在实例上,不适合生产环境使用
方法3:检查S3桶的权限策略
确认你的S3桶deg-s3bucketwebfiles的权限策略没有拒绝刚才配置的IAM角色/用户访问,避免出现权限冲突。
内容的提问来源于stack exchange,提问作者Bernard Lim
相关产品推荐
相关产品推荐

