我在模板中使用访问密钥创建了一个用户:
"MyAccessKey" : {
"Type" : "AWS::IAM::AccessKey",
"Properties" : {
"UserName" : { "Ref" : "User12" }
}
}
我需要在模板的输出中获取访问密钥ID和密钥。怎么做 ? 谢谢
答案 0 :(得分:6)
CloudFormation 的 Outputs documentation 状态...
<块引用>CloudFormation 不会编辑或混淆您在“输出”部分中包含的任何信息。我们强烈建议您不要使用此部分来输出敏感信息,例如密码或机密。
一个更安全的选择是创建一个包含用户访问和秘密密钥的 AWS::SecretsManager::Secret 资源。
以下是利用此方法创建“机器人”用户的模板示例...
---
AWSTemplateFormatVersion: 2010-09-09
Description: example bot user
Resources:
Bot:
Type: AWS::IAM::User
Properties:
Path: /bot/
UserName: !Ref AWS::StackName
BotCredentials:
Type: AWS::IAM::AccessKey
Properties:
Status: Active
UserName: !Ref Bot
BotCredentialsStored:
Type: AWS::SecretsManager::Secret
Properties:
Name: !Sub /bot/credentials/${Bot}
SecretString: !Sub '{"ACCESS_KEY":"${BotCredentials}","SECRET_KEY":"${BotCredentials.SecretAccessKey}"}'
答案 1 :(得分:4)
对于AWS :: IAM :: AccessKey资源,访问密钥ID和密钥可用作return values:
"Outputs" : {
"MyAccessKeyId": {
"Ref" : "MyAccessKey"
},
"MySecretKey": {
"Fn::GetAtt": [ "MyAccessKey", "SecretAccessKey" ]
}
}