我们使用维护配置作为 Azure 更新管理器配置的一部分。对于 Azure VM,除了向 Azure 订阅授予贡献者角色权限之外,是否还有任何角色可以允许在维护配置中添加和删除服务器?
对于启用 Arc 的服务器,这不是问题,因为贡献者角色可以分配给这些服务器所属的资源组,但对于 Azure VM,因为它们不在资源组中,这是不可能的。
维护配置的权限没有问题,问题在于 Azure VM 所需的权限。
我们尝试使用以下详细信息创建自定义权限,但这仍然不允许添加或删除 Azure VM。
脚本详情:
$customRole = @{
Name = "Maintenance Config VM Updater"
Description = "Role with permissions to update maintenance configurations and associate VMs with them."
Actions = @(
"Microsoft.Maintenance/configurations/write",
"Microsoft.Maintenance/configurations/read",
"Microsoft.Compute/virtualMachines/write",
"Microsoft.Compute/virtualMachines/read"
)
NotActions = @()
DataActions = @()
NotDataActions = @()
AssignableScopes = @(
"/subscriptions/<your-subscription-id>"
)
}
# Convert the properties to JSON
$customRoleJson = ConvertTo-Json -InputObject $customRole -Depth 10
# Create the custom role in Azure
New-AzRoleDefinition -InputFile (New-TemporaryFile -Value $customRoleJson)
要在维护配置中添加或删除虚拟机,您通常需要维护配置和虚拟机的权限
您可以创建自定义角色,如下所示-
转到订阅-> IAM-> +添加下拉菜单-> 添加自定义角色
创建您的自定义角色,填写角色名称描述等标准内容,然后在权限下添加这些 -
您可以根据您的要求选择任何附加权限。 接下来在范围下它应该自动填充您的订阅 ID-
保存它-
现在转到将处理所有这些维护活动的用户/管理员,并从添加角色部分为他/她分配此自定义角色,使用您提供的自定义角色名称进行过滤并分配
这是自定义规则的json,您在创建时会得到自己的-
{
"properties": {
"roleName": "Maintenance Config VM Updater",
"description": "Role with permissions to update maintenance configurations and associate VMs with them",
"assignableScopes": [
"/subscriptions/20df4f6c-0ab2-4a88-82d5-9d23dbddfc7d"
],
"permissions": [
{
"actions": [
"Microsoft.Maintenance/maintenanceConfigurations/write",
"Microsoft.Maintenance/maintenanceConfigurations/read",
"Microsoft.Maintenance/configurationAssignments/write",
"Microsoft.Maintenance/configurationAssignments/read",
"Microsoft.Compute/virtualMachines/read",
"Microsoft.Compute/virtualMachines/write",
"Microsoft.Resources/subscriptions/resourceGroups/read",
"Microsoft.Resources/subscriptions/resourceGroups/write"
],
"notActions": [],
"dataActions": [],
"notDataActions": []
}
]
}
}
您还可以从 powershell 创建此内容,请查看此 MS 文档的第 9 步