我有一个Django应用程序。我希望它从Vault获得所有必需的秘密 据我所知,我需要使用AppRole。
我创建了一个角色。但后来我需要使用hvac进行身份验证:
# App Role
client.auth_approle('MY_ROLE_ID', 'MY_SECRET_ID')
所以我手动获取role-id
和secret-id
,这没关系。问题是我在哪里存储它们?
role-id
存储在我的git repo settings.py
文件中吗?secret-id
?UPD:
实际上secret-id
拥有自己的TTL。所以当我重启我的应用程序时如何获得一个新的秘密ID?
答案 0 :(得分:1)
答案 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。