【问题标题】:Can't add Microsoft.Azure.Cdn service principal to Key Vault access policies无法将 Microsoft.Azure.Cdn 服务主体添加到 Key Vault 访问策略
【发布时间】:2021-09-12 23:48:28
【问题描述】:

我无法将 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 的 Access Policies 那里添加主体,但我在列表中找不到它。

更新

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

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

“首先,导航到门户中的 Azure Active Directory -> 企业应用程序 -> 使用所有应用程序进行过滤 -> 在结果中搜索 ApplicationId,确保服务主体存在。”

然后我没有得到任何结果。

【问题讨论】:

    标签: azure azure-keyvault


    【解决方案1】:

    首先,导航到门户中的 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"创建服务主体,创建成功后,导航到keyvault中的access polices尝试再次添加。

    【讨论】:

    • 谢谢,但是当我搜索 ApplicationId 时,我没有得到任何结果。
    • @Danied 你用All applications过滤了吗?
    • 是的,我用那个过滤了
    • @Danie 我知道,我的意思是你可以使用Get-AzureRmContext 来检查你的上下文吗?而不是再次使用Set-AzureRmContext -SubscriptionId "xxxx-xxxx-xxxx-xxxx" -Tenant "xxxxxx" 以确保您在正确的租户中。
    • 我错了租户。我使用 azure 门户中菜单中的 cloud shell 来确保它是正确的。然后它起作用了!谢谢。
    【解决方案2】:

    解决此问题的另一种方法是使用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/访问策略”并添加新的访问策略

    为“Secret”授予“Get”和“List”权限并选择最近创建的 Principal

    不要忘记保存更改

    你已经完成了!您现在可以启用“自定义域 HTTPS”选项并使用您的 KeyVault。

    【讨论】:

      猜你喜欢
      • 2020-04-21
      • 2021-09-26
      • 1970-01-01
      • 2017-07-11
      • 2019-07-28
      • 1970-01-01
      • 1970-01-01
      • 2020-09-25
      • 1970-01-01
      相关资源
      最近更新 更多