无法在 Azure CLI 中为应用程序设置密钥保管库的访问策略

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

策略管理文档中,它们展示了如何分配允许作为主体访问密钥保管库的应用程序。我想使用 Azure CLI 来完成此操作。

对于用户,我发现我应该执行以下操作。

az keyvault set-policy --name kv-holder --upn [email protected] --secret-permissions all

但是,对注册的服务做相应的事情是行不通的。我可以在 GUI 中执行此操作,将应用程序指定为主体(步骤 2,而不是 3!),如文档中第 4 项所示。但执行以下任何操作似乎都会失败。

az keyvault set-policy --name kv-holder --upn app-web-service --secret-permissions all
az keyvault set-policy --name kv-holder --spn app-web-service --secret-permissions all
az keyvault set-policy --name kv-holder --object-id app-web-service --secret-permissions all
az keyvault set-policy --name kv-holder --application-id app-web-service --secret-permissions all

我收到错误消息,必须指定 upnspnobject-id 之一,当我这样做时,它告诉我没有该名称的用户。

我错过了什么?他们在哪里隐藏了如何以编程方式执行此操作的信息,而不是从门户中隐藏的信息?

当我尝试

object-id
和应用程序的GUID时,它似乎接受了请求。但是,在 GUI 中,我现在看到一个名为 Unknown 的部分(位于之前创建的名为 Application 的部分下方),并且我的 GUID 列在那里,而应用程序(指相同的 GUID!)单独列在其他部分中。他们确实有不同的特权,这让我更加困惑......

c# azure azure-keyvault azure-cli
2个回答
1
投票

要在 Azure CLI 中为应用程序设置密钥保管库的访问策略,您 可以使用以下命令:

az keyvault set-policy --name <kvname> --object-id <service_principal_ID> --secret-permissions all

我创建了一个与您的名称相同的 Azure AD 应用程序,如下所示:

enter image description here

如果您在 CLI 命令的 --object-id 参数中传递上述 Application ID

Object ID,它将被添加为 Unknown。

注意,您需要传递

服务主体
objectID,而不是 应用程序。

您可以在 Azure AD 租户的企业应用程序中找到服务主体,其名称与应用程序相同,如下所示:

enter image description here

当我通过包含上述服务主体ObjectID运行下面的

CLI命令
时,它成功添加到访问策略中,如下所示:

az keyvault set-policy --name <kvname> --object-id <service_principal_ID> --secret-permissions all

回复:

enter image description here


0
投票

很抱歉,这个命令肯定不起作用。

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