az cli 命令创建服务主体不会在 keyvault 中创建证书

问题描述 投票:0回答:1

我正在运行脚本的以下几行:

Write-Host "Creating KeyVault..."

az keyvault create --name mykeyvault --resource-group myrg --location polandcentral

Write-Host "Creating service principal..."

az ad sp create-for-rbac --name mysp --role contributor --scopes "/subscriptions/subscriptionid/resourceGroups/myrg" --create-cert --cert mycert --keyvault mykeyvault

但效果是创建了一个 Keyvault 以及服务主体。然而

az ad sp create-for-rbac
命令的最后三个选项似乎没有做任何事情,因为:

  1. 当我在门户中浏览我的 Keyvault 时,我可以看到它是空的

  2. sp 创建命令的输出是(我希望有不同的结果,因为我让它使用在 KV 中创建的证书):

    { "appId": "...", “显示名称”:“mysp”, “密码”: ”...”, “租户”: ”...” }

我在这里做错了什么?

azure azure-keyvault azure-cli azure-service-principal
1个回答
0
投票

请注意,通过 CLI 在 Key Vault 中创建的证书仅对通过 az login

 登录创建证书的用户可见。

就我而言,我使用以下命令通过 CLI 连接到 Azure:使用

Sri

 用户登录:

az login --only-show-errors

回复:

enter image description here

当我在我的环境中运行您的代码时,在密钥保管库中成功创建了

证书以及服务主体,如下所示:

Write-Host "Creating KeyVault..." az keyvault create --name srikeyvault06 --resource-group Sri --location polandcentral Write-Host "Creating service principal..." az ad sp create-for-rbac --name srisp06 --role contributor --scopes "/subscriptions/subId/resourceGroups/Sri" --create-cert --cert mycert06 --keyvault srikeyvault06

回复:

确认,您还可以运行以下 CLI 命令来检索特定密钥保管库中存在的证书:

az keyvault certificate list --vault-name srikeyvault06

回复:

enter image description here

如果您尝试从

不同用户帐户访问密钥保管库,并且错过了向该用户添加具有List

权限的密钥保管库访问策略,则您无法看到该证书。

当我尝试从

不同用户帐户检查相同内容时,我看到以下屏幕,但没有证书:

enter image description here

要解决

这个问题,您需要通过启用其他用户对证书的List访问来在密钥保管库中添加新的访问策略,如下所示:

enter image description here当我尝试再次从该用户帐户检查相同内容时,我可以在密钥保管库中成功找到

证书

,如下所示:

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.