Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a: implantações multi-rack do Azure Local 2511 e posterior
Este artigo descreve como usar o RBAC (Controle de Acesso Baseado em Função) para controlar o acesso a VMs (máquinas virtuais) locais do Azure para implantações de vários racks.
Você pode usar as funções RBAC para controlar o acesso a VMs e recursos de VM, como discos virtuais, interfaces de rede, imagens de VM, redes lógicas e redes virtuais. Você pode atribuir essas funções a usuários, grupos, entidades de serviço e identidades gerenciadas.
Modelo operacional de várias equipes
A seção a seguir explica um modelo operacional e definições de função personalizada associadas que a Microsoft fornece apenas como referência. Você pode optar por desconsiderar esse modelo e criar funções personalizadas que funcionem para sua organização.
Dada a escala do Azure Local para implantações de vários racks, este artigo pressupõe que uma equipe central o opera e a administra, mas a compartilha em muitas equipes de aplicativos. Nesse modelo, presumimos duas personas de usuário primárias: administradores de infraestrutura e administradores de aplicativos.
Administradores de infraestrutura: essa persona administra recursos de plataforma compartilhada, possuindo ativos de plataforma local do Azure (clusters, redes lógicas, IPs públicos) que exigem visão geral adicional do administrador e manutenção da governança.
Administradores de aplicativos: essa persona administra recursos de plataforma compartilhada, possuindo ativos de plataforma local do Azure (clusters, redes lógicas, IPs públicos) que exigem visão geral adicional do administrador e manutenção da governança.
Observação
Embora haja suporte para o uso de assinaturas separadas para desagregar a responsabilidade entre várias personas, as assinaturas devem existir no mesmo locatário do Microsoft Entra.
Divisão de controle
Nesse paradigma operacional, presumimos um modelo de acesso compartilhado. As equipes de infraestrutura possuem recursos compartilhados, como redes internas e redes lógicas. As equipes de aplicativos possuem recursos específicos do aplicativo, como VMs.
Com essa suposição, aqui está o padrão de referência de exemplo que forma a base para as definições de função personalizadas que recomendamos:
| Tipo de recurso | Equipe de infraestrutura | Equipe de aplicativos |
|---|---|---|
| Subscriptions | ||
| Assinatura (Infraestrutura) | Controle total | Leitor (apenas descoberta) |
| Assinatura (Aplicativo) | Sem acesso | Controle total |
| grupos de recursos | ||
| Grupos de recursos (Infraestrutura) | Proprietário | Leitor (para descoberta de recursos compartilhados) |
| Grupos de recursos (Aplicativo) | Sem acesso | Proprietário |
| Recursos de rede | ||
| Redes lógicas | Proprietário (criar/modificar/excluir) | Leitor + Conectar (anexar somente interfaces de rede) |
| Redes virtuais | Sem controle | Proprietário (ciclo de vida completo na assinatura de carga de trabalho) |
| Grupos de segurança de rede | Sem controle | Proprietário (ciclo de vida completo na assinatura de carga de trabalho) |
| Interfaces de rede | Sem controle | Proprietário (criar/modificar/excluir na assinatura de carga de trabalho) |
| Recursos da plataforma | ||
| Locais personalizados | Proprietário | Ação de implantação (para implantações de ARM - Arquitetura Avançada de Microprocessadores) |
| Imagens da galeria | Sem controle | Proprietário (ciclo de vida completo na assinatura de carga de trabalho) |
| Serviços de infraestrutura | ||
| Endereços IP públicos | Proprietário (criar/alocar/gerenciar) | Leitor + Referência (consumo de IPs públicos alocados) |
| Gateways da NAT | Sem controle | Proprietário (ciclo de vida completo, usa IPs públicos alocados pela infraestrutura) |
| Balanceadores de carga | Sem controle | Proprietário (ciclo de vida completo, usa IPs públicos alocados pela infraestrutura) |
| Recursos de computação | ||
| Instâncias de máquina virtual | Sem controle | Proprietário (ciclo de vida completo na assinatura de carga de trabalho) |
| Discos rígidos virtuais | Sem controle | Proprietário (ciclo de vida completo na assinatura de carga de trabalho) |
| Recursos filhos da VM | Sem controle | Proprietário (componentes gerenciados pela plataforma) |
Importante
A classificação de recursos de infraestrutura/carga de trabalho mostrada anteriormente é uma orientação fornecida pela Microsoft como uma linha de base. Você pode optar por usar sua própria abordagem para configurar o RBAC com base em suas estruturas de equipe específicas, modelos operacionais e requisitos de governança.
Funções personalizadas
Com base na divisão de controle de propriedade e acesso de recursos, recomendamos que as seguintes funções personalizadas sejam criadas e atribuídas às equipes de aplicativos para criação de recursos de locatário:
Função de consumidor de rede de infraestrutura: consumir recursos de rede de infraestrutura compartilhada. Escopo: assinatura de infraestrutura ou grupo de recursos específico do aplicativo.
Função de colaborador de VM de trabalho: fornece às equipes de aplicativos acesso com o menor privilégio para consumir recursos de infraestrutura de rede compartilhada. Escopo: assinatura de infraestrutura ou grupo de recursos específico do aplicativo.
Para obter mais informações, consulte definições de função personalizadas.
Pré-requisitos
Antes de iniciar, cumpra os seguintes pré-requisitos:
Verifique se você tem acesso a uma implantação em vários racks do Azure Local.
Verifique se você tem acesso a uma assinatura do Azure como Administrador de Acesso de Usuário ou Proprietário para atribuir funções a outras pessoas.
Criar funções personalizadas
Para controlar o acesso à VM local do Azure e aos recursos de carga de trabalho, você pode criar funções personalizadas conforme necessário. Funções personalizadas podem ser criadas usando o portal do Azure, o Azure PowerShell, a CLI do Azure ou a API REST.
Determine as permissões necessárias para a função personalizada. Ao criar uma função personalizada, você precisa conhecer as ações que estão disponíveis para definir suas permissões. Você pode adicionar as ações às propriedades Actions ou NotActions da definição de função. Se você tiver ações de dados, poderá adicioná-las às propriedades DataActions ou NotDataActions.
Para implantações de vários racks, recomendamos que as seguintes definições de função personalizada sejam usadas como ponto de partida.
Decida como você deseja criar a função personalizada. Crie funções personalizadas usando o portal do Azure, Azure PowerShell, a CLI do Azure ou a API REST.
Crie a função personalizada. A maneira mais fácil é usar o portal do Azure. Para ver as etapas sobre como criar uma função personalizada usando o portal do Azure, consulte Criar ou atualizar funções personalizadas do Azure usando o portal do Azure.
Teste a função personalizada. Quando tiver sua função personalizada, será necessário testá-la para verificar se funciona como o esperado. Se precisar ajustar mais tarde, você poderá atualizar a função personalizada.
Atribuir funções personalizadas aos usuários
Depois de criar as funções personalizadas de acordo com seus requisitos, você pode atribuí-las a usuários, grupos de usuários, entidades de serviço ou identidades gerenciadas. Use a CLI do Azure ou o portal do Azure para atribuir as funções.
CLI do Azure: para atribuir funções RBAC por meio da CLI do Azure, consulte Atribuir funções do Azure usando a CLI do Azure.
Portal do Azure: para atribuir funções RBAC por meio do portal do Azure, consulte Atribuir funções do Azure usando o portal do Azure.
Definições de função personalizadas
Você pode usar os exemplos de função a seguir como ponto de partida para determinar quais permissões são necessárias e criar funções personalizadas conforme necessário.
Leitor de Rede de Infraestrutura Local do Azure
Permite o consumo de recursos de rede de infraestrutura compartilhada para implantações de carga de trabalho.
{"Name": "Azure Local Infrastructure Network Consumer", "Id": "<Id>>", "IsCustom": true, "Description": "Allows consuming shared infrastructure network resources for cross-subscription workload deployments.", "Actions": ["Microsoft.AzureStackHCI/LogicalNetworks/Read", "Microsoft.AzureStackHCI/LogicalNetworks/join/action", "Microsoft.AzureStackHCI/publicIPAddresses/Read", "Microsoft.AzureStackHCI/publicIPAddresses/join/action", "Microsoft.ExtendedLocation/customLocations/Read", "Microsoft.ExtendedLocation/customLocations/deploy/action", "Microsoft.NetworkCloud/clusters/read"], "NotActions": [], "DataActions": [], "NotDataActions": [], "AssignableScopes": ["/subscriptions/<SubscriptionId>"]}
Colaborador de Máquina Virtual para Carga de Trabalho Local Azure
Função abrangente para gerenciar VMs, NICs, discos e consumir recursos de infraestrutura compartilhada em assinaturas de carga de trabalho.
{"Name": "Azure Local Workload VM Contributor", "Id": "<Id>>", "IsCustom": true, "Description": "Comprehensive role for managing VMs, NICs, disks and consuming shared infrastructure resources in workload subscriptions.", "Actions": ["Microsoft.AzureStackHCI/VirtualMachines/*", "Microsoft.AzureStackHCI/virtualMachineInstances/*", "Microsoft.AzureStackHCI/NetworkInterfaces/*", "Microsoft.AzureStackHCI/VirtualHardDisks/*", "Microsoft.AzureStackHCI/GalleryImages/*", "Microsoft.AzureStackHCI/loadBalancers/*", "Microsoft.AzureStackHCI/natGateways/*", "Microsoft.AzureStackHCI/VirtualNetworks/*", "Microsoft.AzureStackHCI/NetworkSecurityGroups/*", "Microsoft.Insights/AlertRules/Write", "Microsoft.Insights/AlertRules/Delete", "Microsoft.Insights/AlertRules/Read", "Microsoft.Insights/AlertRules/Activated/Action", "Microsoft.Insights/AlertRules/Resolved/Action", "Microsoft.Insights/AlertRules/Throttled/Action", "Microsoft.Insights/AlertRules/Incidents/Read", "Microsoft.Resources/deployments/read", "Microsoft.Resources/deployments/write", "Microsoft.Resources/deployments/delete", "Microsoft.Resources/deployments/cancel/action", "Microsoft.Resources/deployments/validate/action", "Microsoft.Resources/deployments/whatIf/action", "Microsoft.Resources/deployments/exportTemplate/action", "Microsoft.Resources/deployments/operations/read", "Microsoft.Resources/deployments/operationstatuses/read", "Microsoft.Resources/subscriptions/resourcegroups/deployments/read", "Microsoft.Resources/subscriptions/resourcegroups/deployments/write", "Microsoft.Resources/subscriptions/resourcegroups/deployments/operations/read", "Microsoft.Resources/subscriptions/resourcegroups/deployments/operationstatuses/read", "Microsoft.ResourceHealth/availabilityStatuses/read", "Microsoft.Authorization/*/read", "Microsoft.Resources/subscriptions/read", "Microsoft.Resources/subscriptions/resourceGroups/read", "Microsoft.Resources/subscriptions/operationresults/read", "Microsoft.HybridCompute/machines/read", "Microsoft.HybridCompute/machines/write", "Microsoft.HybridCompute/machines/delete", "Microsoft.HybridCompute/machines/UpgradeExtensions/action", "Microsoft.HybridCompute/machines/assessPatches/action", "Microsoft.HybridCompute/machines/installPatches/action", "Microsoft.HybridCompute/machines/extensions/read", "Microsoft.HybridCompute/machines/extensions/write", "Microsoft.HybridCompute/machines/extensions/delete", "Microsoft.HybridCompute/operations/read", "Microsoft.HybridCompute/locations/operationresults/read", "Microsoft.HybridCompute/locations/operationstatus/read", "Microsoft.HybridCompute/machines/patchAssessmentResults/read", "Microsoft.HybridCompute/machines/patchAssessmentResults/softwarePatches/read", "Microsoft.HybridCompute/machines/patchInstallationResults/read", "Microsoft.HybridCompute/machines/patchInstallationResults/softwarePatches/read", "Microsoft.HybridCompute/locations/updateCenterOperationResults/read", "Microsoft.HybridCompute/machines/hybridIdentityMetadata/read", "Microsoft.HybridCompute/osType/agentVersions/read", "Microsoft.HybridCompute/osType/agentVersions/latest/read", "Microsoft.HybridCompute/machines/runcommands/read", "Microsoft.HybridCompute/machines/runcommands/write", "Microsoft.HybridCompute/machines/runcommands/delete", "Microsoft.HybridCompute/machines/licenseProfiles/read", "Microsoft.HybridCompute/machines/licenseProfiles/write", "Microsoft.HybridCompute/machines/licenseProfiles/delete", "Microsoft.HybridCompute/licenses/read", "Microsoft.HybridCompute/licenses/write", "Microsoft.HybridCompute/licenses/delete", "Microsoft.KubernetesConfiguration/extensions/read"], "NotActions": [], "DataActions": [], "NotDataActions": [], "AssignableScopes": ["/subscriptions/<SubscriptionId>>"]}
Próximas etapas
- Saiba mais sobre como criar imagens de VM a partir de imagem na conta de armazenamento.