gpt4 book ai didi

aws-cloudformation - 在 Cloudformation 中使用 AWS Secrets Manager 的 Secret

转载 作者:行者123 更新时间:2023-12-04 08:24:54 24 4
gpt4 key购买 nike

我想将 read_only_user 的密码导出到 EC2 实例。如何访问 UserData 中创建的密码?

Resources:
ReadOnlyUserCredentials:
Type: AWS::SecretsManager::Secret
Properties:
Name: !Sub "${AWS::StackName}/readonly-user-credentials"
GenerateSecretString:
SecretStringTemplate: '{"username": "read_only_user"}'
GenerateStringKey: 'password'
PasswordLength: 16
ExcludeCharacters: '"@/\'
WebServer:
Type: AWS::EC2::Instance
Properties:
ImageId: ami-a4c7edb2
InstanceType: t2.micro
UserData:
Fn::Base64: !Sub |
#!/bin/bash
echo "${!Join ['', ['{{resolve:secretsmanager:', !Ref ReadOnlyUserCredentials, ':SecretString:password}}' ]]}" > password

我尝试使用!Join,但当然这是行不通的。我将非常感谢这里的任何帮助。

更新:

      UserData:
Fn::Base64:
Fn::Sub:
- |
echo ${PasswordStr} > password
- PasswordStr: !Join ['', ['{{resolve:secretsmanager:', !Ref ReadOnlyUserCredentials, ':SecretString:password}}' ]]

通过更改如上所示的代码,我确实获得了解析字符串,但它没有给我实际的密码。如何解析 arn 以获取纯密码?

最佳答案

您可能不希望 CFN 在用户数据中扩展您的 secret ,因为密码将嵌入在 EC2 控制台中可见的 Base64 编码的用户数据脚本中。

相反,您应该利用这样一个事实:您有一个在主机上执行的脚本,并在脚本执行时调用 secret 管理器(警告,未测试):

Resources:
ReadOnlyUserCredentials:
Type: AWS::SecretsManager::Secret
Properties:
Name: !Sub "${AWS::StackName}/readonly-user-credentials"
GenerateSecretString:
SecretStringTemplate: '{"username": "read_only_user"}'
GenerateStringKey: 'password'
PasswordLength: 16
ExcludeCharacters: '"@/\'
WebServer:
Type: AWS::EC2::Instance
Properties:
ImageId: ami-a4c7edb2
InstanceType: t2.micro
UserData:
Fn::Base64: !Sub |
#!/bin/bash
yum update -y
yum install -y jq
aws --region ${AWS::Region} secretsmanager get-secret-value --secret-id !Ref ReadOnlyUserCredentials --query SecretString --output text | jq -r .password > password

关于aws-cloudformation - 在 Cloudformation 中使用 AWS Secrets Manager 的 Secret,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54231419/

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