两个 IAM 语句如何具有相同的 Sid?

问题描述 投票:0回答:1

我刚刚在我的组织内偶然发现了一个 s3 存储桶策略,其中包含多个语句,其中两个是:

        {
            "Sid": "ReadFromEKS",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::123456789012:role/redacted"
            },
            "Action": [
                "s3:ListBucket",
                "s3:GetObject",
                "s3:PutObject",
                "s3:PutObjectAcl",
                "s3:DeleteObject",
                "s3:GetObjectAcl"
            ],
            "Resource": [
                "arn:aws:s3:::bucket-name",
                "arn:aws:s3:::bucket-name/*"
            ]
        }
        {
            "Sid": "ReadFromEKS",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::210987654321:role/redacted"
            },
            "Action": [
                "s3:ListBucket",
                "s3:GetObject",
                "s3:PutObject",
                "s3:PutObjectAcl",
                "s3:DeleteObject",
                "s3:GetObjectAcl"
            ],
            "Resource": [
                "arn:aws:s3:::bucket-name",
                "arn:aws:s3:::bucket-name/*"
            ]
        }

(这些是从 AWS 控制台复制/粘贴的,然后我更改了存储桶和角色 ARN)

我很困惑,因为我的理解是声明 ID (Sids) 在策略中必须是唯一的。显然他们不在这里。

我认为 Sids 在保单中是独一无二的,这是否错误? 如果这种信念没有错,那么这项政策怎么可能存在?

amazon-s3
1个回答
0
投票

Sid
不需要在所有地方都是唯一的,请参阅文档

在 IAM 中,Sid 值在 JSON 策略中必须是唯一的。

某些 AWS 服务(例如 Amazon SQS 或 Amazon SNS)可能需要此元素并对其有唯一性要求。有关编写策略的特定于服务的信息,请参阅您使用的服务的文档。

仅 S3 建议唯一性,而 IAM 需要唯一性,您可以通过在 AWS 控制台中以 JSON 格式编写策略来验证它,并检查生成的警告/错误。

不幸的是,我无法找到 S3 的文档,仅明确推荐它。

© www.soinside.com 2019 - 2024. All rights reserved.