【问题标题】:How to get more than the first 25 secrets from an Azure key vault via command line?如何通过命令行从 Azure 密钥保管库获取前 25 个以上的机密?
【发布时间】:2022-08-11 21:38:51
【问题描述】:
我正在使用 az keyvault secret list 从我的 Azure 密钥保管库中获取机密。它的帮助说:
Arguments
--maxresults : Maximum number of results to return in a page. If not
specified, the service will return up to 25 results.
不能将--maxresults 设置为高于 25。帮助说\"在一个页面中\",但我找不到如何获得的解释下一页.
是否可以使用此工具列出超过前 25 个秘密?
标签:
azure-keyvault
azure-cli
【解决方案1】:
要在 Mac 中通过 azure cli 获取具有名称和值的所有秘密,您可以使用以下脚本:
sh keyvault-list.sh keyvaultname
#!/usr/bin/env bash
keyvaultEntries=($(az keyvault secret list --vault-name $1 --query "[*].{name:name}" -o tsv))
for i in "${keyvaultEntries[@]}"
do
# do whatever on "$i" here
echo "$i"::"$(az keyvault secret show --name $i --vault-name $1 -o tsv --query value)"
done
【解决方案2】:
通过在 CLI 命令中使用 --maxresults,我们无法获得超过 25 个秘密列表。
请找到以下解决方法:
如果我们指定--maxresults 多于25cli 返回以下结果。
Az keyvault secret list --vault-name <your keyvault name> --maxresults 30
如果你想得到所有的秘密在特定的密钥库您必须使用以下命令而不使用--maxresults。
Az keyvault secret list --vault-name <your keyvault name>
或者
如果你想让它以编程方式实现需要写一个脚本REST API或直接使用某些语言库。参考here