内容简介:在上一篇文章中,我们演示了如何使用Azure 资源托管标识访问KeyVault,但是对于Azure中国区的朋友来说,会空欢喜一场。因为截至本文发稿。Azure资源托管标识功能仍旧未在中国区上线。所以我们只能使用Azure Service Principal来访问KeyVault了,其中会需要用到一个AAD的ApplicationID和 秘钥。这种场景就比较诡异了,我为了不把某个秘钥写在应用程序中,期望它在运行时,动态的去KeyVault中读取。结果我去和KeyVault本身交互时,又多了一个秘钥,个人感觉多
在上一篇文章中,我们演示了如何使用Azure 资源托管标识访问KeyVault,但是对于Azure中国区的朋友来说,会空欢喜一场。因为截至本文发稿。Azure资源托管标识功能仍旧未在中国区上线。
所以我们只能使用Azure Service Principal来访问KeyVault了,其中会需要用到一个AAD的ApplicationID和 秘钥。这种场景就比较诡异了,我为了不把某个秘钥写在应用程序中,期望它在运行时,动态的去KeyVault中读取。结果我去和KeyVault本身交互时,又多了一个秘钥,个人感觉多此一举。
另外这里不得不提一下,KeyVault中存的Key,比如RSA秘钥上传以后,客户端读出来的秘钥只能读到公钥,私钥不可见。可参考文档: https://docs.microsoft.com/zh-cn/azure/key-vault/about-keys-secrets-and-certificates 。因此如果我们想上传一个RSA秘钥对,并且希望从KeyVault中原样读取,可以使用【机密】而不是【秘钥】。
比如先把秘钥文件(.pem)文件转换成base64字符串,然后再上传。
下文就通过一个Linux Shell 脚本 [start-demo.sh]来演示该流程:
- 使用工具openssl生成一个RSA密钥对,文件名为private.pem
- 使用Azure AD Service Principal 登陆Azure CLI
- 上传 private.pem 至Azure KeyVault
- 从Azure KeyVault中下载 private.pem
#!/bin/bash
#
# The parameters of Azure Active Directory application
#
clientId='{ AAD Application Id}'
clientAuth='{ AAD 应用程序 秘钥}'
tenant='cecccic.partner.onmschina.cn'
#
# Genr. RSA key pair
#
echo 'Genr. RSA key pair...'
openssl genrsa -des3 -out private.pem 1024
#
# Login Azure CLI with Azure AD application.
#
echo "login in Azure China started..."
az cloud set -n AzureChinaCloud
az login --service-principal -u $clientId -p $clientAuth --tenant $tenant --allow-no-subscriptions
if [ $? = 0 ]
then
echo "login in Azure China successfully."
fi
#
# Upload private.pem file to Azure KeyVault
#
echo 'Upload private.pem file to Azure KeyVault started...'
inputbase64key=` base64 private.pem -w 0 `
az keyvault secret set --vault-name 'dev' --name 'demo-key' --value $inputbase64key > /dev/null
echo 'Upload private.pem file to Azure KeyVault done.'
#
# Download private.pem file from Azure KeyVault to local
#
echo 'Download private.pem file from Azure KeyVault started...'
az keyvault secret show --vault-name 'dev' --name 'demo-key' |jq -r .value | base64 -d -w 0 > private2.pem
echo 'Download private.pem file done'
× 用微信扫描并分享
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Code Reading
Diomidis Spinellis / Addison-Wesley Professional / 2003-06-06 / USD 64.99
This book is a unique and essential reference that focuses upon the reading and comprehension of existing software code. While code reading is an important task faced by the vast majority of students,......一起来看看 《Code Reading》 这本书的介绍吧!