Azure最小权限角色,用于写入特定Vault甚至特定机密名称(或全局通配符)的密钥Vault机密
我希望最终得到一个服务帐户/主体,它拥有尽可能狭窄的权限。它需要将新的/更新的机密写入特定的Azure密钥库。因此,我想为此创建一个自定义角色,并将该角色分配给服务帐户。我已经能够找到足够的文档,知道我需要一个类似以下角色的角色: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
{
"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}"
]