使用 AWS IAM 角色和策略授予对具有特定“标签”的 s3 的访问权限

Nik*_*hia 7 amazon-s3 amazon-web-services amazon-iam terraform

我想创建一个 AWS IAM 策略,以便附加角色应该有权访问具有标签“Team = devops”的所有 S3 存储桶。我尝试了以下 JSON 文件,但它不起作用。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "*",
            "Resource": "arn:aws:s3:::*",
            "Condition": {
                "StringEquals": {"s3:ResourceTag/Team": "devops"}
            }
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

mon*_*mon 7

根据可用条件键s3:ResourceTag不适用于 S3 条件。

可用于在 Amazon S3 访问策略中指定条件的预定义键可分类如下:

对象标记和访问控制策略一样,可以使用s3:ExistingObjectTag条件键对每个对象进行访问控制。

以下权限策略授予用户读取对象的权限,但条件将读取权限限制为仅具有以下特定标签键和值的对象。

安全性公共

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect":     "Allow",
      "Action":     "s3:GetObject",
      "Resource":    "arn:aws:s3:::examplebucket/*",
      "Principal":   "*",
      "Condition": {  "StringEquals": {"s3:ExistingObjectTag/security": "public" } }
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)