我试图为团队提供最低特权的访问权限来管理其 key 保管库中的 key 、 secret 和证书,以及管理访问策略的能力。
每these docs , key 、 secret 和证书通过访问策略在数据平面中处理,并且管理访问策略的能力通过 RBAC 在管理平面中处理。因此,我们通过访问策略处理数据访问( key 、 secret 和证书)。但我们似乎无法获得正确的权限来授予他们管理访问策略的能力。
我创建了一个具有以下权限的自定义角色:
- */阅读
- Microsoft.KeyVault/vaults/read
- Microsoft.KeyVault/vaults/accessPolicies/write
- Microsoft.Authorization/policyDefinitions/删除
- Microsoft.Authorization/policyDefinitions/write
- Microsoft.Authorization/policyDefinitions/read
- Microsoft.Authorization/policyAssignments/删除
- Microsoft.Authorization/policyAssignments/write
- Microsoft.Authorization/policyAssignments/read
即使拥有这些权限,用户也无法添加访问策略。我们做错了什么?
此外,我认为只有“accessPolicies/write”权限(在 Microsoft.Keyvault 下)是列表中唯一与管理 key 保管库访问策略的能力相关的权限。是对的吗? (policyDefinition和policyAssignment权限与这个问题无关吗?)
谢谢!
最佳答案
are the policyDefinition and policyAssignment permissions irrelevant to this issue?
是的,与此问题无关。
Why are these Azure permissions not working?
要管理访问策略,Microsoft.KeyVault/vaults/accessPolicies/write
操作还不够,请将具有此操作的自定义角色分配给用户,然后使用该用户帐户测试 powershell 命令Set-AzKeyVaultAccessPolicy
,显然它需要Microsoft.KeyVault/vaults/write
操作。
Set-AzKeyVaultAccessPolicy -VaultName joytest123 -ResourceGroupName joyRG -ObjectId xxxxxx -PermissionsToKeys create,import,delete,list -BypassObjectIdValidation
因此,至少您需要在自定义角色中使用如下所示的操作
。
"Actions": [
"Microsoft.KeyVault/vaults/read",
"Microsoft.KeyVault/vaults/write",
]
如果您不希望用户创建新的 keyvault,只需在特定 keyvault 范围内为用户分配自定义角色(选择一个 keyvault -> 访问控制 (IAM)
),那么他将无法做到这一点。
关于azure - 为什么这些 Azure 权限不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61940285/