Amazon web services CloudFormation YAML-具有条件语句的IAM策略
我有一个IAM策略,它是在AWS控制台中创建另一个资源时自动创建的。我正试图将其添加到现有的CloudFormation堆栈中 策略具有以下语句,其中包含“条件”属性:Amazon web services CloudFormation YAML-具有条件语句的IAM策略,amazon-web-services,yaml,amazon-cloudformation,amazon-iam,Amazon Web Services,Yaml,Amazon Cloudformation,Amazon Iam,我有一个IAM策略,它是在AWS控制台中创建另一个资源时自动创建的。我正试图将其添加到现有的CloudFormation堆栈中 策略具有以下语句,其中包含“条件”属性: { "Sid": "DecryptSecretValue", "Action": [ "kms:Decrypt" ], "Effect": "Allow",
{
"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上添加一个缩进。
因此,
条件
与效果
、资源
和行动
处于同一水平StringEquals
从条件缩进
kms:ViaService
从StringEquals
缩进
由于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"
答案很好。但请提供一个解释。你只发布代码,让OP和未来的商业广告复制并粘贴你的答案,而不理解答案背后的逻辑。请提供一个带有解释的答案。非常感谢。太好了,谢谢。我在错误的方向上乱搞!等于
函数