如何创建允许用户向 Key Vault 添加访问策略的自定义 Azure 角色?
How to create custom Azure role which allows users to add access policies to Key Vaults?
我正在为 Key Vault 创建一个自定义角色,它将为用户提供以下能力:
generate/import‘密钥、秘密和证书’
添加新的和管理现有的访问策略
我们寻求遵循最低权限访问原则,因此我从 'read' 角色开始,并在粒度基础上添加权限以实现最低限度的功能。
我从读取角色的克隆开始并添加了 Microsoft.KeyVault/vaults/accessPolicies/write
因为它使用户能够 Update an existing access policy by merging or replacing, or add a new access policy to a vault.
但是我分配了这个角色的用户说他们不能添加访问策略。我在 Keyvault 下看不到任何其他与策略相关的可用权限。
我认为他们可能需要 Microsoft.KeyVault/vaults/write
,但这将使用户能够创建新的保险库。
我做错了什么?提前致谢。
在Azure keyvault中,有管理平面权限和数据平面权限,如果你想要add new and manage existing access policies
,获得权限的用户可以add/update自己在访问策略中,所以实际上包括generate/import ‘Keys, Secrets and Certificates'
。所以你的目标实际上只是 add new and manage existing access policies
。如果你只是想要 generate/import
而不是例如Get/List
,我觉得你的要求有冲突。
到add new and manage existing access policies
,Microsoft.KeyVault/vaults/accessPolicies/write
还不够,还需要Microsoft.KeyVault/vaults/write
。我用一个刚刚在 powershell Set-AzKeyVaultAccessPolicy
中获得 Microsoft.KeyVault/vaults/accessPolicies/write
权限的用户进行了测试,错误提到了这一点。
所以在你的情况下,你的选择是使用如下自定义角色。
{
"Name": "Keyvault test",
"Id": "e00236fe-0057-4a8b-bfee-890f757c3d38",
"IsCustom": true,
"Description": "test",
"Actions": [
"Microsoft.KeyVault/vaults/read",
"Microsoft.KeyVault/vaults/write",
],
"NotActions": [],
"DataActions": [],
"NotDataActions": [],
"AssignableScopes": [
"/subscriptions/xxxxxxxx"
]
}
but that would enable users to create new vaults.
这个不用担心,你只需要在特定的keyvault范围内为用户分配自定义角色(select一个keyvault -> Access control (IAM)
),他将无法创建其他密钥库。
我正在为 Key Vault 创建一个自定义角色,它将为用户提供以下能力:
generate/import‘密钥、秘密和证书’
添加新的和管理现有的访问策略
我们寻求遵循最低权限访问原则,因此我从 'read' 角色开始,并在粒度基础上添加权限以实现最低限度的功能。
我从读取角色的克隆开始并添加了 Microsoft.KeyVault/vaults/accessPolicies/write
因为它使用户能够 Update an existing access policy by merging or replacing, or add a new access policy to a vault.
但是我分配了这个角色的用户说他们不能添加访问策略。我在 Keyvault 下看不到任何其他与策略相关的可用权限。
我认为他们可能需要 Microsoft.KeyVault/vaults/write
,但这将使用户能够创建新的保险库。
我做错了什么?提前致谢。
在Azure keyvault中,有管理平面权限和数据平面权限,如果你想要add new and manage existing access policies
,获得权限的用户可以add/update自己在访问策略中,所以实际上包括generate/import ‘Keys, Secrets and Certificates'
。所以你的目标实际上只是 add new and manage existing access policies
。如果你只是想要 generate/import
而不是例如Get/List
,我觉得你的要求有冲突。
到add new and manage existing access policies
,Microsoft.KeyVault/vaults/accessPolicies/write
还不够,还需要Microsoft.KeyVault/vaults/write
。我用一个刚刚在 powershell Set-AzKeyVaultAccessPolicy
中获得 Microsoft.KeyVault/vaults/accessPolicies/write
权限的用户进行了测试,错误提到了这一点。
所以在你的情况下,你的选择是使用如下自定义角色。
{
"Name": "Keyvault test",
"Id": "e00236fe-0057-4a8b-bfee-890f757c3d38",
"IsCustom": true,
"Description": "test",
"Actions": [
"Microsoft.KeyVault/vaults/read",
"Microsoft.KeyVault/vaults/write",
],
"NotActions": [],
"DataActions": [],
"NotDataActions": [],
"AssignableScopes": [
"/subscriptions/xxxxxxxx"
]
}
but that would enable users to create new vaults.
这个不用担心,你只需要在特定的keyvault范围内为用户分配自定义角色(select一个keyvault -> Access control (IAM)
),他将无法创建其他密钥库。