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

已配置IAM角色仍无法让EC2实例访问Amazon S3桶的问题求助

问题根源

从aws sts get-caller-identity的输出可以明确:当前AWS CLI会话使用的是IAM用户user1的凭证,而非你附加到EC2实例的IAM角色。这意味着CLI没有自动获取实例角色的临时凭证,而是优先加载了本地存储的用户凭证。

解决步骤
  • 清理本地AWS凭证文件:
    EC2实例角色的临时凭证由实例元数据服务自动提供,但如果本地存在~/.aws/credentials文件或者环境变量中配置了用户凭证,CLI会优先使用这些。执行以下操作:
    # 查看本地凭证文件内容
    cat ~/.aws/credentials
    # 删除该文件(或清空内容)
    rm ~/.aws/credentials
    
  • 验证身份切换:
    删除凭证后重新执行aws sts get-caller-identity,此时输出的Arn应该是类似arn:aws:sts::12345:assumed-role/你的角色名/i-xxxxxxxxx的格式,说明已切换到实例角色。
  • 重新测试S3访问:
    再次执行aws s3 ls,此时应该能正常列出S3桶(AmazonS3ReadOnlyAccess策略默认允许ListBuckets操作)。
额外排查点
  • 确认EC2实例的IAM角色已正确绑定:在EC2控制台的实例详情页,检查IAM角色字段是否显示你创建的目标角色。
  • 检查实例元数据服务连通性:执行curl http://169.254.169.254/latest/meta-data/iam/security-credentials/,如果返回你的角色名称,说明元数据服务正常可用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 14:40:34