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

时间:2020-02-17 11:45:20

标签: amazon-s3 terraform amazon-iam

我想创建一个AWS IAM策略,以使附加的角色应有权访问所有具有标签“ Team = devops”的S3存储桶。我尝试了以下JSON文件,但无法正常工作。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "*",
            "Resource": "arn:aws:s3:::*",
            "Condition": {
                "StringEquals": {"s3:ResourceTag/Team": "devops"}
            }
        }
    ]
}

2 个答案:

答案 0 :(得分:2)

根据Available Condition Keys s3:ResourceTag 对S3条件不可用。

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

Object Tagging and Access Control Policies中一样,可以使用 s3:ExistingObjectTag 条件键对每个对象进行访问控制。

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

安全性 公开

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

答案 1 :(得分:1)

这没有用。唯一的区别是在我的情况下该操作是 Deny,我可以确认这不适用!

        "Resource": "arn:aws:s3:::*/*",
        "Effect": "Deny",
        "Sid": "TestPreventS3ObjectDeletion",
        "Condition": {
            "StringEquals": {
                "s3:ResourceTag/Protection": "True"
            }
        }