gpt4 book ai didi

amazon-web-services - JSON 策略中的 CloudFormation ImportValue

转载 作者:行者123 更新时间:2023-12-03 07:14:06 28 4
gpt4 key购买 nike

使用 YAML 作为资源定义在 JSON 策略 blob 中导入堆栈导出的正确方法是什么?:

我有以下输出/导出:

Outputs:
oParameterStoreAccessRoleArn:
Description: "ARN of the newly-created role above"
Value: !GetAtt rParameterStoreAccessRole.Arn
Export:
Name: !Sub "${AWS::StackName}-oParameterStoreAccessRoleArn

我正在尝试使用 AWS::SecretsManager::ResourcePolicy 创建 Secrets Manager secret 资源策略:

我想将 IMPORTVALUEHERE(ARN)替换为上面的导出值。

  rSecretPolicyKubernetesVpcId:
Type: AWS::SecretsManager::ResourcePolicy
Properties:
ResourcePolicy:

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {"AWS": "IMPORTVALUEHERE:"}
}
]

}
SecretId: !Ref rSecretKubernetesVpcId


使用 Fn::ImportValue 将导出 ARN 插入 JSON 资源策略 block 的正确方法是什么?

最佳答案

我认为,您可以轻松地将策略编写为 yaml,这将使其更具可读性。

您还可以使用!Sub您可以在其中将值作为第二个参数提供给函数。

文档中的示例:

!Sub
- String
- Var1Name: Var1Value
Var2Name: Var2Value

在你的情况下应该变成:

rSecretPolicyKubernetesVpcId:
Type: AWS::SecretsManager::ResourcePolicy
Properties:
ResourcePolicy: !Sub
- {
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {"AWS": "IMPORTVALUEHERE"}
}
]
}
- IMPORTVALUEHERE: !ImportValue StackName-oParameterStoreAccessRoleArn
SecretId: !Ref rSecretKubernetesVpcId

(编辑)

完全采用 yaml 的策略示例。我添加了一个 ImportValue 语句作为额外内容。

  CodeBuildServiceRole:
Type: AWS::IAM::Role
Properties:
AssumeRolePolicyDocument:
Version: '2012-10-17'
Statement:
- Action:
- sts:AssumeRole
Effect: Allow
Principal:
Service:
- codebuild.amazonaws.com
Path: /
Policies:
- PolicyName: !Sub '${Environment}-pipeline-codebuild'
PolicyDocument:
Version: '2012-10-17'
Statement:
- Action:
- s3:ListBucket
- s3:GetObjectVersion
- s3:GetObject
- s3:PutObject
Effect: Allow
Resource:
- !ImportValue some-value-to-import

关于amazon-web-services - JSON 策略中的 CloudFormation ImportValue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68657598/

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