微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

CloudFormation YAML - 带有条件语句的 IAM 策略

如何解决CloudFormation YAML - 带有条件语句的 IAM 策略

我有一个在 AWS 控制台中创建另一个资源时自动创建的 IAM 策略。我正在尝试将其添加到现有的 CloudFormation 堆栈中。

该策略具有以下语句,其中包含“条件”属性

{
    "Sid": "DecryptSecretValue","Action": [
        "kms:Decrypt"
    ],"Effect": "Allow","Resource": [
        "arn:aws:kms:MyRegion:MyAccountId:key/4f402c6e-9624-40a4-8d4d-c0f2efe88602"
    ],"Condition": {
        "StringEquals": {
            "kms:ViaService": "secretsmanager.eu-west-1.amazonaws.com"
        }
    }
}

这应该如何在 CloudFormation YAML 模板中构建?到目前为止,我有

Statement:
  - Effect: Allow
    Action: kms:DecryptSecretValue
    Resource: arn:aws:kms:MyRegion:MyAccountId:key/4f402c6e-9624-40a4-8d4d-c0f2efe88602

但我不知道如何包含“条件”属性。有什么想法吗?

解决方法

对于 json 策略的每个级别,您在 yaml 上添加缩进。
所以 ConditionEffectResourceAction 处于同一级别。
StringEqualsConditions 缩进。
kms:ViaServiceStringEquals 缩进。

由于 kms:ViaService 在名称中有冒号 (:),您需要将其添加在引号之间。

Statement:
  - Effect: Allow
    Action: "kms:DecryptSecretValue"
    Resource: "arn:aws:kms:MyRegion:MyAccountId:key/4f402c6e-9624-40a4-8d4d-c0f2efe88602"
    Condition:
      StringEquals:
        "kms:ViaService": "secretsmanager.eu-west-1.amazonaws.com"

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。