【问题标题】:Hashicorp Vault AppRole: role-id and secret-idHashicorp Vault AppRole:角色 ID 和秘密 ID
【发布时间】:2017-12-31 15:59:19
【问题描述】:

我有一个 Django 应用程序。我希望它从 Vault 中获取所有需要的秘密。
据我了解,我需要为此使用AppRole

我创建了一个角色。但是我需要使用hvac 进行身份验证:

# App Role
client.auth_approle('MY_ROLE_ID', 'MY_SECRET_ID')

所以我手动获取role-idsecret-id,没关系。问题是我将它们存储在哪里?

  1. 我可以将 role-id 简单地存储在我的 git repo settings.py 文件中吗?
  2. 我应该将secret-id存储在哪里?

UPD:

实际上secret-id 有它自己的TTL。那么当我重新启动我的应用程序时,如何获取新的 secret-id?

【问题讨论】:

    标签: python hashicorp-vault


    【解决方案1】:

    您可以生成无限期的 secret-id。但是这样做与将您的秘密保存在配置文件中一样好。

    如果您使用的是 AWS ec2 实例,那么您可以考虑使用 AWS approles。

    看看这个https://github.com/tmobile/t-vault

    【讨论】:

      【解决方案2】:

      就我而言,由于我将这些应用程序部署在 Kubernetes pod 上,因此我将访问密钥存储为环境变量,并将密钥存储为 Kubernetes 密钥。

      您可以使用相同的约定,否则如果它部署在 VM 上,您可以将这些信息放在 yaml/json 文件中(如果可行,加密)并在启动时或每次 Vault 调用时读取它们。

      service_access_key: MY_COOL_VAULT_APPROLE_ACCESS_KEY
      service_secret_key: MY_SUPER_DUPER_VAULT_APPROLE_SECRET
      

      额外的巧克力蛋糕信息:理想情况下,最好将 TTL 保持在较低水平,最长 30 分钟 - 如果您的应用程序是有状态的,或者如果它是无状态的,则可能更少应用。 Vault approle 的密钥也应该每 90 天轮换一次。请注意,Vault approle 后端默认有 31 天的 TTL,所以如果您想设置为 90 天,您还需要增加 approle 后端的 TTL。

      【讨论】:

        猜你喜欢
        • 2021-06-13
        • 2017-12-18
        • 1970-01-01
        • 2022-08-11
        • 2019-12-26
        • 2017-05-09
        • 2020-07-07
        • 2021-11-06
        • 1970-01-01
        相关资源
        最近更新 更多