【问题标题】:Is there a way to use AWS KMS for key management with SSH in Jenkins on Windows?有没有办法在 Windows 上的 Jenkins 中通过 SSH 使用 AWS KMS 进行密钥管理?
【发布时间】:2017-06-18 07:52:43
【问题描述】:

我们在 Windows 下有一个 Jenkins 设置,它有一个主实例和一个工作实例,每个实例都在 AWS 的 EC2 上运行。我们在每个实例中设置了一个单独的帐户,该帐户用于在每个实例上运行 Jenkins 服务。我们使用 Git bash 通过 SSH 生成密钥并将公钥复制到 Bitbucket,从而允许主实例从存储库中获取 Jenkinsfile,并允许工作实例获取整个存储库以进行构建。目前,我们手动生成密钥,它们位于服务器上(位于我们的防火墙后面),但为了使脚本简单,密钥缺少密码。我们对此的舒适度很低,因此我们正在寻找其他选择。我们知道 AWS 有 KMS,它允许我们生成和轮换我们的密钥,但我们不确定如何将 ssh 与 AWS KMS 连接起来。我们将不胜感激任何关于 AWS KMS 和 SSH 的建议或想法,或者是保护密钥安全的更好方法。

【问题讨论】:

    标签: git amazon-web-services jenkins ssh aws-kms


    【解决方案1】:

    是的!可以使用 KMS 存储您的密钥,但该过程并不像您所描述的那样直截了当。 KMS 确实只生成和管理用于加密或解密内容的密钥,因此您需要开发一个类似于平台的中间件来与 KMS 交互并协调此过程。

    在 Fugue 博客上有一个如何使用 KMS 存储数据库密码的示例: https://blog.fugue.co/2015-04-21-aws-kms-secrets.html

    在示例中,credstash 是协调获取和存储数据库密码的步骤的中间件/平台。您还可以使用 credtstash 安全地存储 ssh 密钥并在 jenkins 服务器上再次检索它。密码的传输将由 credstash 保护。

    步骤:

    1) 生成 ssh 密钥 2)使用 credstash 将 ssh 密钥字符串放入 dynamo(credstash 使用 dynamo DB 存储加密数据) 3)使用 credstash 获取 ssh 密钥并将其写入 jenkins。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-25
      • 2011-04-22
      • 2018-10-13
      • 1970-01-01
      • 2015-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多