Azure KeyVault secret read / Azure CLI restrictions (Ansible



我们目前在 Azure 密钥保管库中存储大量机密,用于平台部署。我们使用 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. 秘密读取是单个操作,这似乎使它非常慢(我怀疑这更多的是在 azure 端而不是一个 ansible 问题)

有一个预览模块可以帮助解决这个问题 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) }}"

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

最新更新