繁体   English   中英

基于命名空间或标记的Amazon AWS S3 IAM策略

[英]Amazon AWS S3 IAM Policy based on namespace or tag

我有一些桶,它们以与assets-<something>相同的命名空间开头,所以我想知道什么是给IAM组权限的最佳选择,而维护它的需求最小。

是否可以在ARN中使用任何类型的正则表达式? 或者也许我可以使用标签? EC2具有ResourceTag条件,但似乎S3不存在。

或者我应该为每个桶添加新的ARN到策略?

我再次寻找最小的解决方案,因此将新策略附加到每个桶本身似乎有点多。

IAM策略可以基于通配符授予对Amazon S3存储桶的访问权限。

例如,此策略授予列出存储桶内容和从存储桶检索对象的权限,但仅当存储桶以assets-开头时:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "SomeSID",
      "Effect": "Allow",
      "Action": [
        "s3:ListBucket",
        "s3:GetObject"
      ],
      "Resource": [
        "arn:aws:s3:::assets-*",
        "arn:aws:s3:::assets-*/*"
      ]
    }
  ]
}

请注意, Resource部分同时引用了bucket(对于ListBucket )和bucket的内容(对于GetObject )。

通配符也可以在存储桶名称的其他位置工作,例如: arn:aws:s3:::*-record

无法基于标签授予对Amazon S3存储桶的访问权限。

ARN格式

顺便说一句,如果你想知道为什么亚马逊S3存储桶的ARN(亚马逊资源名称)中有这么多冒号,那是因为ARN的正常格式是:

arn:aws:<service name>:<region>:<account>:<resource>

对于Amazon S3存储桶,可以从存储桶名称(全局唯一)中识别区域和帐户,因此这些参数保留为空白。

是的确看来我可以使用带有ARN的IAM策略arn:aws:s3:::assets-*arn:aws:s3:::assets-*/*

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM