AWS CLI Secrets Manager创建密钥

时间:2019-05-01 01:52:18

标签: aws-secrets-manager

我想在Secrets Manager中创建一个新机密。机密必须是键/值对。当我使用CLI创建秘密时,它以纯文本而不是键/值对的形式存储:

aws secretsmanager create-secret --name github/oauthtoken \
    --description "GitHub OAuth Token" \
    --secret-string file:///tmp/github_oauth.json

github_oauth.json

[
  {
    "Key": "oauth_token",
    "Value": "MYOAUTHTOKEN"
  }
]

当我尝试解决CloudFormation中的秘密时,出现错误:

Secrets Manager can?t find the specified secret. 

当我在Secrets Manager用户界面中访问该机密时,该机密是纯文本格式,并在“密钥” /值下显示错误:

The secret value can't be converted to key name and value pairs

如何在Secrets Manager中创建存储为键/值对的机密?

2 个答案:

答案 0 :(得分:1)

如您正确发现的那样,SecretsManager控制台和SecretsManager-CloudFormation集成默认将SecretString视为JSON对象。

控制台将解析此JSON并显示键/值对。在CloudFormation中,当SecretString是JSON对象时,您可以使用动态引用来获取单个JSON值。

这当然不会强迫您在SecretString中使用键/值对。您可以在其中包含任何自由文本,然后在控制台的“纯文本”选项卡下对其进行查看。在CloudFormation中,您可以使用动态引用来引用整个SecretString,并避免将其解析为JSON。

您还可以通过CloudFormation创建密钥/值对或自由文本的机密,以及设置资源策略,轮换等。

参考-

https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html#dynamic-references-secretsmanager

https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-secretsmanager-secret.html

答案 1 :(得分:0)

我已经尝试过这种方式:

aws secretsmanager create-secret --name github / oauthtoken
--description“ GitHub OAuth令牌”
--secret-string'{“ oauth_token”:“ MYOAUTHTOKEN”}'--region us-east-1