hsk*_*hsk 3 amazon-ec2 amazon-web-services aws-secrets-manager
启动 EC2 实例时,我有 bash 脚本作为用户数据脚本运行。为此,我需要传递外部 API 访问密钥 ID 和密钥。我不想将这些密钥存储在我的用户数据脚本中,因为它以明文形式可见。有什么方法可以将此密钥存储在AWS Secret Manager等位置并在用户数据脚本中使用它?
我建议将其存储在Secrets Manager或SSM Parameter Store中。
您需要在用户数据脚本中使用 CLI 来检索该值。
对于SSM,您可以使用get-parameter函数检索秘密。
secret=$(aws ssm get-parameter --name "MyStringParameter")
Run Code Online (Sandbox Code Playgroud)
对于Secrets Manager,您将使用get-secret-value函数检索密钥。
secret=$(aws secretsmanager get-secret-value --secret-id MyTestDatabaseSecret)
Run Code Online (Sandbox Code Playgroud)
然后在 bash 脚本中,当您想要引用它时,您只需要使用该变量$secret来实际替换为您的秘密。
如果您决定使用其中任何一个,则需要确保 EC2 实例具有附加到该实例的IAM 角色,并具有正确的策略来应用您所需的权限。
或者,如果这是一个经常发生的过程(例如自动缩放实例),那么您应该考虑提前配置基本服务器映像 (AMI),然后将其引用为源 AMI。
借助 Ansible、Chef 和 Puppet 等工具,您可以使用您的秘密来配置基本映像,这将取代在 中执行任何操作的任何需要,因为UserData它会提前提供。
| 归档时间: |
|
| 查看次数: |
2939 次 |
| 最近记录: |