如何将除 IAM 角色之外的所有人限制上传到 S3 存储桶



我不知道如何限制 s3 上传功能 - 特别是:s3Client.putObject(request);(使用 Java SDK v1.11.298(

我的设置与如何限制 Amazon S3 存储桶对特定 IAM 角色的访问博客文章

存储桶策略

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Deny",
      "Principal": "*",
      "Action": "s3:*",
      "Resource": "arn:aws:s3:::MyExampleBucket",
      "Condition": {
        "StringNotLike": {
          "aws:userId": [
            "AROAEXAMPLEID:*",
            "111111111111"
          ]
        }
      }
    }
  ]
}

我的用户所在的组具有可传递地授予他s3:*权限的AdministratorAccess

据我了解,这应该被存储桶的政体覆盖,该政体明确只允许承担该角色的用户对存储桶执行任何操作。

有趣的是,读取权限按预期运行。如果用户未代入与AROAEXAMPLEID关联的角色,则他们无法读取存储桶中的文件,但仍允许他们上传。

我需要将上传和读取限制为仅可以担任该角色的用户。

S3 策略(存储桶或 IAM(可能很困难,因为并不总是清楚操作是希望作为"Resource": "arn:aws:s3:::MyExampleBucket"应用于存储桶本身还是作为"Resource": "arn:aws:s3:::MyExampleBucket/*"应用于对象。

对于s3:PutObject操作,它是路径,而显示的策略仅影响存储桶。 对于s3:*操作,您需要两者兼而有之。

"Resource": [ 
    "arn:aws:s3:::MyExampleBucket",
    "arn:aws:s3:::MyExampleBucket/*"
], ...

策略中的Resource键接受字符串或字符串数组。

相关内容

  • 没有找到相关文章

最新更新