当前位置: 首页 > 知识库问答 >
问题:

AWS EC2使用IAM角色访问S3

卢鸿博
2023-03-14

场景:我在同一个帐户下有一个EC2实例和一个S3 bucket,我在该EC2上的web应用程序希望访问该bucket中的资源。

在官方文档之后,我使用s3access创建了一个IAM角色,并将其分配给EC2实例。根据我的理解,现在我的web应用程序应该可以访问桶。但是,经过试验,我似乎必须添加AllowPublicRead桶策略,如下所示:

{
    "Version": "2008-10-17",
    "Statement": [
        {
            "Sid": "AllowPublicRead",
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::mybucket/*"
        }
    ]
}

否则我就被禁止进入。

但是,既然我已经向EC2实例授予了S3AccessIAM角色,为什么还要使用这个AllowPublicRead桶策略呢?

共有1个答案

傅增
2023-03-14

S3S3:GetObject只允许从ec2实例访问对象,而您希望从Web应用程序访问这些对象,这意味着从浏览器访问这些对象,在这种情况下,这些图像/对象将呈现给用户浏览器,如果是面向公共的应用程序,则还需要分配AllowPublicRead权限。

 类似资料:
  • 我想知道PySpark是否支持使用IAM角色进行S3访问。具体来说,我有一个业务限制,我必须承担AWS角色才能访问给定的存储桶。使用boto时可以这样做(因为它是API的一部分),但我无法找到关于PySpark是否支持开箱即用的明确答案。 理想情况下,我希望能够在本地以独立模式运行时扮演一个角色,并将我的SparkContext指向该s3路径。我发现非IAM呼叫通常会随之而来: 是否存在提供IAM

  • 我已经启动了一个具有IAM角色“WebApp”的EC2实例。角色已附加,我可以使用 webapp角色具有S3的附加策略 我也需要更改bucket权限吗?或者我在Conf上做错了什么。EC2的?

  • null 根据AWS文档,您应该始终为EC2创建角色,并根据您的需求为角色分配策略。 向一个角色授予多个服务访问权限是否存在安全问题?我问这个问题的原因是,使用EC2元数据,您可以在此时使用该角色获得分配给EC2实例的accesskey信息。EC2经常刷新密钥。 任何反馈或输入。

  • 我正尝试使用IAM角色从spark读取s3桶中的csv文件,但在上获得 我安装了没有hadoop的Spark 2.4.4,安装了hadoop 3.2.1以及hadoop-aws-3.2.1.jar和aws-java-sdk-1.11.655.jar。我必须安装一个没有hadoop的spark版本,因为作为spark构建一部分的hadoop jars是来自2016年的2.7.3版本。 附加到角色的“

  • 我使用这个脚本来填充dynamo db:https://docs . AWS . Amazon . com/Amazon DynamoDB/latest/developer guide/loaddataphp . html 我在使用AWS SDK时遇到了这个错误: PHP致命错误:未捕获的异常“Aws\exception\CredentialsException”,消息为“无法从/root/读取凭

  • 问题内容: 我正在尝试使用AWS最近宣布的“ EC2的IAM角色”功能,该功能可让安全凭证自动传递到EC2实例。(请参阅http://aws.amazon.com/about-aws/whats- new/2012/06/11/Announcing-IAM-Roles-for- EC2-instances/ )。 如上所述,我已经设置了一个具有IAM角色的实例。我还可以通过curl获得(貌似)正确