如何使用 curl 设置 Azure KeyVault 机密的值
How to set the value of an Azure KeyVault secret using curl
我以前使用 curl 从我的 Azure 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 }')
keyvaulturl="https://myTestKeyVault-keyvault.vault.azure.net/secrets"
然后我可以访问我的 KeyVault
curl -s ${keyvaulturl}/xxx?api-version=2016-10-01 -H "Authorization: Bearer ${token}"
不过这只是为了获取秘密。有什么办法可以通过 curl 来更新它们吗?还是使用 azure cli 更好?在这种情况下,最好的自动身份验证形式是什么?
是的,是的。
# Add secret
$ curl -X PUT \
-s "https://alice.vault.azure.net/secrets/SecretFromCurl?api-version=2016-10-01" \
-H "Authorization: Bearer ${token}" \
--data-ascii '{"value": "sup3rs3cr37v4lu3"}' \
-H "Content-type: application/json"
{"value":"sup3rs3cr37v4lu3","id": ...
# Read back the secret
$ curl -s "https://alice.vault.azure.net/secrets/SecretFromCurl?api-version=2016-10-01" \
-H "Authorization: Bearer ${token}"
{"value":"sup3rs3cr37v4lu3","id": ...
使用jq
解析JSON,awk
做JSON就像我做瑜伽一样(次优优雅)—
$ curl -s "https://alice.vault.azure.net/secrets/SecretFromCurl?api-version=2016-10-01" \
-H "Authorization: Bearer ${token}" | jq -r ".value"
sup3rs3cr37v4lu3
然而,它有点麻烦,使用 az keyvault secret ...
更干净,更易于阅读,更不用说 az
有自己内置的 JMESPath --query
过滤器。例如:
# Login with Managed Service Identity
$ az login --identity
# Get secret value
$ az keyvault secret show --vault-name alice -n SecretFromCurl --query "value" --output tsv
sup3rs3cr37v4lu3
以防万一您在生活中需要更多手动 JSON 探索,jpterm
不会让您失望 —
我以前使用 curl 从我的 Azure 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 }')
keyvaulturl="https://myTestKeyVault-keyvault.vault.azure.net/secrets"
然后我可以访问我的 KeyVault
curl -s ${keyvaulturl}/xxx?api-version=2016-10-01 -H "Authorization: Bearer ${token}"
不过这只是为了获取秘密。有什么办法可以通过 curl 来更新它们吗?还是使用 azure cli 更好?在这种情况下,最好的自动身份验证形式是什么?
是的,是的。
# Add secret
$ curl -X PUT \
-s "https://alice.vault.azure.net/secrets/SecretFromCurl?api-version=2016-10-01" \
-H "Authorization: Bearer ${token}" \
--data-ascii '{"value": "sup3rs3cr37v4lu3"}' \
-H "Content-type: application/json"
{"value":"sup3rs3cr37v4lu3","id": ...
# Read back the secret
$ curl -s "https://alice.vault.azure.net/secrets/SecretFromCurl?api-version=2016-10-01" \
-H "Authorization: Bearer ${token}"
{"value":"sup3rs3cr37v4lu3","id": ...
使用jq
解析JSON,awk
做JSON就像我做瑜伽一样(次优优雅)—
$ curl -s "https://alice.vault.azure.net/secrets/SecretFromCurl?api-version=2016-10-01" \
-H "Authorization: Bearer ${token}" | jq -r ".value"
sup3rs3cr37v4lu3
然而,它有点麻烦,使用 az keyvault secret ...
更干净,更易于阅读,更不用说 az
有自己内置的 JMESPath --query
过滤器。例如:
# Login with Managed Service Identity
$ az login --identity
# Get secret value
$ az keyvault secret show --vault-name alice -n SecretFromCurl --query "value" --output tsv
sup3rs3cr37v4lu3
以防万一您在生活中需要更多手动 JSON 探索,jpterm
不会让您失望 —