【问题标题】:How to set the value of an Azure KeyVault secret using curl如何使用 curl 设置 Azure KeyVault 机密的值
【发布时间】:2018-07-21 04:07:31
【问题描述】:

我以前使用 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"

然后我可以访问我的 KeyVault

curl -s ${keyvaulturl}/xxx?api-version=2016-10-01 -H "Authorization: Bearer ${token}"

不过,这只是为了获取秘密。有什么方法可以通过 curl 更新它们吗?还是使用 azure cli 更好?在这种情况下,最好的自动身份验证形式是什么?

【问题讨论】:

    标签: azure azure-keyvault


    【解决方案1】:

    是的,是的。

    # 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 不会让您失望 —

    【讨论】:

    • 感谢您的精彩回答。喜欢瑜伽笑话!您提到使用 az keyvault 不那么繁琐——您会为这种方法推荐什么身份验证方式?
    • 只要这样做:az login --identity。它将使用托管服务身份登录,就像您的 curl 示例一样。如果您没有看到该参数,您只需更新az
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-29
    • 2022-01-27
    • 1970-01-01
    • 2021-08-09
    • 1970-01-01
    • 2019-07-08
    • 1970-01-01
    相关资源
    最近更新 更多