AWS IAM - 您可以在值中使用多个通配符(*)吗?

时间:2014-03-21 14:36:43

标签: amazon-web-services amazon-s3 amazon-iam

在所有IAM策略示例中,他们都提到使用通配符(*)作为" stuff"的占位符。但是,示例总是在最后使用它们,和/或仅使用一个通配符进行演示(例如,列出文件夹中的所有内容" xyz"使用.../xyz/*)。

我无法找到关于使用多个通配符的明确命令,例如匹配多个存储桶中子文件夹中的任何内容:

  

arn:aws:s3:::mynamespace-property*/logs/*

允许某些内容在"制作"中查看任何log个文件(mynamespace-property-prod)和"沙盒" (mynamespace-property-sand)桶。

2 个答案:

答案 0 :(得分:12)

不确定,但是"突然间#34; (你知道我在说什么)它在policy simulator工作:

  • 政策1:"允许任何存储桶上的特定S3权限" (例如编辑角色)
  • 政策2:"拒绝所有S3操作,除非在用户的文件夹中跨桶" (即只能看到他们的文件)

政策2'是:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "ExplicitlyDenyAnythingExceptOwnNamedFolder",
            "Action": [
                "s3:*"
            ],
            "Effect": "Deny",
            "NotResource": [
                "arn:aws:s3:::mynamespace-property*/subfolder/${aws:username}/*"
            ]
        }
    ]
}

作为旁注,请注意arn:aws:s3:::mynamespace-property*/${aws:username}/* (没有明确的子文件夹)将同时匹配和不匹配"干预"子文件夹:

  • arn:aws:s3:::mynamespace-property-suffix/subfolder/theuser/files..."
  • arn:aws:s3:::mynamespace-property-suffix/theuser/files..."

答案 1 :(得分:3)

是的,它会起作用

来自documentation

  

您可以将通配符用作资源ARN的一部分。您可以使用   任何ARN段内的通配符(*和?)(部分   用冒号分隔)。星号(*)表示任意组合   字符和问号(?)表示任何单个字符。   你可以使用多个*或?每个细分中的字符,但是a   通配符不能跨越段。

我要说“你可以使用多个”是文档中的拼写错误,它们的意思是“你可以使用”。