Amazon web services AWS IAM-可以在一个值中使用多个通配符(*)
在所有IAM策略示例中,他们都提到使用通配符(Amazon web services AWS IAM-可以在一个值中使用多个通配符(*),amazon-web-services,amazon-s3,amazon-iam,Amazon Web Services,Amazon S3,Amazon Iam,在所有IAM策略示例中,他们都提到使用通配符(*)作为“stuff”的占位符。但是,示例始终在末尾使用它们,和/或仅使用一个通配符进行演示(例如,使用../xyz/*列出文件夹“xyz”中的所有内容) 我找不到任何关于使用多个通配符的明确信息,例如,在多个存储桶中匹配子文件夹中的任何内容: arn:aws:s3:::mynamespace属性*/logs/* 允许某些内容在“生产”(mynamespace属性prod)和“沙盒”(mynamespace属性sand)存储桶中查看任何log文件。不
*
)作为“stuff”的占位符。但是,示例始终在末尾使用它们,和/或仅使用一个通配符进行演示(例如,使用../xyz/*
列出文件夹“xyz”中的所有内容)
我找不到任何关于使用多个通配符的明确信息,例如,在多个存储桶中匹配子文件夹中的任何内容:
arn:aws:s3:::mynamespace属性*/logs/*
允许某些内容在“生产”(mynamespace属性prod
)和“沙盒”(mynamespace属性sand
)存储桶中查看任何log
文件。不确定,但“突然”(你知道我在说什么)它正在使用:
- 策略1:“允许对任何bucket拥有特定的S3权限”(例如编辑角色)
- 策略2:“拒绝所有S3操作,除非在用户文件夹中跨存储桶”(即只能查看其文件)
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "ExplicitlyDenyAnythingExceptOwnNamedFolder",
"Action": [
"s3:*"
],
"Effect": "Deny",
"NotResource": [
"arn:aws:s3:::mynamespace-property*/subfolder/${aws:username}/*"
]
}
]
}
作为旁注,请注意
arn:aws:s3:::mynamespace属性*/${aws:username}/*
(无显式子文件夹)将与有无“中间”子文件夹匹配:
arn:aws:s3:::mynamespace属性后缀/子文件夹/theuser/files…”
arn:aws:s3:::mynamespace属性后缀/theuser/files…”
是的,它会工作的 从: 您可以将通配符用作资源ARN的一部分。你可以用 任何ARN段(零件)内的通配符(*和?) 用冒号分隔)。星号(*)表示以下各项的任意组合: 字符和问号(?)表示任何单个字符。 您可以使用多个*或?每个段中的字符,但 通配符不能跨段
我要说的是,“您可以使用多个”是文档中的一个输入错误,它们的意思是“您可以使用”。我可以确认
arn:aws:cloudformation::123456789012:stack/Foo/*
形式的IAM策略资源有效。这包含多个通配符,其中一个不在ARN的末尾。有趣的是,文档指定了…通配符不能跨段。
-通用资源:“*”
(据我所知,它是有效的)与此语句不一致吗?@WXMan您提出了一个好的观点。就我个人而言,我将资源:“*”
解释为指定ARN的替代方案,因此ARN通配符文档不适用。奇怪的是,策略模拟器似乎不同意该文档。通配符是跨段的(它们实际上就像*
regex)。如果忽略了这一点,可能会导致严重的安全问题。我认为我们都误读了文档,因为它指出ARN段是“由冒号分隔的部分”(如:通配符不跨越列表中的多个ARN定义),而不是斜杠。所以没有理由*
不匹配任何资源。