首页 > 解决方案 > 如何检查我的 EC2 是否可以访问同一账户中的 s3 存储桶?

问题描述

我有一个在 ubuntu 18.4 上工作的 ec2 实例。和 s3 用于同一区域。

我希望我的 ec2 连接到 s3。我的 S3 处于默认状态,我刚刚创建它并上传了一个文件。目前,访问状态为“Bucket and objects not public”。

我创建了一个持有策略的角色

"Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "*",
            "Resource": [
                "arn:aws:s3:::bucketname",
                "arn:aws:s3:::bucketname/*"
            ]
        }
    ]

已将角色附加到 Ec2 实例。

我想检查我的 ec2 是否能够访问 S3,我该怎么做?

我的 ec2 是一个 Web 服务器,它将访问图像存储桶,除了这些步骤,我还需要做其他事情吗?

标签: amazon-web-servicesamazon-s3amazon-ec2amazon-iam

解决方案


通常,您可以ssh 进入实例awscli,在 Ubuntu 上安装并针对您想要的存储桶运行aws s3 ls或类似命令。

例如:

sudo apt install -y awscli

aws s3 ls s3://bucketname

我的 ec2 是一个 Web 服务器,它将访问图像存储桶,除了这些步骤,我还需要做其他事情吗?

如果您的应用程序使用 AWS 开发工具包,那么您无需执行任何操作。SDK 将从您的实例角色获取凭据。

一个好的做法是使用Grant Least Privilege规则。因此,根据您的需要,您可以将策略限制为仅读取操作或仅您需要的操作,而不是对所有内容都使用“*”。

希望这可以帮助。


推荐阅读