Qual é o papel do RBAC em Kubernetes?
O controle de acesso baseado em função é referido como RBAC em Kubernetes. Em Kubernetes, o método de controle de acesso baseado em função (RBAC) cria regras de controle de acesso que especificam quais usuários podem acessar quais recursos em um cluster. O RBAC é implementado por funções e ligações de função. Em Kubernetes, as funções de RBAC embutidas são clusterrole, função e serviceAccount. A função de cluster pode ser distribuída por todo o cluster. O papel conhecido como o papel pode receber um espaço para nome. Cada conta de serviço em um espaço para nome tem uma função interna definida automaticamente para isso.
Pré-requisitos
A versão mais recente do Ubuntu está instalada no seu sistema e instalada na caixa virtual no sistema, então executa uma versão de suporte do Ubuntu na caixa virtual paralela ao sistema operacional Windows. O sistema de usuários é um sistema operacional de 64 bits que executa ambos os sistemas operacionais com eficiência. Após a instalação do sistema operacional, o usuário deve ter uma idéia de Kubernetes, a linha de comando Kubectl e os arquivos ou vagens YAML e o usuário devem ter uma idéia de clusters em Kubernetes.
Vamos explicar o processo passo a passo aqui.
Etapa 1: Iniciar o cluster Kubernetes
Nesta etapa, iniciaremos os Kubernetes executando um minikube. Minikube é aglomerado em um Kubernetes que roda na máquina local. Executamos o comando para iniciar o Minikube:
kalsoom@kalsoom-virtualbox> Minikube IniciarPressione Enter e o minikube é iniciado após o comando ser executado com sucesso. Conforme mostrado na captura de tela fornecida aqui:
Iniciar 2: Crie um espaço para nome em Kubernetes
Nesta etapa, criaremos um espaço para nome em Kubernetes usando a linha de comando Kubectl. Nós executamos o comando:
kalsoom@kalsoom-virtualbox> kubectl Criar namespace k8bossApós a execução do comando, um espaço para nome com o nome K8boss é criado com sucesso em nosso aplicativo Kubernetes. Podemos usar um espaço para nome para separar os recursos dentro do cluster e gerenciar o acesso a esses recursos usando o RBAC.
Etapa 3: Crie uma função personalizada do RBAC em Kubernetes
Nesta etapa, criaremos uma função personalizada em Kubernetes facilmente com a ajuda do comando. Nós executamos o comando:
kalsoom@kalsoom -virtualbox> kubectl Crie função My -Custom -role - - verb = list - - Resource = Pods - - Namespace K8bossO papel é criado com sucesso após a execução do comando. Nesse caso, um novo papel com um nome e autoridade específica foi criado no espaço para nome K8boss.
Etapa 4: descreva verbos e recursos na função
Nesta etapa, aprenderemos como descrevemos verbos e recursos em funções, conforme definido na etapa acima.
kalsoom@kalsoom -virtualbox> kubectl Crie função My -Custom -role - - verb = list - - verb = get - - Resource = pods - - Resource = Services - - Namespace K8bossQuando executamos o comando, ele exibe a saída que a função é criada com verbos e recursos. No nosso caso, criamos o papel. Então, uma mensagem de erro é exibida.
Etapa 5: Crie uma função de conta de serviço em Kubernetes
Nesta etapa, discutiremos a função de conta de serviço em Kubernetes. Vamos executar o comando para criar uma conta de serviço:
kalsoom@kalsoom-virtualbox> kubectl Crie serviceaccount custom-sa -n k8bossO nome do serviço como 'Custom-SA' é criado com sucesso em Kubernetes após a execução do comando. Os processos internos do cluster de Kubernetes podem receber autorização, autenticando -os com a ajuda da conta de serviço, que também serve como um meio de fazê -lo.
Etapa 6: buscar detalhes da função de conta de serviço
Nesta etapa, queremos obter a lista de funções da conta de serviço no RBAC Kubernetes e o nome da conta de serviço é 'Custom-SA' no espaço de nome 'K8boss'. Nós executamos o comando aqui:
kalsoom@kalsoom -virtualbox> kubectl get sa personaliza -sa -n k8boss -o yamlApós a execução, este comando nos retorna uma vagem na qual as informações sobre a conta de serviço são armazenadas como tipo, metadados, nome, espaço para nome, recursos, etc.
Etapa 7: Verifique a lista de função da conta de serviço
Nesta etapa, verificaremos se a conta de serviço tem o verbo da lista na vagem. Se a conta de serviço tiver as permissões necessárias, o comando retornará um valor de 'sim'; Caso contrário, ele retorna um valor de 'não'. Executamos o comando para verificar o status:
kalsoom@kalsoom -virtualbox> kubectl auth lata -i list vods - -as = system: serviceAccount: k8boss: custom -sa -n k8bossQuando o comando é executado, mostra que a saída é 'não', como mostrado na captura de tela acima, o que significa que a conta de serviço não possui a permissão necessária. Aqui, Kubectl 'Can -i' é usado para verificar a permissão concedida à conta de serviço.
Etapa 8: Crie um papel de ligação a função no RBAC Kubernetes
Nesta etapa, discutiremos a ligação de papéis em Kubernetes. Nós executamos o comando:
kalsoom@kalsoom-virtualbox> kubectl Crie função de my-cu-role-role--função = my-custom-role--serviceAccount = k8bossDepois de executar o comando, a função vinculada ao nome 'My-Custom-Bolding' é criada com sucesso, como visto na captura de tela acima mencionada que vincula o papel à conta de serviço 'K8boss'. A ligação da função concederá as permissões definidas na função da conta de serviço, permitindo que ela execute certas ações dentro do cluster.
Etapa 9: Crie um cluster de ligação a função no cluster Kubernetes
Nesta etapa, criamos um cluster de ligação à função com a ajuda da linha de comando Kubectl. Nós executamos o comando:
kalsoom@kalsoom-virtualbox> kubectl Crie clusterRoleBinding My-Custom-clusterrole-binding--clusterRole = My-Custom-cluster-Role--ServiceAcCount = K8boss: Custom.SAQuando o comando é executado, a ligação à função de cluster é criada em um momento. Usando este comando, uma função de cluster pode ser anexada a uma conta de serviço de namespace específica.
Etapa 10- Verifique a permissão para pods
Nisso, verificamos a permissão da conta de serviço no espaço para nome K8boss. Nós executamos o comando:
kalsoom@kalsoom -virtualbox> kubectl auth lata -i list vods - - como = sistema.ServiceAcount: K8boss: Cutom -Sa -n K8bossQuando o comando é executado, ele retorna uma saída sim. Isso significa que este pod tem permissão para executar uma ação específica em Kubernetes.
Conclusão
Aprendemos sobre os diferentes papéis do RBAC em Kubernetes. Mencionamos informações sobre o que é RBAC e como esse conceito é usado em Kubernetes. Todas as informações são apresentadas em detalhes e as capturas de tela relevantes também são. Você pode praticar papéis de RBAC em seu aplicativo com exemplos para melhor compreensão.