【问题标题】:How to bulk create and update Azure Key Vault secrets using scripts?如何使用脚本批量创建和更新 Azure Key Vault 机密?
【发布时间】:2021-04-08 18:25:00
【问题描述】:

我有一个场景,我需要从“A”天蓝色密钥库中获取秘密列表,然后在“B”天蓝色密钥库中创建它们。但是在'B' azure keyvault 中创建机密时,这些值必须更改/更新。由于我有很多秘密,所以我试图通过脚本来执行它。

我已尝试使用以下 AZ CLI 命令仅从“A”天蓝色密钥库中提取机密名称并存储到 CSV 文件中:

az keyvault secret list --vault-name <<vault-name>> -o table > src.csv

现在我想使用同一个 CSV 文件,我可以在其中更新获取的秘密的新值,并使用它来创建/更新“B”天蓝色密钥库中的秘密,使用任何 Powershell/AZ CLI/Bash 脚本.

有没有人遇到过这种类似的情况?能做到吗?如果是,请指导我。

【问题讨论】:

  • 关于这个问题的任何更新?它解决了你的问题吗?如果它适合你,请接受它。
  • 是的,这解决了问题。谢谢@CharlesXu
  • 很高兴听到这个。如果您不介意,请接受它作为答案。

标签: azure powershell azure-powershell azure-keyvault azure-cli


【解决方案1】:

当然,你可以做到。我假设你会使用 bash 脚本来实现它,那么这里是示例脚本:

az keyvault secret list --vault-name keyvault_A --query [].name -o tsv > /mnt/d/ubuntu/temp.csv
input="/mnt/d/ubuntu/temp.csv"
while IFS= read -r secret
do
    # echo $secret
    echo "Create secret name : $secret"
    az keyvault secret set --vault-name keyvault_B --name $secret --value $secret
done < $input
az keyvault secret list --vault-name keyvault_B -o table

正如我所见,您会更新/更改机密的值,因此我只能获取机密的名称,而列表也无法为您获取值。如果需要根据现有值更新/更改secrets的值,可以通过命令az keyvault secret show获取while循环中的值。

【讨论】:

    【解决方案2】:

    在这里,您有两个步骤可以从一个 Key Vault 读取机密名称并写入另一个 Key Vault。您只需要添加逻辑即可通过文件更新新值。

    读取秘密名称:

    $secrets = az keyvault secret list --vault-name kv-stack | ConvertFrom-Json | Select-Object @{Label='Name'; Expression={$_.Id.split("/")[-1]}}
    

    写入另一个密钥保管库:

     $secrets | ForEach-Object {az keyvault secret set --vault-name kv-stack-2 --name $_.Name --value something}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-24
      • 1970-01-01
      • 2020-04-26
      • 1970-01-01
      • 2020-12-19
      • 2018-07-13
      • 1970-01-01
      • 2019-05-31
      相关资源
      最近更新 更多