如何使用curl设置Azure KeyVault机密的值

如何使用curl设置Azure KeyVault机密的值,azure,azure-keyvault,Azure,Azure Keyvault,我以前使用curl从我的Azure KeyVault中检索秘密 首先,我检索我的令牌并获取我的keyvault的url: token=$(curl -s 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https%3A%2F%2Fvault.azure.net' -H Metadata:true | awk -F"[{,\":}]" '{print $6}')

我以前使用curl从我的Azure KeyVault中检索秘密

首先,我检索我的令牌并获取我的keyvault的url:

token=$(curl -s 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https%3A%2F%2Fvault.azure.net' -H Metadata:true | awk -F"[{,\":}]" '{print $6}')

keyvaulturl="https://myTestKeyVault-keyvault.vault.azure.net/secrets"
然后我可以访问我的钥匙库

curl -s ${keyvaulturl}/xxx?api-version=2016-10-01 -H "Authorization: Bearer ${token}"
然而,这只是为了获取秘密。有没有办法通过curl来更新它们?还是使用azure cli更好?在这种情况下,最佳的自动身份验证形式是什么?

是的,是的

#添加秘密
$curl-X PUT\
-s“https://alice.vault.azure.net/secrets/SecretFromCurl?api-版本=2016-10-01“\
-H“授权:承载${token}”\
--数据ascii“{”值“:“sup3rs3cr37v4lu3”}”\
-H“内容类型:应用程序/json”
{“value”:“sup3rs3cr37v4lu3”,“id”:。。。
#重读秘密
$curl-s“https://alice.vault.azure.net/secrets/SecretFromCurl?api-版本=2016-10-01“\
-H“授权:承载${token}”
{“value”:“sup3rs3cr37v4lu3”,“id”:。。。
用于解析JSON,
awk
做JSON就像我做瑜伽一样(具有次优优雅)-

$curl-s”https://alice.vault.azure.net/secrets/SecretFromCurl?api-版本=2016-10-01“\
-H“Authorization:Bearer${token}”|jq-r.value”
sup3rs3cr37v4lu3
但是,它有点麻烦,使用
az keyvault secret…
更干净,可读性更强,更不用说
az
有自己的内置JMESPath
--query
过滤器。例如:

#使用托管服务标识登录
$az登录--标识
#获取秘密值
$az keyvault机密显示--vault名称alice-n SecretFromCurl--查询“值”--输出tsv
sup3rs3cr37v4lu3
万一你在生活中需要更多的手动JSON探索,你不会失望的-


谢谢你的奇妙答案。喜欢瑜伽笑话!!你提到使用AZ KikVoT更不麻烦——你会推荐这种方法的认证明智吗?只需这样做:<代码> AZ登录-身份< /代码>。它将以托管服务身份登录,就像你的<代码> CURL示例。如果你看不到PAR。只需更新
az
即可。