Hashicorp Vault AppRole:role-id和secret-id

时间:2017-12-31 15:59:19

标签: python hashicorp-vault

我有一个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
  3. UPD:

    实际上secret-id拥有自己的TTL。所以当我重启我的应用程序时如何获得一个新的秘密ID?

2 个答案:

答案 0 :(得分:1)

您可以生成具有无限有效性的secret-id。但这样做会像保存配置文件中的秘密一样好。

如果您使用的是AWS ec2实例,则可以考虑使用AWS批准。

看看这个enter image description here

答案 1 :(得分:0)

就我而言,由于我将这些应用程序部署在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分钟以下(如果您的应用程序是有状态的,则最长为30分钟),或者如果该应用程序是无状态的,则应更短应用。保管箱方法的密钥也应每90天轮换一次。请注意,默认情况下,Vault Approle后端具有31天的TTL,因此,如果要将其设置为90天,则还需要增加Approle后端的TTL。