代码之家  ›  专栏  ›  技术社区  ›  Cherry

Sid属性在密钥策略中用于什么?

  •  48
  • Cherry  · 技术社区  · 8 年前

    Here 是一份文件:

    Sid –Sid(可选)是一个语句标识符,一个可以用来标识语句的任意字符串。

    这是不是意味着 Sid 参数只是描述?

    3 回复  |  直到 8 年前
        1
  •  47
  •   Dunedan    8 年前

    在里面 another part of the documentation AWS提供了一些有关Sid用途的附加信息:

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

    是的,这只是一个描述。

        2
  •  9
  •   Khoa Vo    4 年前

    可以使用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不支持空格,所以它实际上只是一个ID。

    使现代化 :引用 AWS docs

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

        3
  •  5
  •   Scilla    5 年前

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

    我认为一个更好的问题是:“我如何利用Sid?”

    以下是一个示例:

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

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

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