gpt4 book ai didi

amazon-web-services - 如何在 CloudFormation 容器定义中从 SecretManager 指定 secret

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

大家好,我有以下 CF 配置,并且想要从 SecretManager 解析 secret 。

  DefinitionBackend:
Type: AWS::ECS::TaskDefinition
DependsOn: TaskPolicy
Properties:
ExecutionRoleArn: !GetAtt TaskRole.Arn
NetworkMode: awsvpc
RequiresCompatibilities:
- FARGATE
Cpu: 1024
Memory: 5120
ContainerDefinitions:
- Name: admin
Essential: true
Image: !Sub XXXXXXXXXX.dkr.ecr.${AWS::REGION}.amazonaws.com/some-image:${AWS::StackName}-${ImageTag}
PortMappings:
- ContainerPort: 8003
Command:
- ....
Secrets:
- Name: DATABASE_URL
ValueFrom: '{{resolve:secretsmanager:Dev:SecretString:DATABASE_URL}}'

这个 secret 叫做Dev还有一些KEY:VALUE其中对,例如 DATABASE_URL这是一个数据库连接字符串。我想使用上述配置来解析 SecretManager 中的 secret ,但出现错误:

Resource handler returned message: "Invalid request provided: Create TaskDefinition: The Systems Manager parameter name specified for secret DATABASE_URL is invalid. The parameter name can be up to 2048 characters and include the following letters and symbols: a-zA-Z0-9_.-,

数据库字符串采用以下格式,并且之前在环境变量中运行良好:

"DATABASE_URL":"postgresql://web:<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="e6b6a7b5b5b1a9b4a2a6828390c8d4d5d2d6dfded4d5d29393898fc88393cb8583889294878acbd7c8948295c8878b879c8988879195c885898b" rel="noreferrer noopener nofollow">[email protected]</a>:5432/database"

你有什么想法吗 - 我检索它是错误的还是我只需要将其转换为不同的格式(例如 Base64)就可以将其与 secret 一起使用?

最佳答案

您正在尝试解析 key 的值,并将该值直接传递到任务定义中。这不是 ECS 容器 secret 的工作原理。它询问您从哪里获取值,而不是实际值。您需要传递 key 的 ARN,而不是 key 的值。

我相信您需要将模板更改为:

ValueFrom: !GetAtt Dev.Arn 

当容器启动时,ECS 服务会在 Secrets Manager 中查找 Secret 的值,并将其添加为环境变量。

关于amazon-web-services - 如何在 CloudFormation 容器定义中从 SecretManager 指定 secret ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73224083/

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