如何在IAM策略的条件中使用逻辑 OR

0

【以下的问题经过翻译处理】 我似乎找不到想要的,但我想要做的是在策略中基于标签对操作创建一个条件。

标签aws:RequestTag / owner或标签aws:ResourceTag / owner必须存在并等于${aws:PrincipalTag / owner}

{
    “Sid”:“AllowUnlessOwnedBySomeoneElse”,
    “Effect”:“Allow”,
    “Action”:“*”,
    “Resource”:“*”
    “Condition”:{
        “StringEquals”:{
            'aws:RequestTag / owner':“${aws:PrincipalTag / owner}”,
            'aws:ResourceTag / owner':“${aws:PrincipalTag / owner}”
        }
    }
}

问题是按照上面的编写,这意味着aws:RequestTag / owneraws:ResourceTag / owner标签都存在,这是不可能的。

我需要确保这两个标签中至少一个存在,并且它们等于${aws:PrincipalTag / owner}

我该怎么办?

profile picture
专家
已提问 6 个月前58 查看次数
1 回答
0

【以下的回答经过翻译处理】 解决这个问题的一种方法如下: { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "", "Resource": "", "Condition": { "StringEquals": 'aws:RequestTag/owner': "${aws:PrincipalTag/owner}" } }, { "Effect": "Allow", "Action": "", "Resource": "", "Condition": { "StringEquals": 'aws:ResourceTag/owner': "${aws:PrincipalTag/owner}" } } ] }

您可以在单个IAM语句中有多个“Allow”结构。其中任何一个都可以允许操作。

profile picture
专家
已回答 6 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则