gpt4 book ai didi

amazon-web-services - 在AWS云形成模板中如何根据环境将策略附加到角色

转载 作者:行者123 更新时间:2023-12-03 07:33:25 24 4
gpt4 key购买 nike

仅当环境是 dev 或 qa 时,我才尝试将策略附加到角色。我尝试了下面的代码,但它给出了模板错误。 “模板错误:每个 Fn::Or 对象都需要一个至少包含 2 个、最多 10 个 bool 参数的列表。”

该角色还包含其他策略,但仅当环境为 dev 或 qa 时,我才想附加策略“arn:aws:iam::111111111111:policy/attach-s3-policy”。

任何帮助将不胜感激。如果以下不是正确的方法,您能否建议一个正确的方法来实现这一目标。

AWSTemplateFormatVersion: '2010-09-09'
Description: AWS CloudFormation template

Parameters:
Environment:
Type: String
Default: dev
AllowedValues:
- dev
- qa
- prod
Description: Enter dev, qa, prod. Default is dev.

Conditions:
dev: !Equals [!Ref Environment, dev]
qa: !Equals [!Ref Environment, qa]
prd: !Equals [!Ref Environment, prod]
devandqa: !Or [!Equals [!Ref Environment, dev], [!Ref Environment, qa]]


Resources:
ManagedInstanceRole:
Type: AWS::IAM::Role
Properties:
AssumeRolePolicyDocument:
Version: '2012-10-17'
Statement:
- Effect: Allow
Principal:
Service:
- ec2.amazonaws.com
Action: sts:AssumeRole
ManagedPolicyArns:
- arn:aws:iam::111111111111:policy/service-role/AWSGlueServiceRole-test-glue-crawler-role
- Fn::If:
- devandqa
- "arn:aws:iam::111111111111:policy/attach-s3-policy"
- "Ref" : "AWS::NoValue"

最佳答案

您的方法是正确的,您可以使用 Fn::If 构造有条件地使用某个属性。

您共享的模板的问题是 devandqa 条件。应该是:

devandqa: !Or [!Equals [!Ref Environment, dev], !Equals [!Ref Environment, qa]]

您缺少第二个 !Equals,因此 !Or 无法解析,因此出现错误。

关于amazon-web-services - 在AWS云形成模板中如何根据环境将策略附加到角色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73557139/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com