amazon-web-services - 简化多个 AWS S3 策略

标签 amazon-web-services amazon-s3 amazon-iam

有没有办法以某种方式将下面给出的 2 个 AWS IAM 策略语句简化为一个?

我想允许存储桶上的 ListBucket、GetBucketLocation、GetBucketPolicy、GetBucketACL 操作,以及位于存储桶内的主文件夹和子文件夹 1、2、3?

我有两个语句 - 一个允许对存储桶进行操作,另一个允许对主文件夹和子文件夹进行操作。由于两个语句中的 actions、Effect 和 Resource 是相同的,是否可以以某种方式编写单个语句?

谢谢,

约翰

"Statement": [
    {
        "Effect": "Allow",
        "Sid": "AllowAccessToViewBucket",
        "Action": [
            "s3:ListBucket",
            "s3:GetBucketLocation",
            "s3:GetBucketPolicy",
            "s3:GetBucketACL"
        ],
        "Resource": "arn:aws:s3:::bucket"
    },
    {
        "Effect": "Allow",
        "Sid": "AllowAccessToListFilesInAllFolders",
        "Action": [
            "s3:ListBucket",
            "s3:GetBucketLocation",
            "s3:GetBucketPolicy",
            "s3:GetBucketACL"
        ],
        "Resource": "arn:aws:s3:::bucket",
        "Condition": {
            "StringEquals": {
                "s3:prefix": [
                    "mainfolder",
                    "mainfolder/subfolder1",
                    "mainfolder/subfolder2",
                    "mainfolder/subfolder3"
                ],
                "s3:delimiter": "/"
            }
        }
    }
]

最佳答案

You can use a list of resources to combine these in to a single statement, like this

"Statement": [
    {
        "Effect": "Allow",
        "Sid": "AllowAccessToViewBucket",
        "Action": [
            "s3:ListBucket",
            "s3:GetBucketLocation",
            "s3:GetBucketPolicy",
            "s3:GetBucketACL"
        ],
        "Resource": ["arn:aws:s3:::bucket",
                    "arn:aws:s3:::bucket/mainfolder",
                    "arn:aws:s3:::bucket/mainfolder/subfolder1",
                    "arn:aws:s3:::bucket/mainfolder/subfolder2",
                    "arn:aws:s3:::bucket/mainfolder/subfolder3"
        ]
    }
]

关于amazon-web-services - 简化多个 AWS S3 策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25118629/

相关文章:

amazon-web-services - 使用预先签名的 url 将文件上传到 Amazon S3 时出现 CORS 错误

amazon-web-services - 从 STS API 返回的 AWS_SESSION_TOKEN 的功能是什么?

amazon-web-services - AWS SAM - 资源之间的循环依赖错误

amazon-s3 - 使用 AWS IAM 角色和策略访问具有特定 "tag"的 s3

sql-server - AWS 上单个 m1.large 实例的 Sql Server 企业版许可费用是多少?

angularjs - 将 blob 文件上传到 Amazon s3

java - 如何使用 Java SDK 将目录与 AWS S3 同步?

asp.net-mvc - 通过 Post 和 ASP.NET MVC 上传 Amazon S3

amazon-web-services - 为什么 LSI 在最后一条记录上返回 LastEvalutedKey?

amazon-web-services - Fargate 服务的启动类型与容量提供者策略