无法将 Microsoft.Azure.Cdn 服务主体添加到 Key Vault 访问策略

Can't add Microsoft.Azure.Cdn service principal to Key Vault access policies

我无法将 Microsoft.Azure.Cdn 服务主体添加到 Key Vault 访问策略。

我在 PowerShell 中有 运行 以下命令。

New-AzureRmADServicePrincipal -ApplicationId "xxxxxx-xxxx-xxxx-xxxx-xxxxxxx"

我得到了以下结果。

Secret: System.Security.SecureString
ServicePrincipalNames : {xxxxxx-xxxx-xxxx-xxxx-xxxxxxx, 
    https://microsoft.onmicrosoft.com/yyyyyyy-yyyy-yyyy-yyyy-yyyyyyyy}
ApplicationId: xxxxxx-xxxx-xxxx-xxxx-xxxxxxx
DisplayName: Microsoft.Azure.Cdn
Id: zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzz
AdfsId:
Type: ServicePrincipal

然后我去 Key Vault 的访问策略那里添加主体,但我在列表中找不到它。

更新

当我尝试添加它时,我得到了这个结果。

但是当我执行评论中建议的以下操作时:

"First, navigate to the Azure Active Directory in the portal -> Enterprise applications -> filter with All applications -> search for the ApplicationId in your result, make sure the service principal is existing."

然后我没有结果。

首先,导航到门户中的 Azure Active Directory -> Enterprise applications -> 使用 All applications 筛选 -> 在结果中搜索 ApplicationId,确保服务主体存在。

Add access policy 页面中,搜索结果中的 Id(即 SP 的 Object ID),应该可以。

或者您可以使用 Set-AzureRmKeyVaultAccessPolicy 将服务主体添加到访问策略,-ObjectId 是您结果中的 Id

样本:

Set-AzureRmKeyVaultAccessPolicy -VaultName 'Contoso03Vault' -ObjectId 34595082-9346-41b6-8d6b-295a2808b8db -PermissionsToSecrets Get,Set

更新:

按照以下步骤操作。

在门户中导航到您的密钥保管库 -> 复制 Directory IDSubscription ID

使用Connect-AzureRmAccount -TenantId "<Directory ID>" -Subscription "<Subscription ID>"登录,使用上面的两个属性。

如果您已经登录,只需使用Set-AzureRmContext -Tenant "<Directory ID>" -SubscriptionId "<Subscription ID>"

然后使用 New-AzureRmADServicePrincipal -ApplicationId "xxxxxx-xxxx-xxxx-xxxx-xxxxxxx" 创建服务主体,当您成功创建它时,导航到您的密钥库中的 access polices 以尝试再次添加它。

另一种解决此问题的方法是使用 Azure CLI.

首先按照以下步骤检查您使用的订阅是否正确:

登录到 Azure

az login

获取您的订阅列表

az account list --output table

将列表中的订阅设置为当前活动订阅

az account set --subscription "<SUBSCRIPTION_NAME>"

现在,当您启用“自定义域 HTTPS”选项时,复制蓝色框中显示的服务主体 ID

使用该 ID 创建服务主体

az ad sp create --id "d4631ece-daab-479b-be77-ccb713491fc0"

转到您的“KeyVault/Access 策略”并添加新的访问策略

授予“机密”和Select 最近创建的委托人“获取”和“列出”权限

不要忘记保存您的更改

大功告成!您现在可以启用“自定义域 HTTPS”选项并使用您的 KeyVault。