跳转到主要内容

Humilis 插件用于部署 Lambda humilis_decrypt

项目描述

PyPI

A humilis 插件层,可以部署一个自定义 Cloudformation (CF) 资源,用于解密嵌入到 CF 模板中的机密信息。

致谢: 所有荣誉归 Casecommons lambda-cfn-kms。这个仓库只是将 lambda-cfn-kms 仓库捆绑为 humilis 插件的结果。

安装

pip install humilis-decrypt

要安装开发版本

pip install git+https://github.com/humilis/humilis-decrypt

开发

假设你已经安装了 virtualenv

make develop

配置 humilis

make configure

它是如何工作的?

首先创建支持自定义资源的 Lambda 函数

make create

部署将生成两个工件

  • 与自定义资源相关联的 KMS 密钥的 ID。

  • 已部署 Lambda 函数的 ARN。

你可以使用 KMS 密钥 ID 在本地加密你的机密信息,例如,假设你想使用密钥 3ea941bf-ee54-4941-8f77-f1dd417667cd 加密虚拟 DB 密码 dummy

aws kms encrypt --key-id 3ea941bf-ee54-4941-8f77-f1dd417667cd --plaintext 'dummy'

输出将类似于以下内容

{
    "CiphertextBlob": "AQICAHi2zdvZYfUQOQV8yX/HLdcIMqHHkubAYAei2Qo498KheQFDELPYHds8169cc9EqggEuAAAAZjBkBgkqhkiG9w0BBwagVzBVAgEAMFAGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQM+gDfP3DDVgbFYNidAgEQgCMrz1beR+s0XqWTVIuCbJ+E/cC7sqUzmPEB0weOhQ3GOE65rg==",
    "KeyId": "arn:aws:kms:eu-west-1:XXXXX:key/a86x4dd8-6b8e-41ce-aa65-4aa370d9ccbf"
}

每次你想在 CF 模板中使用你的机密信息时,你会这样做

---
resources:
  DbPasswordDecrypt:
    Type: "Custom::KMSDecrypt"
    Properties:
      ServiceToken: <lambda_function_arn>
      Ciphertext: "AQICAHi2zdvZYfUQOQV8yX/HLdcIMqHHkubAYAei2Qo498KheQFDELPYHds8169cc9EqggEuAAAAZjBkBgkqhkiG9w0BBwagVzBVAgEAMFAGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQM+gDfP3DDVgbFYNidAgEQgCMrz1beR+s0XqWTVIuCbJ+E/cC7sqUzmPEB0weOhQ3GOE65rg=="
  DbInstance:
    Type: "AWS::RDS::DBInstance"
    Properties:
      AllocatedStorage: "20"
      DBInstanceClass: "db.m1.small"
      Engine: "MySQL"
      EngineVersion: "5.5"
      MasterUsername: "admin"
      MasterUserPassword:
        Fn::Sub: ${DbPasswordDecrypt.Plaintext}

其中你需要将 <lambda_function_arn> 替换为支持自定义 CF 资源并实现解密逻辑的 Lambda 函数的 ARN。

更多信息

humilis 文档。

联系

如果你有任何问题、错误报告、建议等,请在 GitHub 项目页面 上创建一个问题。

许可证

lambda-cfn-kms 仓库中的原始许可证。

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分发

humilis-decrypt-0.0.2.tar.gz (5.4 kB 查看哈希值)

上传时间 源代码

支持者