首页 > 解决方案 > Azure KeyVault 机密读取/Azure CLI 限制 (Ansible)

问题描述

我们目前在我们的 azure keyvault 中存储了大量机密以进行平台部署。我们使用 Ansible 进行部署,但它似乎没有 keyvault 的读取能力(您可以创建,但不能读取!?)。我们的架构师/产品负责人强迫我们将其用于存储,而不是本地保管库。

我们当前的解决方案是使用 azure CLI 登录,然后逐个遍历我们想要的机密列表,并映射到事实,然后从 CLI 注销。问题在于它的单一动作,而且似乎相当慢。

name: Capture KeyVault secret and register variable
local_action: "command az keyvault secret show --name {{ playsecret }} --vault-name {{ az_keyvault_name }}"
register: secretValue

所以这有两个问题,一个否定两者的解决方案将是理想的,但任何一个的解决方案都会很棒。

问题

  1. Azure cli 登录意味着我们不能异步运行。如果两者都在读取机密,则第一个注销的将另一个注销。(当我们从编排服务器运行它时。可以用更多的 orch 盒子来否定它,但成本等)
  2. 秘密阅读是单一动作,这似乎使它很慢(我怀疑这更多的是天蓝色而不是一个可靠的问题)

标签: azureansibleazure-keyvaultazure-cli

解决方案


有一个预览模块有助于此 https://github.com/Azure/azure_preview_modules。它让你做

some_secret_var: "{{ lookup('azure_keyvault_secret', 'some-secret-name', vault_url=vault_url, client_id=azure_credentials_client_id, secret=azure_credentials_secret, tenant_id=azure_credentials_tenant) }}"

在你的 vars 文件中。不幸的是,这并不能解决缓慢的问题。


推荐阅读