0

我试图为团队提供管理其密钥保管库中的密钥、机密和证书的最低特权访问权限,以及管理访问策略的能力。

根据这些文档,密钥、机密和证书通过访问策略在数据平面中处理,管理访问策略的能力通过 RBAC 在管理平面中处理。因此,我们通过访问策略处理了数据访问(密钥、机密和证书)。但是我们似乎无法获得权限来授予他们管理访问策略的能力。

我创建了一个具有以下权限的自定义角色:

  • */读
  • Microsoft.KeyVault/保管库/读取
  • Microsoft.KeyVault/vaults/accessPolicies/write
  • Microsoft.Authorization/policyDefinitions/delete
  • Microsoft.Authorization/policyDefinitions/write
  • Microsoft.Authorization/policyDefinitions/read
  • Microsoft.Authorization/policyAssignments/delete
  • Microsoft.Authorization/policyAssignments/write
  • Microsoft.Authorization/policyAssignments/read

即使拥有这些权限,用户也无法添加访问策略。我们做错了什么?

此外,我认为只有“accessPolicies/write”权限(在 Microsoft.Keyvault 下)是列表中唯一与管理密钥保管库访问策略的能力相关的权限。那正确吗?(policyDefinition 和 policyAssignment 权限是否与此问题无关?)

谢谢!

4

2 回答 2

1

policyDefinition 和 policyAssignment 权限是否与此问题无关?

是的,它与这个问题无关。

为什么这些 Azure 权限不起作用?

管理访问策略,Microsoft.KeyVault/vaults/accessPolicies/writeaction 还不够,通过这个action 将自定义角色分配给用户,然后使用用户帐户测试powershell 命令Set-AzKeyVaultAccessPolicy,显然它需要Microsoft.KeyVault/vaults/writeaction。

Set-AzKeyVaultAccessPolicy -VaultName joytest123 -ResourceGroupName joyRG -ObjectId xxxxxx -PermissionsToKeys create,import,delete,list -BypassObjectIdValidation

在此处输入图像描述

因此,至少您需要Actions在自定义角色中使用以下类似内容。

"Actions": [
    "Microsoft.KeyVault/vaults/read",
    "Microsoft.KeyVault/vaults/write",

  ]

如果您不希望用户创建新的 keyvault,只需在特定的 keyvault 范围内为用户分配自定义角色(选择一个 keyvault -> Access control (IAM)),那么他将无法做到这一点。

于 2020-05-22T02:48:50.867 回答
0

为什么不将用户的密钥保管库管理员角色授予其密钥保管库,而不是创建单独的自定义角色?如果您在密钥保管库中为他们分配了他们原本没有的角色,他们将获得什么访问权限?

此外,我将从测试内置角色开始,例如密钥保管库管理员,然后如果您真的想删除特定权限,则返回。

于 2020-05-21T21:44:01.970 回答