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

同一AWS账号下EC2关联相同IAM角色无法访问S3求助

排查EC2实例S3访问权限问题的步骤
  • 确认EC2-2的IAM角色附着状态
    虽然你提到两个实例关联了同一个IAM角色,但实际可能存在附着失败的情况。通过AWS控制台查看EC2-2的实例详情,检查"IAM角色"字段是否正确显示目标角色;或者在EC2-2上执行以下命令验证:

    aws ec2 describe-instances --instance-ids <EC2-2的实例ID> --query 'Reservations[0].Instances[0].IamInstanceProfile'
    

    如果返回空或角色名称不符,说明角色未正确附着,需要重新关联。

  • 验证实例元数据服务(IMDS)的可用性
    EC2实例通过IMDS获取IAM角色的临时凭证,若IMDS访问异常会导致无法获取有效权限。在EC2-2上执行以下命令:

    # 检查是否能获取角色名称
    curl http://169.254.169.254/latest/meta-data/iam/security-credentials/
    # 替换为上一步返回的角色名称,获取临时凭证
    curl http://169.254.169.254/latest/meta-data/iam/security-credentials/<角色名称>
    

    如果请求失败,可能是VPC禁用了IMDS,或者实例使用IMDSv2但未正确发送请求(需要先获取会话令牌)。

  • 检查AWS CLI的凭证优先级
    AWS CLI的凭证优先级为:环境变量 > 本地配置文件 > IAM角色临时凭证。你通过aws configure设置了访问密钥,但EC2-2可能优先使用了本地配置的密钥(而非角色凭证),而该密钥没有s3:ListBuckets权限。在EC2-2上执行:

    aws configure list
    

    查看当前生效的access_key是否为临时凭证(开头为ASIA),如果是固定密钥(开头为AKIA),说明本地配置覆盖了角色凭证。可以删除~/.aws/credentials文件,让CLI自动使用角色凭证。

  • 排查账号级或组织级权限限制
    即使IAM角色拥有AmazonS3FullAccess,如果AWS账号存在服务控制策略(SCP)或组织级权限限制,可能会拒绝s3:ListBuckets操作。检查账号的SCP配置,确认没有包含以下类似语句:

    {
        "Effect": "Deny",
        "Action": "s3:ListBuckets",
        "Resource": "*"
    }
    
  • 验证网络连通性
    虽然两个实例使用相同安全组,但EC2-2可能存在网络连通问题。尝试执行:

    telnet s3.amazonaws.com 443
    

    如果无法连通,检查VPC是否配置了S3网关端点(针对私有子网),或者实例是否能正常访问公网(针对公有子网)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 06:02:44