【问题标题】:Declaring an IAM Access Key Resource by CloudFormation通过 CloudFormation 声明 IAM 访问密钥资源
【发布时间】:2021-04-24 02:07:15
【问题描述】:

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

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

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

【问题讨论】:

    标签: amazon-cloudformation access-keys


    【解决方案1】:

    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}"}'
    

    【讨论】:

      【解决方案2】:

      return values 资源的访问密钥 ID 和密钥可用作 AWS::IAM::AccessKey

      "Outputs" : {
        "MyAccessKeyId": {
          "Ref" : "MyAccessKey"
        },
        "MySecretKey": {
          "Fn::GetAtt": [ "MyAccessKey", "SecretAccessKey" ]
        }
      }
      

      【讨论】:

      • 不幸的是,一旦您获得了密钥,似乎就无法从日志中隐藏它。如果他们有一个输出标志,表明它只是一个临时输出,你想在之后消失,那就太好了
      • 如果您想从日志中隐藏它,您可以创建自定义资源并使用 KMS docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/… 加密密钥
      • 或者,您可以将值放到AWS::SecretsManager::Secret 中,而不是通过Outputs 公开值。
      • @diegosasw 我发布了一个新答案来展示我是如何使用AWS::SecretsManager::Secret 来达到这个目的的。
      • 他们似乎让你使用他们的 Secrets 命名服务真的很烦人。我只需要一次性访问这些信息,将其插入我的 CI/CD 工具的秘密管理器中,就是这样。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-02-15
      • 1970-01-01
      • 2021-10-23
      • 1970-01-01
      • 2020-07-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多