Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure最小权限角色,用于写入特定Vault甚至特定机密名称(或全局通配符)的密钥Vault机密_Azure_Azure Keyvault_Azure Role Environment - Fatal编程技术网

Azure最小权限角色,用于写入特定Vault甚至特定机密名称(或全局通配符)的密钥Vault机密

Azure最小权限角色,用于写入特定Vault甚至特定机密名称(或全局通配符)的密钥Vault机密,azure,azure-keyvault,azure-role-environment,Azure,Azure Keyvault,Azure Role Environment,我希望最终得到一个服务帐户/主体,它拥有尽可能狭窄的权限。它需要将新的/更新的机密写入特定的Azure密钥库。因此,我想为此创建一个自定义角色,并将该角色分配给服务帐户。我已经能够找到足够的文档,知道我需要一个类似以下角色的角色: { "Name": "Vault-Secret-Write", "Description": "Allow writing new secrets to a particular Key Vault", "Actions": [ "Microsoft.Ke

我希望最终得到一个服务帐户/主体,它拥有尽可能狭窄的权限。它需要将新的/更新的机密写入特定的Azure密钥库。因此,我想为此创建一个自定义角色,并将该角色分配给服务帐户。我已经能够找到足够的文档,知道我需要一个类似以下角色的角色:

{
  "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*)的机密。

您的解决方案不正确

Azure keyvault由管理平面(
访问控制(IAM)
)和数据平面(
访问策略
)保护,
机密
由数据平面管理。即使将
所有者
/
您的自定义rbac角色
授予管理平面中的用户/服务负责人,也不允许您访问密钥库中的机密

要解决您的问题,无需授予RBAC角色,只需导航到keyvault中的
访问策略
,添加具有正确权限的用户/服务主体。在您的情况下,向您的用户/服务负责人授予
Set
secret权限,则该用户/服务负责人将只拥有对keyvault的
Set
secret权限

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

除此之外,如果您想测试您的解决方案,只需按如下所示指定
可分配范围
,您就可以将您的用户/服务主体作为自定义角色添加到keyvault的
访问控制(IAM)
。然后您可以在不设置访问策略的情况下测试它以创建/更新机密,您将得到一个禁止的错误

"AssignableScopes": [
    "/subscriptions/{subscription id}/resourceGroups/{resource group name}/providers/Microsoft.KeyVault/vaults/{keyvault name}"
  ]