【问题标题】:How to have multiple conditions with OR in CloudFormation?如何在 CloudFormation 中使用 OR 来设置多个条件?
【发布时间】:2020-11-05 18:25:21
【问题描述】:

我正在编写 cloudFormation,如果角色至少适用于以下两个条件之一,我希望允许我的 lambda 担任角色:

  1. 它有一个特定的标签。
  2. 它来自特定帐户。

为了做到这一点,我用第一个条件为 lambda 编写了执行角色(这似乎运行正常):

"Condition": {
       "ForAllValues:StringEquals": {
             "aws:TagKeys": "MonteCarloData"
       }
},

但是,根据此文档-https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_multi-value-conditions.html

似乎条件之间总是有 AND。 所以不确定我怎样才能和第二个条件完成 OR 运算符。

有什么想法吗?

谢谢, 尼尔。

【问题讨论】:

  • Lambda 不支持基于标签的条件。你能澄清一下你想要达到的目标吗?
  • 这是 lambda 执行角色的条件。我想让我的 lambda 扮演一个角色。
  • 只需制作两个单独的 IAM 政策声明。一个带有第一个条件,第二个带有第二个条件。
  • 我想这会奏效。想也许还有更优雅的东西。谢谢!
  • 是的,看起来是这样。无论如何,对于第二个条件,我认为我需要对资源进行一些限制,以确保它来自另一个帐户。

标签: amazon-web-services aws-lambda amazon-cloudformation


【解决方案1】:

基于 cmets。

单个 IAM 策略语句中的两个条件是 evaluated using AND

如果您的策略有多个条件运算符或多个键附加到单个条件运算符,则使用逻辑 AND 评估条件

因此,您可以创建 两个 单独的 IAM statements。一个用于第一个条件,第二个用于第二个条件。

【讨论】:

    猜你喜欢
    • 2021-01-17
    • 2021-05-19
    • 1970-01-01
    • 2017-06-07
    • 1970-01-01
    • 1970-01-01
    • 2017-09-09
    • 1970-01-01
    相关资源
    最近更新 更多