Azure 自动 KeyVault 访问

Azure 自动 KeyVault 访问

运行 Bash 脚本时,我需要从 Keyvault 中提取证书。

目前,在运行该脚本之前,我经历了一段漫长的旅程 - 在控制台中执行“az login”,然后转到门户上的设备身份验证,输入设备代码,通过提供身份验证应用程序的代码确认它确实是我,之后该脚本就可以正常工作了。但这不是自动方式。

如何才能使其完全自动化,而无需人工记录?事实上,我不需要完全访问权限,只需要对密钥库的只读访问权限,因此,也许某种我可以本地存储的特制令牌可以提供帮助。

因此,我将非常感激任何我需要搜索/阅读/实施以完成工作的关键字和/或文档链接和/或解决方案。

谢谢你!

答案1

您需要创建一个服务主体您可以在脚本中使用身份。创建 SP 后,您可以授予它访问 Key Vault 的权限,然后在脚本中,您可以按照此说明使用 Az Login 命令和服务主体凭据文档。

答案2

参见这个工具: https://github.com/herkit/getazurecert

如何使用:

keyvaultname="my-certificate-keyvault"
serviceprincipalname=sp-$(hostname)
az login # log in with your user
tenantId=$(az account show --query tenantId -o tsv)
app=$(az ad sp create-for-rbac --name $serviceprincipalname --create-cert)
appId=$(echo $app | jq -r .appId)
certFile=$(echo $app | jq -r .fileWithCertAndPrivateKey)
objectId=$(az ad sp show --id $appId --query objectId -o tsv)
az keyvault set-policy --name $keyvaultname --object-id $objectId --secret-permission get --certificate-permission get
az login --service-principal -u http://$serviceprincipalname -p $certFile --tenant $tenantId

相关内容