繁体   English   中英

是否可以使用AWS S3存储桶策略将不同的访问类型限制为不同的用户

[英]Can an AWS S3 bucket policy be used to restrict different access types to different users

我有一个AWS S3存储桶,我们将其称为``mybucket'',一堆AWS IAM用户(例如``alice'')应该能够对``mybucket''执行任何操作,而其他AWS IAM用户应该能够列出内容并在“ mybucket”中获取对象。

我已经设置了以下存储桶策略:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "Allow 'alice' user complete access.",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::XXXXXXXXXXXX:user/alice"
      },
      "Action": [
        "s3:*"
      ],
      "Resource": [
        "arn:aws:s3:::mybucket",
        "arn:aws:s3:::mybucket/*"
      ]
    },
    {
      "Sid": "Allow all other users read access",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::XXXXXXXXXXXX:root"
      },
      "Action": [
        "s3:GetObject"
      ],
      "Resource": [
        "arn:aws:s3:::mybucket",
        "arn:aws:s3:::mybucket/*"
      ]
    }
  ]
}

有了这个政策,我仍然可以写信给“ mybucket”。 我什至删除了第二个语句对象,并获得相同的结果。

这是实现我想要实现的正确方法吗? 如果是这样,我的存储桶策略有什么问题? 如果没有,我应该采取什么方法?

非常感谢!

Amazon S3存储桶策略通常用于向所有人 (例如,公共用户)授予访问权限。

如果您希望向特定的IAM用户授予特定权限,则最好将策略直接添加到IAM用户或组

例如,将此策略添加到alice IAM用户,以允许她在存储桶和存储桶中的对象上运行任何API命令:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Stmt1",
            "Effect": "Allow",
            "Action": [
                "s3:*"
            ],
            "Resource": [
                "arn:aws:s3:::mybucket/*",
                "arn:aws:s3:::mybucket"
            ]
        }
    ]
}

您会注意到没有Principal字段,因为它自动应用于放置了该策略的用户。

当Amazon S3评估权限时,它会同时查看存储桶策略和与用户相关联的任何策略。 任何一个都可以授予访问权限。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM