在文档的另一部分中,AWS提供了关于Sid用途的一些附加信息:
Sid
(语句ID)是您为策略语句提供的可选标识符。您可以为语句数组中的每个语句分配一个Sid
值。对于允许您指定元素的服务(例如SQS和SNS),Sid
值只是策略文档ID的子ID。在IAM中,Sid
值必须在JSON策略中唯一。
所以,是的,它只是一个描述。
[a-z, A-Z, 0-9]
。 - Brad Parks您可以使用 Sid 来引用长策略中的特定语句
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowAll",
"Effect": "Allow",
"Action": "*",
"Resource": "arn:aws:s3:::*"
},
{
"Sid": "DenyList",
"Effect": "Deny",
"Action": "s3:List*",
"Resource": "arn:aws:s3:::*"
}
]
}
AllowAll
语句允许所有S3操作,但DenyList
拒绝所有列出操作。想象一下,如果这些Sids不存在,您将如何引用它们?我认为“仅仅是描述”并不足以描述Sid的意义。
我认为更好的问题是:“如何利用Sid来获得优势?”
以下是一个例子:
例如:您有1000个策略,并且想要找到执行“S3DenyPublicReadACL”任务的策略。也许您将该策略存储在S3桶中以便重复使用。
解决方法:编写脚本/lambda,以自动的方式查找并重复使用它。