11

我在模板中使用访问密钥创建了一个用户:

"MyAccessKey" : {
   "Type" : "AWS::IAM::AccessKey",
   "Properties" : {
      "UserName" : { "Ref" : "User12" }
   }
} 

我需要在模板的输出中获取访问密钥 ID 和密钥。怎么做 ?谢谢

4

2 回答 2

13

访问密钥 id 和密钥可用作资源的返回值AWS::IAM::AccessKey

"Outputs" : {
  "MyAccessKeyId": {
    "Ref" : "MyAccessKey"
  },
  "MySecretKey": {
    "Fn::GetAtt": [ "MyAccessKey", "SecretAccessKey" ]
  }
}
于 2016-11-29T13:12:54.230 回答
11

CloudFormation 的输出文档状态...

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}"}'
于 2021-04-23T18:07:15.793 回答