45

Here is a documentation:

Sid – (Optional) The Sid is a statement identifier, an arbitrary string you can use to identify the statement.

Does it means that Sid parameter is just description?

4

3 回答 3

45

文档的另一部分, AWS 提供了有关 Sid 用途的一些附加信息:

Sid语句 ID)是您为策略语句提供的可选标识符。Sid您可以为语句数组中的每个语句分配一个值。在允许您指定ID元素的服务中,例如 SQS 和 SNS,该Sid值只是策略文档 ID 的子 ID。在 IAM 中,该Sid值在 JSON 策略中必须是唯一的。

所以是的,这只是一个描述。

于 2017-11-27T20:17:44.573 回答
8

您可以使用 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拒绝所有列表操作。想象一下,如果那些 Sid 不在那里,你会如何称呼他们中的任何一个?

这可能是语义上的吹毛求疵,但我不同意它“只是一个描述”,因为描述不必是唯一的。Sid 也不支持空格,所以它实际上只是一个 ID。

更新:引用AWS 文档

某些 AWS 服务(例如,Amazon SQS 或 Amazon SNS)可能需要此元素并对其具有唯一性要求。

于 2021-06-01T09:07:29.973 回答
5

我认为“只是一个描述”不足以描述 Sid 的含义。

我认为一个更好的问题是:“我怎样才能利用 Sid 来发挥我的优势?”

这是一个例子:

  • 您可以使用 Sid 来处理您的政策,以防万一您需要在干草堆中找针。

示例:您有 1k 个策略,并且希望找到执行“S3DenyPublicReadACL”的策略。也许您将该策略存储在 s3 存储桶中,以便您可以重复使用它。

解决方案:编写一个脚本/lambda,找到它并以自动方式重用它。

于 2021-04-09T01:27:53.460 回答