【Azure Key Vault】使用Azure CLI获取Key Vault 机密遇见问题后使用curl命令来获取机密内容
问题描述
在使用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
【Azure Key Vault】使用Azure CLI获取Key Vault 机密遇见问题后使用curl命令来获取机密内容的更多相关文章
- 【Azure Developer】使用 CURL 获取 Key Vault 中 Secrets 中的值
问题描述 在使用CURL通过REST API获取Azure Key Vaualt的Secrets值,提示Missing Token, 问如何来生成正确的Token呢? # curl 命令 curl - ...
- Linux中Curl命令couldn't connect to host解决方案 php操作Curl(http,https)无法获取远程数据解决方案
本人在做百度账户第三方登录接口,获取百度token,利用php操作curl post方式发送请求token,出现couldn't connect to host错误.经过调试测试,最后终于成功.回头写 ...
- 【Azure Developer - 密钥保管库 】使用 Python Azure SDK 实现从 Azure Key Vault Certificate 中下载证书(PEM文件)
问题描述 在Azure Key Vault中,我们可以从Azure门户中下载证书PEM文件到本地. 可以通过OpenSSL把PFX文件转换到PEM文件.然后用TXT方式查看内容,操作步骤如下图: Op ...
- 【Azure Developer】Python代码通过AAD认证访问微软Azure密钥保管库(Azure Key Vault)中机密信息(Secret)
关键字说明 什么是 Azure Active Directory?Azure Active Directory(Azure AD, AAD) 是 Microsoft 的基于云的标识和访问管理服务,可帮 ...
- 【Azure Developer】解决Azure Key Vault管理Storage的示例代码在中国区Azure遇见的各种认证/授权问题 - C# Example Code
问题描述 使用Azure密钥保管库(Key Vault)来托管存储账号(Storage Account)密钥的示例中,从Github中下载的示例代码在中国区Azure运行时候会遇见各种认证和授权问题, ...
- 【Azure Spring Cloud】Azure Spring Cloud服务,如何获取应用程序日志文件呢?
问题描述 在使用Azure Spring Cloud服务时,如果要收集应用程序的日志.有控制台输出(实时流日志),也可以配置Log Analytics服务. 日志流式处理 可以通过以下命令在 Azur ...
- 关于HashMap根据Value获取Key
关于我对java中集合的总结有如下三篇: 关于JDK中的集合总结(一) 关于JDK中的集合总结(二) 关于JDK中的集合总结(三) 关于数组集合之间的转换 Map中是一个key有且只有一个value. ...
- redis 获取key 过期时间
<pre name="code" class="html">127.0.0.1:6379> keys *b4f107c6-e96c-4a1e- ...
- java map遍历、排序,根据value获取key
Map 四种遍历: Map<String,String> map = new HashMap<String, String>(); map.put("one" ...
- php array 根据value获取key,in_array()判断是否在数组内实例
php array 根据value获取key,in_array()判断是否在数组内实例 <?php header("Content-type: text/html; charset=u ...
随机推荐
- s-tui验证机器主频的过程
摘要 小年在家陪孩子. 翻阅<企业存储技术>公众号的文章时 找到了 s-tui 进行监控机器主频的文章 感觉挺有用的 想验证一下 虚拟机有否支持Intel的睿频功能. 所以将之前写的pyt ...
- Nginx编译安装与常用配置模板
Nginx编译安装与常用配置模板 背景 是在受不了每次都是先去百度,找模板了. 这次将几个常用模板整理一下, 以后不管在哪里可以直接使用. 注意: 不能直接用于生产, 可用于测试与POC 第一部分编译 ...
- [专题]测试发现部分NVMe SSD的掉电数据保护功能让人失望
https://www.cnbeta.com/articles/tech/1240441.htm 这个有点过分了. 苹果开发者 Russ Bishop 在一份测试报告中指出:即使掉电保护已经是个绕不开 ...
- flask session 伪造
flask session 伪造 一.session的作用 由于http协议是一个无状态的协议,也就是说同一个用户第一次请求和第二次请求是完全没有关系的,但是现在的网站基本上有登录使用的功能,这就要求 ...
- TortoiseGit 合并分支方法
1.首先当前分支 "提交" 并 "推送" 到服务器上,比如开发分支 dev 合并到 master 上 2.右键 > "切换分支" 到要 ...
- IdentityServer4 系列文章01---密码授权模式
IdentityServer4实现.Net Core API接口权限认证(快速入门) 什么是IdentityServer4 官方解释:IdentityServer4是基于ASP.NET Core实 ...
- 2023中国高校计算机大数据挑战赛:论文学科分类baseline|清华主办
2023中国高校计算机大数据挑战赛:论文学科分类baseline|清华主办 官方地址:https://www.heywhale.com/home/competition 项目码源见文末 1.比赛介绍 ...
- 深度学习实践篇[17]:模型压缩技术、模型蒸馏算法:Patient-KD、DistilBERT、DynaBERT、TinyBERT
深度学习实践篇[17]:模型压缩技术.模型蒸馏算法:Patient-KD.DistilBERT.DynaBERT.TinyBERT 1.模型压缩概述 1.2模型压缩原有 理论上来说,深度神经网络模型越 ...
- 飞桨paddlespeech语音唤醒推理C INT8 定点实现
前面的文章(飞桨paddlespeech语音唤醒推理C定点实现)讲了INT16的定点实现.因为目前商用的语音唤醒方案推理几乎都是INT8的定点实现,于是我又做了INT8的定点实现. 实现前做了一番调研 ...
- 万字手撕AVL树 | 上百行的旋转你真的会了吗?【超用心超详细图文解释 | 一篇学会AVL】
说在前面 今天这篇博客,是博主今年以来最最用心的一篇博客.我们也很久没有更新数据结构系列了,几个月前博主用心深入的学习了这颗二叉平衡搜索树,博主被它的查找效率深深吸引. AVL树出自1962年中的一篇 ...