在所有IAM策略示例中,他们都提到使用通配符(*
)作为" stuff"的占位符。但是,示例总是在最后使用它们,和/或仅使用一个通配符进行演示(例如,列出文件夹中的所有内容" xyz"使用.../xyz/*
)。
我无法找到关于使用多个通配符的明确命令,例如匹配多个存储桶中子文件夹中的任何内容:
arn:aws:s3:::mynamespace-property*/logs/*
允许某些内容在"制作"中查看任何log
个文件(mynamespace-property-prod
)和"沙盒" (mynamespace-property-sand
)桶。
答案 0 :(得分:12)
不确定,但是"突然间#34; (你知道我在说什么)它在policy simulator工作:
政策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)
是的,它会起作用
您可以将通配符用作资源ARN的一部分。您可以使用 任何ARN段内的通配符(*和?)(部分 用冒号分隔)。星号(*)表示任意组合 字符和问号(?)表示任何单个字符。 你可以使用多个*或?每个细分中的字符,但是a 通配符不能跨越段。
我要说“你可以使用多个”是文档中的拼写错误,它们的意思是“你可以使用”。