Controle de acesso baseado em função em seu dispositivo GPU do Azure Stack Edge Pro
APLICA-SE A:Azure Stack Edge Pro - GPUAzure Stack Edge Pro 2Azure Stack Edge Pro R Azure Stack Edge Mini R
No dispositivo do Azure Stack Edge Pro, quando você configura uma função de computação, um cluster do Kubernetes é criado. Você pode usar o RBAC (controle de acesso baseado em função) do Kubernetes para limitar o acesso aos recursos de 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 do Azure Stack Edge Pro.
RBAC do Kubernetes
O RBAC do Kubernetes permite que você atribua a usuários ou grupos de usuários a permissão para fazer coisas como criar ou modificar os recursos ou visualizar logs de cargas de trabalho de aplicativo em execução. Essas permissões podem ter escopo de um único namespace ou concedidas em todo o cluster.
Quando você configura o cluster Kubernetes, um único usuário é criado correspondente a esse cluster e é chamado de usuário administrador do cluster. Um arquivo kubeconfig
é associado ao usuário administrador do cluster. O arquivo kubeconfig
é um arquivo de texto que contém todas as informações de configuração necessárias para conectar ao cluster para autenticar o usuário.
Tipos de namespaces
Os recursos do Kubernetes, como pods e implantações, são logicamente agrupados em um namespace. Esses agrupamentos proporcionam uma forma de dividir logicamente um cluster Kubernetes e restringir o acesso para criar, exibir ou gerenciar recursos. Os usuários podem interagir apenas com recursos dentro de seus namespaces atribuídos.
Os namespaces destinam-se ao uso em ambientes com muitos usuários distribuídos em várias equipes ou projetos. Para obter mais informações, consulte Kubernetes namespaces.
O dispositivo do Azure Stack Edge Pro tem os seguintes namespaces:
Namespace do sistema – Este namespace é o local em que os recursos principais existem, como recursos de rede como DNS e proxy ou o painel do Kubernetes. Normalmente, você não implantar seus próprios aplicativos para esse namespace. Use esse namespace para depurar problemas de cluster do Kubernetes.
Há vários namespaces do sistema em seu dispositivo e os nomes correspondentes a esses namespaces do sistema são reservados. Aqui está uma lista dos namespaces reservados do sistema:
- kube-system
- metallb-system
- dbe-namespace
- default
- kubernetes-dashboard
- kube-node-lease
- kube-public
Não use nenhum nome reservado para namespaces de usuário que você criar.
Namespace do usuário – Esses são os namespaces que você pode criar por meio do kubectl ou da interface do PowerShell do dispositivo para implantar aplicativos localmente.
Namespace do IoT Edge – Você se conecta a esse namespace
iotedge
para gerenciar aplicativos implantados por meio do IoT Edge.Namespace do Azure Arc – Você se conecta a esse namespace
azure-arc
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 se houver um único usuário, vários namespaces permitirão que esse usuário execute várias versões dos aplicativos no mesmo cluster do Kubernetes.
ClusterRoles e RoleBindings
O Kubernetes tem o conceito de função e associação de função que permite que você dê permissões a usuários ou recursos no nível do namespace e no nível do cluster.
- Funções: você pode definir permissões para os usuários como uma Função e, em seguida, usar Funções para conceder permissões em um namespace.
- RoleBindings: depois de definir as funções, você pode usar RoleBindings para atribuir funções para um determinado namespace.
Essa abordagem permite separar logicamente um único cluster do Kubernetes, com os usuários que só podem acessar os recursos do aplicativo no namespace atribuído a eles.
RBAC do Kubernetes no Azure Stack Edge Pro
Na implementação atual do RBAC do Kubernetes, o Azure Stack Edge Pro permite que você execute as seguintes ações em um runspace restrito do PowerShell:
- Criar namespaces.
- Criar mais usuários.
- Conceder a você o acesso de administrador aos namespaces que você criou. Tenha em mente que você não terá acesso à função de administrador de cluster ou a uma exibição dos recursos em todo o cluster.
- Obter o arquivo
kubeconfig
com informações para acessar o cluster do Kubernetes.
O dispositivo do Azure Stack Edge Pro tem vários namespaces do sistema e você pode criar namespaces de usuário com arquivos kubeconfig
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 do cluster tem acesso total aos namespaces do sistema e a recursos em todo o cluster. Um aseuser
tem acesso somente leitura aos namespaces do sistema.
Aqui está um diagrama que ilustra a implementação do RBAC do Kubernetes no dispositivo do Azure Stack Edge Pro.
Neste diagrama, Alice, Bob e Chuck têm acesso somente aos namespaces de usuário atribuídos, que, nesse caso, são ns1
, ns2
e ns3
respectivamente. Nesses namespaces, eles têm acesso de administrador. O administrador do cluster, por outro lado, tem acesso de administrador aos namespaces do sistema e aos recursos em todo o cluster.
Como um usuário, você pode criar namespaces e usuários, atribuir usuários a namespaces ou baixar arquivos kubeconfig
. Para obter instruções passo a passo detalhadas, vá para Acessar cluster Kubernetes via kuebctl em seu Azure Stack Edge Pro.
Ao trabalhar com namespaces e usuários em seus dispositivos do Azure Stack Edge Pro, as seguintes advertências se aplicam:
- Você não tem permissão para executar operações como criar usuários, conceder ou revogar o acesso ao 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
ekube-public
. Os namespaces do sistema também incluem os namespaces reservados para tipos de implantação, comoiotedge
(namespace do IoT Edge) eazure-arc
(namespace do Azure Arc). - Você pode criar namespaces de usuário e, dentro desses namespaces, criar usuários adicionais e conceder ou revogar o acesso desses usuários ao namespace.
- 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á estejam em uso por outros namespaces de usuário. Por exemplo, se você tiver um
test-ns
que você criou, não poderá criar outro namespacetest-ns
. - Você não tem permissão para criar usuários com nomes que já estejam reservados. Por exemplo,
aseuser
é um usuário reservado e não pode ser usado.
Próximas etapas
Para entender como você faz para criar um usuário, criar um namespace e conceder acesso do usuário ao namespace, confira Acessar um cluster Kubernetes por meio de kubectl.