Azure密钥保险存储访问策略没有';我不为团体工作

Azure密钥保险存储访问策略没有';我不为团体工作,azure,azure-keyvault,azure-active-directory,Azure,Azure Keyvault,Azure Active Directory,通过Azure Key Vault上的组访问策略似乎不起作用 如果我创建一个新的密钥库 New-AzureRmKeyVault -VaultName $vaultName 并检查钥匙(目前没有任何钥匙) 这很有效 如果我向当前用户所属的组添加访问权限 $group = (Get-AzureRmADGroup -SearchString 'All Developers')[0].Id Set-AzureRmKeyVaultAccessPolicy -VaultName $vaultName -

通过Azure Key Vault上的组访问策略似乎不起作用

如果我创建一个新的密钥库

 New-AzureRmKeyVault -VaultName $vaultName
并检查钥匙(目前没有任何钥匙)

这很有效

如果我向当前用户所属的组添加访问权限

$group = (Get-AzureRmADGroup -SearchString 'All Developers')[0].Id
Set-AzureRmKeyVaultAccessPolicy -VaultName $vaultName -ResourceGroupName $resourceGroupName -ObjectId $group -PermissionsToKeys all -PermissionsToSecrets all
并删除直接访问

Remove-AzureRmKeyVaultAccessPolicy -VaultName $vaultName -ResourceGroupName $resourceGroupName -UserPrincipalName $upn
列表操作现在失败

Get-AzureRmKeyVault -VaultName $vaultName -ResourceGroupName $resourceGroupName

Get-AzureKeyVaultKey : Operation "list" is not allowed

如何按组分配权限?

向组添加访问策略的原因是不支持该策略。如果查看
Set-AzureRmKeyVaultAccessPolicy
的帮助,ObjectId有以下内容

-ObjectId <Guid>
    Specifies the object ID of the user or service principal in Azure Active Directory for which to grant permissions.

    Required?                    true
    Position?                    named
    Default value                none
    Accept pipeline input?       true(ByPropertyName)
    Accept wildcard characters?  false
有效负载包含
objectId
参数,该参数定义为

指定vault的Azure Active Directory租户中用户或服务主体的对象ID。必须将ID指定为GUID


我可以想象,这个功能将在将来的某个时候被添加,但目前这是不可能的

我今天发现它适用于许可组对象中的用户。不适用于这些组中的服务主体


换句话说,如果我使用客户机id和客户机机密进行身份验证,则关联的服务主体必须在密钥库上直接设置访问策略。如果我允许一个安全组,该组中的用户实际上可以访问密钥库。我想这与JWT如何将安全组包含在其中与用户有关,而不是与服务主体有关…

当应用程序在添加到Azure Active Directory组之前向密钥库发出请求时,也会发生此
访问被拒绝
/
403禁止
错误

也许这与在应用程序服务实例上缓存服务主体信息有关?我找不到这方面的文件


解决方案:重新启动应用程序服务。

但一个密钥保险库最多可以设置10个访问策略。因此,限制基本上是密钥保险库对于10个以上的唯一用户不可用?我只是想在得出Azure key vault对我的工作毫无用处的结论之前确保我理解了这一点purposes@Jeff我个人的解决方案是每个应用程序都有一个单钥匙保险库。在这两种SKU上,它们都足够便宜,因此无关紧要。我通常与资源组的其他成员一起部署vault,并仅锁定其对该应用程序的权限。您的回答实际上是错误的。我今天发现它适用于许可组对象中的用户。不适用于这些组中的服务主体。现在可以将组分配给密钥保险库,但文档尚未更新。:)0否决票现在显示向安全组授予权限的一份更新文档如示例6所示:此相关文档可能会有所帮助:但也可以查看我提出的此问题:
-ObjectId <Guid>
    Specifies the object ID of the user or service principal in Azure Active Directory for which to grant permissions.

    Required?                    true
    Position?                    named
    Default value                none
    Accept pipeline input?       true(ByPropertyName)
    Accept wildcard characters?  false
    https://management.azure.com/subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.KeyVault/vaults/{vault-name}?api-version={api-version}