【问题标题】:how to define one condition that validate at least one key in iam aws policy如何定义一个条件来验证 iam aws 策略中的至少一个键
【发布时间】:2021-07-31 04:30:54
【问题描述】:

我检查了一个解决方案来定义一个策略,该策略只接受两个 IP 地址中的一个作为源 IP“或”一个源 VPC(私有 IP 地址池)-PSB

根据定义,相同条件的键之间有一个“AND” (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_multi-value-conditions.html)

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Deny",
            "Action": "*",
            "Resource": "*",
            "Condition": {
                "NotIpAddress": {
                    "aws:SourceIp": [
                        "11.11.11.11/32",
                        "22.22.22.22/32"
                    ]
                },
                "Bool": {
                    "aws:ViaAWSService": "false"
                },
                "StringNotEquals": {
                    "aws:SourceVpc": [
                        "vpc-00222222222222"
                    ]
                }
            }
        }
    ] 
}

谢谢

【问题讨论】:

    标签: amazon-web-services amazon-iam policy


    【解决方案1】:

    对于 OR,您必须复制您的陈述。我知道这是代码重复,它并不“漂亮”,但这就是它的完成方式(我不确定你想用你的 Bool 做什么):

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "VisualEditor0",
                "Effect": "Deny",
                "Action": "*",
                "Resource": "*",
                "Condition": {
                    "NotIpAddress": {
                        "aws:SourceIp": [
                            "11.11.11.11/32",
                            "22.22.22.22/32"
                        ]
                    },
                    "Bool": {
                        "aws:ViaAWSService": "false"
                    }
                }
            },
            {
                "Sid": "VisualEditor0",
                "Effect": "Deny",
                "Action": "*",
                "Resource": "*",
                "Condition": {
                   "Bool": {
                        "aws:ViaAWSService": "false"
                    },
                    "StringNotEquals": {
                        "aws:SourceVpc": [
                            "vpc-00222222222222"
                        ]
                    }
                }
            },
    
        ] 
    }
    

    【讨论】:

    • 我认为上面链接中提到的两个条件之间存在“AND”?
    • @MauriceAmar 是的,所以要得到 OR,你必须做两个陈述。
    • @MauriceAmar 进展如何。还是不清楚如何获得OR?
    猜你喜欢
    • 1970-01-01
    • 2021-01-31
    • 1970-01-01
    • 1970-01-01
    • 2020-01-23
    • 2021-06-16
    • 2012-04-14
    • 2018-07-15
    • 1970-01-01
    相关资源
    最近更新 更多