Controle de acesso baseado em função do Kubernetes em seu dispositivo GPU Azure Stack Edge Pro

APLICA-SE A: Sim para Pro GPU SKUAzure Stack Edge Pro - GPUSim para Pro 2 SKUAzure Stack Edge Pro 2Sim para Pro R SKUAzure Stack Edge Pro RSim para Mini R SKUAzure Stack Edge Mini R

No dispositivo Azure Stack Edge Pro, quando você configura a função de computação, um cluster Kubernetes é criado. Você pode usar o controle de acesso baseado em função do Kubernetes (Kubernetes RBAC) para limitar o acesso aos recursos do cluster em seu dispositivo.

Este artigo fornece uma visão geral do sistema RBAC do Kubernetes fornecido pelo Kubernetes e como o RBAC do Kubernetes é implementado em seu dispositivo Azure Stack Edge Pro.

RBAC do Kubernetes

O Kubernetes RBAC permite atribuir aos usuários, ou grupos de usuários, permissão para fazer coisas como criar ou modificar recursos ou exibir logs de cargas de trabalho de aplicativos em execução. Essas permissões podem ter como escopo um único namespace ou ser concedidas em todo o cluster.

Quando você configura o cluster do Kubernetes, um único usuário é criado correspondente a esse cluster e é chamado de usuário administrador do cluster. Um kubeconfig arquivo está associado ao usuário administrador do cluster. O kubeconfig arquivo é um arquivo de texto que contém todas as informações de configuração necessárias para se conectar ao cluster para autenticar o usuário.

Tipos de namespaces

Os recursos do Kubernetes, como pods e implantações, são agrupados logicamente em um namespace. Esses agrupamentos fornecem uma maneira de dividir logicamente um cluster do Kubernetes e restringir o acesso para criar, exibir ou gerenciar recursos. Os utilizadores só podem interagir com recursos dentro dos espaços de nomes atribuídos.

Os namespaces destinam-se ao uso em ambientes com muitos usuários espalhados por várias equipes ou projetos. Para obter mais informações, consulte Namespaces do Kubernetes.

Seu dispositivo Azure Stack Edge Pro tem os seguintes namespaces:

  • Namespace do sistema - Este namespace é onde existem recursos principais, como recursos de rede, como DNS e proxy, ou o painel do Kubernetes. Normalmente, não implementa as suas próprias aplicações neste espaço de nomes. Use este namespace para depurar quaisquer problemas de cluster do Kubernetes.

    Há vários namespaces de sistema em seu dispositivo e os nomes correspondentes a esses namespaces de sistema são reservados. Aqui está uma lista dos namespaces de sistema reservados:

    • kube-system
    • sistema metallb
    • dbe-namespace
    • default
    • kubernetes-dashboard
    • kube-node-lease
    • kube-public

    Certifique-se de não usar nomes reservados para namespaces de usuário que você criar.

  • User namespace - Estes são os namespaces que você pode criar via kubectl ou através da interface PowerShell do dispositivo para implantar aplicativos localmente.

  • Namespace do IoT Edge - Você se conecta a esse iotedge namespace para gerenciar aplicativos implantados via IoT Edge.

  • Azure Arc namespace - Você se conecta a esse azure-arc namespace para gerenciar aplicativos implantados por meio do Azure Arc. Com o Azure Arc, você também pode implantar aplicativos em outros namespaces de usuário.

Namespaces e usuários

No mundo real, é importante dividir o cluster em vários namespaces.

  • Vários usuários: se você tiver vários usuários, vários namespaces permitirão que esses usuários implantem seus aplicativos e serviços em seus namespaces específicos isoladamente uns dos outros.
  • Usuário único: mesmo que haja um único usuário, vários namespaces permitiriam que esse usuário executasse várias versões dos aplicativos no mesmo cluster do Kubernetes.

Funções e RoleBindings

O Kubernetes tem o conceito de vinculação de função e função que permite dar permissões a usuários ou recursos em um nível de namespace e em um nível de cluster.

  • Funções: Você pode definir permissões para usuários como uma Função e, em seguida, usar Funções para conceder permissões dentro de um namespace.
  • RoleBindings: Depois de definir as funções, você pode usar RoleBindings para atribuir funções para um determinado namespace.

Essa abordagem permite segregar logicamente um único cluster Kubernetes, com os usuários só podendo acessar os recursos do aplicativo em seu namespace atribuído.

RBAC do Kubernetes no Azure Stack Edge Pro

Na implementação atual do Kubernetes RBAC, o Azure Stack Edge Pro permite que você execute as seguintes ações de um espaço de execução restrito do PowerShell:

  • Crie namespaces.
  • Crie usuários adicionais.
  • Conceda acesso de administrador aos namespaces que você criou. Lembre-se de que você não terá acesso à função de administrador de cluster ou a uma exibição dos recursos de todo o cluster.
  • Obtenha kubeconfig um arquivo com informações para acessar o cluster do Kubernetes.

O dispositivo Azure Stack Edge Pro tem vários namespaces de sistema e você pode criar namespaces de usuário com kubeconfig arquivos para acessar esses namespaces. Os usuários têm controle total sobre esses namespaces e podem criar ou modificar usuários, ou conceder acesso aos usuários. Somente o administrador de cluster tem acesso total aos namespaces do sistema e aos recursos de todo o cluster. Um aseuser tem acesso somente leitura aos namespaces do sistema.

Aqui está um diagrama que descreve a implementação do Kubernetes RBAC no dispositivo Azure Stack Edge Pro.

RBAC do Kubernetes no dispositivo Azure Stack Edge Pro

Neste diagrama, Alice, Bob e Chuck têm acesso apenas aos namespaces de usuário atribuídos, que neste caso são ns1, ns2e ns3 respectivamente. Dentro desses namespaces, eles têm acesso de administrador. O administrador de cluster, por outro lado, tem acesso de administrador a namespaces do sistema e recursos de todo o cluster.

Como usuário, você pode criar namespaces e usuários, atribuir usuários a namespaces ou baixar kubeconfig arquivos. Para obter instruções detalhadas passo a passo, vá para Acessar cluster Kubernetes via kuebctl em seu Azure Stack Edge Pro.

Ao trabalhar com namespaces e usuários em seus dispositivos Azure Stack Edge Pro, as seguintes advertências se aplicam:

  • Você não tem permissão para executar quaisquer operações, como criar usuários, conceder ou revogar acesso de namespace ao usuário, para qualquer um dos namespaces do sistema. Exemplos de namespaces do sistema incluem kube-system, metallb-system, kubernetes-dashboard, default, kube-node-lease, kube-public. Os namespaces do sistema também incluem os namespaces reservados para tipos de implantação, como iotedge (namespace IoT Edge) e azure-arc (namespace Azure Arc).
  • Você pode criar namespaces de usuário e, dentro desses namespaces, criar usuários adicionais e conceder ou revogar acesso de namespace a esses usuários.
  • Você não tem permissão para criar namespaces com nomes idênticos aos de qualquer namespace do sistema. Os nomes dos namespaces do sistema são reservados.
  • Você não tem permissão para criar namespaces de usuário com nomes que já estão em uso por outros namespaces de usuário. Por exemplo, se você tiver um test-ns que você criou, você não pode criar outro test-ns namespace.
  • Você não tem permissão para criar usuários com nomes que já estão reservados. Por exemplo, aseuser é um usuário reservado e não pode ser usado.

Próximos passos

Para entender como você pode criar um usuário, criar um namespace e conceder acesso ao namespace, consulte Acessar um cluster Kubernetes via kubectl.