EC2 无法使用正确的 IAM 角色访问同一账户中的 S3

问题描述 投票:0回答:1

我有两个 EC2 实例:

ec2-1
ec2-2
,一个 s3 存储桶:
bucket-1
,全部位于同一个 aws 账户中。

两个实例都与具有此信任关系的同一 IAM 角色关联:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "ec2.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}

对于权限策略,此 IAM 角色具有

AmazonS3FullAccess

我已通过

aws configure
设置了 aws 凭证,在两个实例上输入相同的访问/秘密密钥。

这两个实例具有相同的 VPC、安全组,但不知何故,

ec2-1
可以通过 aws cli 访问
bucket-1
,而
ec2-2
则不能并抛出此错误:

aws s3 ls

An error occurred (AccessDenied) when calling the ListBuckets operation: Access Denied

有人可以帮忙提供建议吗?

谢谢!

amazon-web-services amazon-s3 amazon-ec2 aws-cli vpc
1个回答
0
投票

在这个像 VPC 这样的简单实验室中,除非您设置了 Internet 网关和/或 NAT,否则没有公共 Internet 访问权限。如果您将公共 IP 地址分配给 EC2 实例(并设置公共路由),则不需要 NAT 网关。如果您在专用网络中运行,则需要为 EC2 实例提供一种访问 S3 服务端点的方法 - 通过 Internet 到达公共端点或在 VPC 中放置 S3 的 VPC 端点。

文档展示了如何在 VPC 中配置 S3 终端节点(如果它是私有子网)。

© www.soinside.com 2019 - 2024. All rights reserved.