我正在运行脚本的以下几行:
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
命令的最后三个选项似乎没有做任何事情,因为:
当我在门户中浏览我的 Keyvault 时,我可以看到它是空的
sp 创建命令的输出是(我希望有不同的结果,因为我让它使用在 KV 中创建的证书):
{ "appId": "...", “显示名称”:“mysp”, “密码”: ”...”, “租户”: ”...” }
我在这里做错了什么?
就我而言,我使用以下命令通过 CLI 连接到 Azure:使用请注意,通过 CLI 在 Key Vault 中创建的证书仅对通过
az login
登录创建证书的用户可见。
Sri
az login --only-show-errors
回复:
当我在我的环境中运行您的代码时,在密钥保管库中成功创建了
证书以及服务主体,如下所示:
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
回复:
如果您尝试从当我尝试从不同用户帐户访问密钥保管库,并且错过了向该用户添加具有
List
权限的密钥保管库访问策略,则您无法看到该证书。
不同用户帐户检查相同内容时,我看到以下屏幕,但没有证书:
要解决
这个问题,您需要通过启用其他用户对证书的List
访问来在密钥保管库中添加新的访问策略,如下所示:
当我尝试再次从该用户帐户检查相同内容时,我可以在密钥保管库中成功找到
证书,如下所示: