繁体   English   中英

允许访问特定用户并限制所有用户的 S3 存储桶策略

[英]S3 Bucket Policy to Allow access to specific users and restrict all

我搜索了现有的问题,但找不到答案。 因此在这里发帖。

我想限制所有用户访问 S3 存储桶,除了使用 S3 存储桶策略选择少数用户。 我了解 IAM 策略易于管理和管理,我不喜欢为此特定案例创建角色和组,并希望创建 S3 存储桶策略。

这是我到目前为止所尝试的,它没有按预期限制对用户的访问。

{
  "Version": "2012-10-17",
  "Id": "bucketPolicy",
  "Statement": [
    {

      "Effect": "Allow",
      "Principal": {
        "AWS": ["arn:aws:iam::1234567890:user/allowedusername"]
      },
      "Action": "s3:*",
      "Resource": ["arn:aws:s3:::examplebucket",
                   "arn:aws:s3:::examplebucket/*"]
    },
    {

      "Effect": "Deny",
      "Principal": {
        "AWS": ["arn:aws:iam::1234567890:user/denieduser"]
      },
      "Action": "s3:*",
      "Resource": ["arn:aws:s3:::examplebucket",
                   "arn:aws:s3:::examplebucket/*"]
    }

  ]
}

我试图拒绝所有如下内容,但明确拒绝优先于允许,我自己现在无法访问存储桶;-(这是我遇到的另一个问题

{

          "Effect": "Deny",
          "Principal": {
            "AWS": ["*"]
          },
          "Action": "s3:*",
          "Resource": ["arn:aws:s3:::examplebucket",
                       "arn:aws:s3:::examplebucket/*"]
        }

要实现您想要的效果,请使用带有NotPrincipal策略元素的显式拒绝。 下面的策略将确保除了NotPrincipal元素中列出的用户之外,没有其他用户可以访问存储桶:

{
        "Id": "bucketPolicy",
        "Statement": [
                {
                        "Action": "s3:*",
                        "Effect": "Deny",
                        "NotPrincipal": {
                                "AWS": [
                                        "arn:aws:iam::1234567890:user/alloweduser"
                                ]
                        },
                        "Resource": [
                                "arn:aws:s3:::examplebucket",
                                "arn:aws:s3:::examplebucket/*"
                        ]
                }
        ],
        "Version": "2012-10-17"
}

暂无
暂无

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

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