我正在遵循指南https://docs.microsoft.com/en-us/cli/azure/create-an-azure-service-principal-azure-cli?toc=%2Fazure%2Fazure-resource-manager%2Ftoc。 json&view=azure-cli-latest 创建能够在 shell 脚本中使用的服务主体。
az ad sp create-for-rbac --name ServicePrincipalName --create-cert --cert CertName --keyvault VaultName
使用上述内容,我将创建的证书存储在密钥库中。
但是我不知道如何使用新的 sp..
我从文档中看到的。是 :-
az login --service-principal --username APP_ID --tenant TENANT_ID --password /path/to/cert
但即使我从密钥库下载了证书和私钥,这也不起作用。
如何告诉登录从 keyvault 获取密钥?
澄清(更新):
如果真的没有办法使用 keyvault 进行服务主体登录,那么我真的很想知道该官方文档中的两条语句的意义何在。建议这样
1)
可以添加 --keyvault 参数以使用 Azure Key Vault 中的证书。在这种情况下,--cert 值是证书的名称。
az ad sp create-for-rbac --name ServicePrincipalName --cert CertName --keyvault VaultName
2)
对于存储在 Key Vault 中的证书,使用 az keyvault secret show 检索证书的私钥。在 Key Vault 中,证书的机密名称与证书名称相同。如果您无法访问证书的私钥,请重置服务主体凭据。