【问题标题】:How to manage password that is used by AWS Kinesis Firehose to write data to a Redshift cluster如何管理 AWS Kinesis Firehose 用于将数据写入 Redshift 集群的密码
【发布时间】:2018-01-19 15:18:36
【问题描述】:

我正在尝试为将数据写入 Redshift 集群的 Kinesis Firehoses 编写 AWS Cloud Formation 模板。 在RedshiftDestinationConfiguration 中,用户名和密码标记为必填项。

但是,由于我们会将模板签入到 Git,因此我们希望避免将密码写入将提交到 repo 的文件中。 模板中未定义目标 Redshift 集群,因此模板中将包含 JDBC URL、用户名和密码。我相信通过这些信息,任何人都可以看到文件可以连接到集群。

有没有人知道在这种情况下管理密码的更好方法?

【问题讨论】:

    标签: amazon-web-services passwords amazon-redshift amazon-cloudformation amazon-kinesis-firehose


    【解决方案1】:

    您可以使用的一种模式是将密码存储在 CloudFormation 参数文件中,并使用 AWS KMS 加密该文件。您将未加密的文件添加到您的.gitignore,并将加密的二进制文件添加到您的 git 存储库。您还需要向 IAM 添加可用于此目的的加密密钥。

    结果是任何没有 IAM 权限使用该加密密钥的人都无法读取加密文件。

    下面是一个示例,说明如何使用 KMS 通过 AWS CLI 加密和解密文件。

    加密:

    aws kms encrypt \
        --key-id xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
        --plaintext file://params.json \
        --query CiphertextBlob \
        --output text | base64 --decode > params.json.encrypted
    

    解密:

    aws kms decrypt \
        --ciphertext-blob fileb://params.json.encrypted \
        --query Plaintext \
        --output text | base64 --decode > params.json
    

    这附带一个警告,您需要记住加密一个新参数文件并将其提交给 git,因为对未加密文件的编辑不会显示在您的 git diff 中。当您从 git 存储库中提取更改时,您还需要记住解密 - 您可以将其自动化以使其更容易。

    【讨论】:

      猜你喜欢
      • 2016-03-16
      • 2021-05-26
      • 2017-01-31
      • 2021-01-05
      • 2017-07-20
      • 2018-01-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多