我有一个 IAM 策略,该策略是在 AWS 控制台中创建另一个资源时自动创建的。我正在尝试将其添加到现有的 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 上添加缩进。
因此,Condition
与 Effect
、Resource
和 Action
处于同一级别。
StringEquals
是从 Conditions
缩进的。
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"
关于amazon-web-services - CloudFormation YAML - 带有条件语句的 IAM 策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67471033/
相关文章:
c++ - 在 C++ 中定义类枚举值的 std::vector 的缩写语法
python - 如何获取字典中最大值的键,如果有重复,还返回最大数字键
reactjs - 在@auth0 中 Jest 模拟 Auth0Client
visual-studio-code - 删除 VSCode 中的 Sublime 文本主题
django - 从在 WSL 上运行的 django 连接到在 Windows 上运行的 Post
emacs - 如何更改 emacs 中行号模式的背景颜色?
react-native - 部署 key 为空 appcenter 代码推送 cli