首页 > 其他分享 >【Azure Key Vault】使用Azure CLI获取Key Vault 机密遇见问题后使用curl命令来获取机密内容

【Azure Key Vault】使用Azure CLI获取Key Vault 机密遇见问题后使用curl命令来获取机密内容

时间:2023-11-28 21:25:05浏览次数:40  
标签:Key -- azure https Azure Vault curl cn

问题描述

在使用Azure Key Vault的过程中,遇见无法获取机密信息,在不方便直接写代码的情况下,快速使用Azure CLI指令来验证当前使用的认证是否可以获取到正确的机密值。

使用CLI的指令为:

第一步:设置azure 的云环境参数,指定为中国区云服务

az cloud set --name AzureChinaCloud

第二步:使用az login并且指定 servie principal来完成登录

az login --service-principal  --tenant <Tenant-ID>   --username <Client-ID>   --password <Client-secret>   --output table

第三步:获取azure key vault的机密,但是遇见server principal因为没有权限绑定订阅号而无法完成。

az keyvault secret show --name "ExamplePassword" --vault-name "<your-unique-keyvault-name>" --query "value"

 

结果却无法获取到机密值:

 

问题解答

因为需要快速的办法来使用Service Principal账号是否有权限,是否能成功获取到Key Vault机密信息,在不写代码的情况下,处理CLI指令外,还有REST API可以调用。所以想到了使用curl指令直接调用API。

第一步:安全curl

  • 在Windows系统中,下载到本地后即可使用:https://curl.se/windows/ 
  • 在Linux系统中,使用命令:sudo apt-get install curl 进行安装。

 

第二步:通过Service Principal的账号信息在AAD中获取到Token

curl https://login.partner.microsoftonline.cn/<Tenant-ID>/oauth2/token   --data "grant_type=client_credentials&client_id=<Client-ID>&client_secret=<Client-secret>&resource=https://vault.azure.cn"

  • 替换 <Tenant-ID>,<Client-ID>,<Client-secret>为真实值

 

第三步:调用Key Vault API获取结果

curl https://<your-key-vault-name>.vault.azure.cn/secrets/<your-secret-name>?api-version=7.4 -H "Authorization: Bearer <your-token-in-step-2>"

  • 替换 <your-key-vault-name>,<your-secret-name>,<your-token-in-step-2>为真实值

 

执行结果

 

附录:Azure CLI 和 CURL 合集

# Azure CLI:

az cloud set --name AzureChinaCloud
az login --service-principal  --tenant <Tenant-ID>   --username <Client-ID>   --password <Client-secret>   --output table
az keyvault secret show --name "ExamplePassword" --vault-name "<your-unique-keyvault-name>" --query "value"


# CURL:

curl https://login.partner.microsoftonline.cn/<Tenant-ID>/oauth2/token   --data "grant_type=client_credentials&client_id=<Client-ID>&client_secret=<Client-secret>&resource=https://vault.azure.cn"

curl https://<your-key-vault-name>.vault.azure.cn/secrets/<your-secret-name>?api-version=7.4 -H "Authorization: Bearer <your-token-in-step-2>"

 

 

 

参考资料

1: https://docs.azure.cn/zh-cn/key-vault/secrets/quick-create-cli

2: https://learn.microsoft.com/en-us/azure/databricks/dev-tools/azure-cli-login-service-principal

3: https://jiasli.github.io/azure-notes/aad/Service-Principal-get-token-with-curl.html

4: https://learn.microsoft.com/zh-cn/rest/api/keyvault/secrets/get-secrets/get-secrets?view=rest-keyvault-secrets-7.4&tabs=HTTP

 

标签:Key,--,azure,https,Azure,Vault,curl,cn
From: https://www.cnblogs.com/lulight/p/17863092.html

相关文章

  • Redis中的大key和热key
    大key定义string类型的key值大于10kblist,set,zset,hash的成员个数超过5000list、set、zset、hash的成员数量虽然只有1000个但这些成员的value总大小为100MB(成员体积过大)带来的问题对redis的请求变慢Redis内存不断变大导致OOM,或达到maxmemory值引发写阻塞或重要key被逐出Redis集群中某......
  • MySQL5.6建索引时遇到 Specified key was too long; max key length is 767 bytes错误
    解决方法//查看showvariableslike"innodb_large_prefix";showvariableslike"innodb_file_format"; //修改最大索引长度限制 setglobalinnodb_large_prefix=1;或  setglobalinnodb_large_prefix=on;setglobalinnodb_file_format=BA......
  • 带有 on duplicate key update 的批量插入 mybatisPlus
    1packagecom.autewifi.dataaods.common.data.datascope;23importcom.baomidou.mybatisplus.annotation.IdType;4importcom.baomidou.mybatisplus.core.enums.SqlMethod;5importcom.baomidou.mybatisplus.core.injector.AbstractMethod;6importcom......
  • 面试官:为什么阿里不推荐使用 keySet() 遍历 HashMap?太叼钻了吧。。
    来源:https://juejin.cn/post/7295353579002396726Part1引言HashMap相信所有学Java的都一定不会感到陌生,作为一个非常重用且非常实用的Java提供的容器,它在我们的代码里面随处可见。因此遍历操作也是我们经常会使用到的。HashMap的遍历方式现如今有非常多种:使用迭代器(Iterator)......
  • Vue3中 使用v-for嵌套 获取其他数组中的值作为key值 渲染数据
    <tbody><trv-for="(row,idx)inrows":key="idx"><tdv-for="(item,key)intitle":key="key">{{row[key]}}</td></tr>......
  • keycloak~关于session idle和session max的解释
    keycloak可以帮助我们实现这个功能:用户token每5分钟失效一次,失效后通过refresh_token来换新的token,而refresh_token每30天失效一次,但如果用户3天都没有任何操作(就是没有用refresh_token去换新的token),那么3天后也让refresh_token失效,用户需要从新去登录。先说refresh_token过期时......
  • 快速入门:使用 Azure CLI 部署 Azure Kubernetes 服务 (AKS) 群集
    原文:https://learn.microsoft.com/zh-cn/azure/aks/learn/quick-kubernetes-deploy-cli本文内容开始之前创建资源组创建AKS群集连接到群集显示另外4个AzureKubernetes服务(AKS)是可用于快速部署和管理群集的托管式Kubernetes服务。在本快速入门中,请执行以下操......
  • 如何使用Tampermonkey开发并使用一个浏览器脚本
    准备工作简介Tampermonkey是一款强大的浏览器扩展,它允许您定制网页的行为,改变和优化网页的展示方式或者功能以满足个人需求。通过编写自定义脚本,您可以实现许多有趣的功能,从自动化任务到改进网页界面,一切尽在掌握。脚本一般指用户脚本(UserScript),他是一段Javascript代码,它......
  • Gerrit集成keycloak认证
    Gerrit集成KeyCloak实践背景:   为了更好的维护代码仓库,实现公司内部员工和外部员工账号集中管理,搭建Keycloak身份认证平台集成Gerrit代码仓库。Keycloak是什么?Keycloak是一个开源的、高度可定制的身份认证和授权管理解决方案,它提供了多种认证方法,包括单点登录、OAuth2.0和Op......
  • nginx负载均衡 报错 “验证视图状态 MAC 失败。如果此应用程序由网络场或群集托管,请确
    在网上搜寻了很久看了很多关于验证视图状态MAC失败的解决方法。大部分人都说是在页里或web.config里加EnableEventValidation="false"EnableViewStateMac="false"ViewStateEncryptionMode="Never"这些属性的设置。但是这并不从根本上解决问题,相反这样做了反而更加不安全。我......