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

Aws IAM角色与存储桶策略

彭硕
2023-03-14

我已经读了很多文档,看了很多视频,但是我对IAM角色和Bucket策略仍然很困惑。让我困惑的是:

1)我创建了一个Bucket。那时我可以将它公有或私有。如果我将它公有,那么任何人或任何应用程序都可以“看到”Bucket中的对象。我认为可以将权限设置为添加/删除/获取/列出Bucket中的对象。如果是这样,那么为什么我需要为S3 Bucket添加任何IAM角色,或者添加任何Bucket策略(???)

2)在创建bucket时,我是否可以只对某些用户/应用程序/EC2实例等对bucket的全部或部分授予非常特定的权限?例如,EC2-X上的App1可以访问bucket B1中的子文件夹a。

3)来到IAM角色,一个给予完全S3访问的EC2角色--这意味着什么?对任何bucket的完全访问?我如何限制运行在EC2上的应用程序只能访问某些bucket,只有某些受限制的权限(参见上面#2))?EC2上的所有应用程序都有对所有bucket的完全访问权限吗?在创建bucket时,权限是否可以设置成可以否决IAM角色?

4)最后,除了上述IAM角色之外,桶策略还做什么?例如,'Allows3FullAccess'是“桶策略”,还是“IAM策略”?为什么要区分策略类型--策略就是这样--它们定义了一些对象/资源上的一些权限/规则。

谢谢你的澄清。-AWS的新人

共有1个答案

公良泰宁
2023-03-14

我认为您将资源的权限与IAM实体混淆了。

i)AWS帐户拥有资源(S3 bucket、EC2实例等),这些资源可以由IAM用户、IAM角色或其他AWS服务(可以来自相同或不同帐户)访问

ii)我们通过策略管理可以访问的人员及其权限级别

vi)最终准入将由所有政策组合决定

要回答您的问题:

1>我们无法添加(或附加)具有S3桶的IAM角色。如果您希望您bucket应该是公共的(这不是推荐的,但如果它用于静态网站,则需要在一定程度上做到这一点),那么您可以保持它是公共的

2>在创建存储桶时,这是不可能的。您必须在通过IAM和/或S3存储桶策略创建存储桶之后执行此操作

3>如果IAM角色具有AmazonS3FullAccess,则该角色可以(Effect:Allow)为您帐户中的任何S3资源(resource:)调用任何S3 API(S3:)(前提是它们没有跨帐户访问权限)。如果多个应用程序在附加了IAM角色的实例上运行,并且正在使用该角色提供的凭据,则它们的权限将相同。

4>我不知道您从哪里获得了引用AllowS3FullAccess,但除非我们知道确切的JSON,否则我们无法确认。如果它附加到bucket或具有主体元素,则它是bucket策略。您可以根据需要使用IAM和Bucket策略。通常,桶策略用于跨帐户访问,或者如果您想在一个地方管理S3权限策略。

 类似资料:
  • 所以我就做了如下的桶策略: {“版本”:“2012-10-17”,“ID”:“HTTP引用策略示例”,“语句”:[{“SID”:“允许从www.example.com和example.com发起的get请求”,“Effect”:“Allow”,“Principal”:“”Action“:”S3:“,”Resource“:”arn:aws:s3:::exampleBucket/“,”Conditio

  • 我发现,当我在IAM策略中使用NotResource作为掩码并将其附加到bucket时,受策略影响的资源是那个bucket中没有在NotResource子句中指定的所有资源。我需要指出一个文档,它清楚地表明情况是这样的。我一直在查看内联策略的文档,以及s3访问管理和策略的文档,但我很难找到这些特定的信息。文档中是否说明了在内联策略中指定资源的限制?

  • 存储桶用于存储用户的任意文件。 对象存储是用于存储任意文件的分布式存储服务。存储桶即bucket,用于存储对象文件。用户在存储文件之前必须先创建存储桶,云管平台以存储桶为对象存储的资源单位分配给项目使用。用户可以通过网络便捷的在对象存储中上传、下载以及分享文件。 云管平台目前支持对接并导入基于S3协议的对象存储服务MinIO、Ceph Radio以及公有云提供的对象存储服务。 使用流程: (二者任

  • 我搞不清这里出了什么问题。如有任何帮助,我们将不胜感激。

  • 最新sigv4 s3浏览器上传帖子的文档-http://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-post-example.html -显示我需要使用、和。 如果我尝试这样做,我会得到一个错误,说我错过了,这在文档中没有提到,并且需要是。 我应该做上面的bas64桶策略文档,还是应该做规范的方法,比如python发布到DynamoDB-http:/

  • 在负载均衡器、桶或云CDN中都没有这样的选项。 如何使用此配置服务如此深入的链接?