如何创建允许用户将访问策略添加到密钥保险库的自定义Azure角色?

如何创建允许用户将访问策略添加到密钥保险库的自定义Azure角色?,azure,azure-keyvault,Azure,Azure Keyvault,我正在为密钥库创建一个自定义角色,该角色将为用户提供以下功能: 生成/导入“密钥、机密和证书” 添加新的和管理现有的访问策略 我们正在寻求遵循最低特权访问原则,因此我从“读取”角色开始,并在粒度基础上添加权限,以实现最低功能 我从读取角色的克隆开始,添加了Microsoft.KeyVault/vault/AccessPolicys/write,因为它使用户能够通过合并或替换更新现有访问策略,或者向vault添加新的访问策略。 但是我分配给这个角色的用户说他们不能添加访问策略。我看不到Keyv

我正在为密钥库创建一个自定义角色,该角色将为用户提供以下功能:

  • 生成/导入“密钥、机密和证书”

  • 添加新的和管理现有的访问策略

我们正在寻求遵循最低特权访问原则,因此我从“读取”角色开始,并在粒度基础上添加权限,以实现最低功能

我从读取角色的克隆开始,添加了
Microsoft.KeyVault/vault/AccessPolicys/write
,因为它使用户能够
通过合并或替换更新现有访问策略,或者向vault添加新的访问策略。

但是我分配给这个角色的用户说他们不能添加访问策略。我看不到Keyvault下有任何其他与策略相关的权限可用

我认为他们可能需要
Microsoft.KeyVault/vaults/write
,但这将使用户能够创建新的Vault


我做错了什么?提前感谢。

在Azure keyvault中,有管理平面权限和数据平面权限,如果您想
添加新的和管理现有的访问策略
,获得权限的用户可以在访问策略中添加/更新自己,因此实际上它包括
生成/导入“密钥、机密和证书”
。实际上,您的目标就是添加新的访问策略并管理现有的访问策略。如果您只想
生成/导入
,而不需要例如
获取/列出
,我认为您的要求是冲突的

若要
添加新的访问策略并管理现有的访问策略
Microsoft.KeyVault/Vault/AccessPolicys/write
是不够的,您还需要
Microsoft.KeyVault/Vault/write
。我用一个刚刚在powershell中获得Microsoft.KeyVault/Vault/AccessPolicys/write权限的用户测试它,错误提到了这一点

因此,在您的情况下,您可以选择使用如下所示的自定义角色

{
  "Name": "Keyvault test",
  "Id": "e00236fe-0057-4a8b-bfee-890f757c3d38",
  "IsCustom": true,
  "Description": "test",
  "Actions": [
    "Microsoft.KeyVault/vaults/read",
    "Microsoft.KeyVault/vaults/write",

  ],
  "NotActions": [],
  "DataActions": [],
  "NotDataActions": [],
  "AssignableScopes": [
    "/subscriptions/xxxxxxxx"
  ]
}
但这将使用户能够创建新的保险库

不用担心,您只需在特定的keyvault范围内为用户分配自定义角色(选择一个keyvault->
访问控制(IAM)
),他将无法创建其他keyvault