Azure最低权限角色,用于写入密钥保险库密钥,特定于特定的保险库甚至特定的秘密名称(或通配符)

时间:2019-06-17 22:11:25

标签: azure azure-keyvault azure-role-environment

我想最终获得一个服务帐户/本金,该帐户/本金具有最小的特权,并尽可能地窄。它需要将新的/更新的机密写入特定的Azure Key Vault。因此,我想为此创建一个自定义角色,并将该角色分配给服务帐户。我已经能够找到足够的文档来知道我需要这样的角色:

{
  "Name": "Vault-Secret-Write",
  "Description": "Allow writing new secrets to a particular Key Vault",
  "Actions": [ "Microsoft.KeyVault/vaults/secrets/write" ],
  "AssignableScopes": [ "MAGIC-GOES-HERE" ]
}

我找不到能够帮助我确定范围的文档。如上所述,它应该尽可能地窄,至少指向特定的密钥保管库,甚至指向与通配符匹配的机密(例如keyprefix *)。

1 个答案:

答案 0 :(得分:3)

您的解决方案不正确。

Azure密钥库由管理平面(Access control (IAM))和数据平面(Access policies)保护,secrets由数据平面管理。即使您在管理平面中为用户/服务主体提供了owner / your custom rbac role,它也不允许您访问密钥库中的机密。

要解决您的问题,无需授予RBAC角色,只需导航到密钥库中的Access policies,然后以正确的权限添加用户/服务主体。在您的情况下,将Set秘密权限授予您的用户/服务主体,那么它将仅对密钥库具有Set秘密权限。

enter image description here

有关安全访问密钥库的更多详细信息,请参阅此link

此外,如果您想测试解决方案,只需按如下所示指定AssignableScopes,然后您就可以将用户/服务主体作为自定义角色添加到{ {1}}您的密钥库。然后,您可以测试它以创建/更新秘密,而无需设置访问策略,则会收到“禁止访问”错误。

Access control (IAM)