Compartilhar via


Conceda acesso aos recursos do Gerenciador de Frota de Kubernetes do Azure com controle de acesso baseado em função do Azure

Esse artigo fornece uma visão geral das várias funções internas do Azure RBAC que você pode usar para acessar os recursos do Gerenciador de Frota de Kubernetes do Azure (Kubernetes Fleet).

O controle de acesso baseado em função do Azure (Azure RBAC) é um sistema de autorização criado no Azure Resource Manager que fornece gerenciamento de acesso refinado aos recursos do Azure.

Azure Resource Manager

Essas funções concedem acesso aos recursos e sub-recursos da Frota do ARM (Azure Resource Manager) e são aplicáveis aos Fleet Managers com e sem um cluster de hub.

Nome da função Descrição Uso
Colaborador do Gerenciador de Frota de Kubernetes do Azure Essa função concede acesso de leitura e escrita aos recursos do Azure fornecidos pelo Gerenciador de Frota de Kubernetes do Azure, incluindo frotas, membros da frota, estratégias de atualização da frota, execuções de atualização da frota e muito mais. Você pode usar essa função para conceder permissões de Colaborador que se aplicam somente aos recursos e sub-recursos do Kubernetes Fleet. Por exemplo, essa função pode ser atribuída a um administrador do Azure encarregado de definir e manter os recursos da Frota.
Função de usuário do cluster Hub do Gerenciador de Frotas do Azure Kubernetes Essa função permite acesso somente leitura ao cluster do hub do Gerenciador de Frota, assim como ao arquivo de configuração do Kubernetes para se conectar ao cluster do hub gerenciado da frota. Você pode exibir recursos do Fleet Manager e baixar o kubeconfig do cluster de hub para inspecionar configurações e cargas de trabalho sem fazer nenhuma alteração.

Plano de dados do Kubernetes

Você pode atribuir funções do plano de dados do Fleet no escopo do Fleet ou em um escopo de namespace gerenciado individual.

Há dois tipos de funções de plano de dados: funções RBAC e funções RBAC para Clusters de Membros. As funções RBAC só concedem acesso a objetos kubernetes dentro do cluster de hub gerenciado pela Frota. As funções RBAC para clusters membros concedem acesso apenas a objetos do Kubernetes em clusters membros de uma frota. Aplicar uma função RBAC para Clusters Membros no escopo do namespace gerenciado aplica essa função ao namespace gerenciado em todos os membros da Frota pai, independentemente de o namespace gerenciado ser propagado para esse membro.

Quando um cluster membro ingressa em uma Frota, o usuário obtém todas as permissões concedidas no escopo da Frota pai para esse cluster. Quando um cluster membro deixa a Frota, o usuário perde essas permissões para esse cluster. Por exemplo, um usuário atribuído à função Azure Kubernetes Fleet Manager RBAC Cluster Admin for Member Clusters no escopo da Frota pode criar namespaces em todos os clusters membros somente enquanto esses clusters permanecerem na Frota.

Se uma função for aplicada em um escopo de namespace gerenciado e esse namespace gerenciado for excluído, a atribuição de função também será excluída. Se o namespace gerenciado for recriado, a atribuição de função não será recriada automaticamente e deverá ser recriada manualmente.

No momento, essas funções RBAC não são suportadas para membros Arc em uma Frota. Além disso, não há suporte para controle de acesso para CRs (Recursos Personalizados) do Kubernetes específicos para essas funções RBAC do Azure.

