【问题标题】:AWS IAM custom policy for compound values in a key not working键中复合值的 AWS IAM 自定义策略不起作用
【发布时间】:2019-08-05 07:29:57
【问题描述】:

尝试为以下场景实施基于 AWS IAM 标签的自定义策略,但它不适合我。

  1. 假设用户有一个标签,其中键是具有多个值的环境(- 是组合环境标签值的分隔符)。喜欢:

  2. 有两个 EC2 实例的环境标签键具有以下值:

   Instance Name       Key            Value

a) EC2 instance - 1    Environment    Dev

b) EC2 instance - 2    Environment    Prod

  1. 以下是无效的策略 JSON 条件。政策名称:A
{
    "Version": "2012-10-17", 

    "Statement": [

        {
            "Sid": "AllowStopStartEC2ForAll",

            "Effect": "Allow",
            "Action": [
                "ec2:StartInstances",
                "ec2:StopInstances"
            ],
            "Resource": "*",
            "Condition": {
                "StringLike": {
                    "ec2:ResourceTag/Environment": "${aws:PrincipalTag/Environment}"
                }
            }
        }
    ]
}

根据我的要求。拥有策略 A 的用户应该能够启动/停止 EC2 实例。

【问题讨论】:

    标签: amazon-web-services amazon-iam


    【解决方案1】:

    您的政策似乎基于Simplify granting access to your AWS resources by using tags on AWS IAM users and roles | AWS Security Blog

    但是,该示例是检查字符串是否等于

                "Condition": {
                    "StringEquals": {
                        "ec2:ResourceTag/CostCenter": "${aws:PrincipalTag/CostCenter}"
                    }
                }
    

    在您的情况下,您希望使用StringLike。这样做时,它会检查右侧表达式是否在左侧表达式中找到

    在你的情况下,你有:

    • 用户标签:Dev-Prod
    • 实例标签:Dev

    因此,表达式的左侧和右侧需要交换,并且添加了通配符以与StringLike一起使用:

                "Condition": {
                    "StringLike": {
                        "aws:PrincipalTag/Environment": "*${ec2:ResourceTag/Environment}*"
                    }
                }
    

    要使用的完整策略是:

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "AllowStopStartEC2ForAll",
                "Effect": "Allow",
                "Action": [
                    "ec2:StartInstances",
                    "ec2:StopInstances"
                ],
                "Resource": "*",
                "Condition": {
                    "StringLike": {
                        "aws:PrincipalTag/Environment": "*${ec2:ResourceTag/Environment}*"
                    }
                }
            }
        ]
    }
    

    【讨论】:

      猜你喜欢
      • 2017-06-02
      • 1970-01-01
      • 1970-01-01
      • 2021-09-03
      • 2020-12-16
      • 1970-01-01
      • 1970-01-01
      • 2014-07-05
      • 2016-06-05
      相关资源
      最近更新 更多