Nome da função Descrição Uso
Leitor de RBAC do Gerenciador de Frota de Kubernetes do Azure Permite acesso somente leitura na maioria dos recursos do Kubernetes em um namespace no cluster hub gerenciado pela frota. Não permite exibir funções nem associações de função. Essa função não permite a visualização de segredos, pois a leitura do conteúdo dos segredos permite o acesso a ServiceAccount credenciais no namespace, o que permitiria o acesso à API como qualquer ServiceAccount no namespace (uma forma de escalonamento de privilégios). A aplicação desta função no âmbito do cluster dá acesso a todos os namespaces. Você pode usar essa função para conceder a capacidade de ler objetos Kubernetes não confidenciais selecionados no namespace ou no escopo do cluster. Por exemplo, você pode conceder essa função para fins de revisão.
Gravador de RBAC do Gerenciador de Frota de Kubernetes do Azure Concede acesso de leitura e gravação à maioria dos recursos do Kubernetes em um namespace no cluster de hub gerenciado pela frota. Essa função não permite exibir nem modificar funções ou associações de função. No entanto, essa função permite acessar segredos como qualquer ServiceAccount no namespace, portanto, pode ser usada para obter os níveis de acesso à API de qualquer ServiceAccount no namespace. A aplicação desta função no âmbito do cluster dá acesso a todos os namespaces. Você pode usar essa função para conceder a capacidade de gravar objetos Kubernetes selecionados no namespace ou no escopo do cluster. Por exemplo, para uso por uma equipe de projeto responsável por objetos em um determinado namespace.
Administrador de RBAC do Gerenciador de Frota de Kubernetes do Azure Concede acesso de leitura e gravação aos recursos do Kubernetes em um namespace no cluster de hub gerenciado pela frota. Fornece permissões de gravação na maioria dos objetos dentro de um namespace, exceto para o objeto ResourceQuota e o próprio objeto de namespace. A aplicação desta função no âmbito do cluster dá acesso a todos os namespaces. Você pode usar essa função para conceder a capacidade de administrar objetos Kubernetes selecionados (incluindo funções e vinculações de função) no namespace ou no escopo do cluster. Por exemplo, para uso por uma equipe de projeto responsável por objetos em um determinado namespace.
Administrador do cluster de RBAC do Gerenciador de Frota de Kubernetes do Azure Permite acesso de leitura/gravação em todos os recursos do Kubernetes no cluster hub gerenciado pela frota. Você pode usar essa função para conceder acesso a todos os objetos do Kubernetes (incluindo CRDs) no namespace ou no escopo do cluster.
Leitor do RBAC para clusters membros do Gerenciador de Frota de Kubernetes do Azure Acesso somente leitura à maioria dos objetos no namespace no cluster membro. Não é possível exibir funções ou associações de função. Não é possível exibir Segredos (impede o escalonamento de privilégios por meio de credenciais ServiceAccount). Você pode usar essa função para conceder a capacidade de ler objetos de Kubernetes não confidenciais selecionados no escopo do namespace nos membros da frota.
Editor do RBAC para clusters membros do Gerenciador de Frota de Kubernetes do Azure Acesso de leitura e gravação à maioria dos recursos do Kubernetes no namespace. Não é possível exibir ou modificar funções ou associações de função. Pode ler segredos (portanto, pode assumir qualquer conta de serviço (ServiceAccount) no namespace). Você pode usar essa função para conceder a capacidade de gravar objetos de Kubernetes selecionados em um namespace em um membro da frota. Por exemplo, para uso por uma equipe de projeto responsável por objetos em um determinado namespace.
Administrador do RBAC para clusters membros do Gerenciador de Frota de Kubernetes do Azure Acesso de leitura e gravação aos recursos de Kubernetes no namespace no cluster membro. Você pode usar essa função para conceder a capacidade de administrar objetos de Kubernetes selecionados (incluindo funções e vinculações de função) no namespace nos membros da frota. Por exemplo, para uso por uma equipe de projeto responsável por objetos em um determinado namespace.
Administrador do cluster do RBAC para clusters membros do Gerenciador de Frota de Kubernetes do Azure Acesso total de leitura e gravação a todos os recursos do Kubernetes nos clusters membros de uma frota. Use essa função para conceder acesso total a todos os recursos nos clusters membros. Por exemplo, um administrador de plataforma que precisa acessar vários namespaces nos clusters de membros.

Exemplo de atribuições de função

Você pode conceder funções RBAC do Azure usando a CLI do Azure. Por exemplo, para criar uma atribuição de função no escopo da Frota:

IDENTITY=$(az ad signed-in-user show --output tsv --query id)
FLEET_ID=$(az fleet show --resource-group $GROUP --name $FLEET --output tsv --query id)

az role assignment create \
    --role 'Azure Kubernetes Fleet Manager RBAC Reader' \
    --assignee "$IDENTITY" \
    --scope "$FLEET_ID"

Você também pode especificar o escopo das atribuições de função a um namespace gerenciado individual acrescentando /managedNamespaces/<managed-namespace> ao escopo da Fleet ID. Por exemplo, para criar uma atribuição de função no nível do namespace gerenciado para o namespace example-ns:

IDENTITY=$(az ad signed-in-user show --output tsv --query id)
FLEET_ID=$(az fleet show --resource-group $GROUP --name $FLEET --output tsv --query id)
MANAGED_NAMESPACE_NAME="example-ns"

az role assignment create --role 'Azure Kubernetes Fleet Manager RBAC Reader' --assignee "$IDENTITY" --scope "$FLEET_ID"/managedNamespaces/"$MANAGED_NAMESPACE_NAME"