Configurar a admissão de segurança do POD em Kubernetes

Configurar a admissão de segurança do POD em Kubernetes
A admissão de segurança de pod em Kubernetes é um recurso que fornece recursos de segurança em vagens em execução em um espaço para nome. Os padrões nos permitem colocar restrições ao comportamento das vagens de forma simples e consistente. Neste guia, estamos prestes a podar a administração de segurança. Aprenderemos a configurar a segurança do POD em vagens em execução em um espaço para nome com a ajuda de um cenário básico.

O que é a admissão de segurança de pod em Kubernetes?

Para aplicar os padrões de segurança de pods em vagens em execução em um espaço para nome, Kubernetes v1.22 tem um controlador de admissão integrado chamado POD Security Admission. Esses padrões são usados ​​para definir isenções e padrões em todo o cluster. Para configurar a admissão de segurança de pod, você deve ter um mínimo de V1.22 Kubernetes e PodSecurity Feature Gate habilitado. Lançamento alfa de Kubernetes v1.22 tem POD Security Policy (PSP), que foi descontinuado em Kubernetes V1.25. Agora, o aprimoramento da Política de Segurança de Pod (PSP) é conhecida como admissão de segurança de pod (PSA). Ao contrário da Política de Segurança de Pod, a Admissão de Segurança em Pod não suporta recursos de mutação, no entanto, valida o controlador de admissão.

Além disso, os padrões de segurança do POD definiram três níveis para admissão de segurança de pod: linha de base, restrita e privilegiada. Esses níveis são colocados em um contexto de segurança de uma vagem e vários outros campos pela admissão de segurança de pods. Depois de configurar o modo de controle de admissão para segurança de pod para cada espaço para nome, você pode definir o espaço para nome para especificar que o modo. O conjunto de rótulos fornecidos pela Kubernetes permite que você escolha qualquer nível padrão de segurança do pod para um espaço para nome. Agora, vamos aprender a configurar a admissão de segurança do POD com a ajuda de um exemplo simples.

Pré -requisitos

Antes de avançar, verifique se você possui essas ferramentas básicas instaladas e os recursos necessários ativados:

  • Ubuntu 22.04 ou qualquer outra versão mais recente
  • Kubernetes Cluster v1.22 com -feature -gates = “… .,Podsecurity = true ”sinalizador ativado
  • Cluster Minikube
  • Ferramenta de linha de comando kubectl

Depois de configurar essas ferramentas em seu sistema, você está pronto para configurar a admissão de segurança de pod em Kubernetes. Passando para a seção de implementação, assumindo que você já instalou todos esses pré -requisitos.

Como configurar a admissão de segurança de pods?

Siga as etapas fornecidas abaixo e configure facilmente a admissão de segurança do POD em Kubernetes para o seu sistema.

Etapa 1: Inicie Kubernetes

Primeiro, precisamos do cluster do Minikube em funcionamento. Então, para isso, usaremos o comando dado abaixo para iniciá -lo corretamente:

> Minikube Start

Este comando garante que o cluster Minikube esteja funcionando para que você possa implementar seu comando e executar aplicativos no cluster.

Etapa 2: Aplicar a admissão de segurança da POD com implantação

Existem três níveis definidos pelos padrões de segurança de pod: linha de base, privilégio e restrito. Aqui, aplicaremos uma admissão de segurança em POD em dois níveis de padrões de segurança de pod, privilegiados e restritos.

Etapa 2 (a): Crie espaços de nome para pods

Primeiro, criaremos dois espaços de nome. O primeiro namespace será criado com a política privilegiada usando o comando abaixo:

> Kubectl Criar namespace test-privilegiado

O segundo espaço para nome será criado com a política restrita, usando o comando abaixo:

> Kubectl Criar namespace Testes Restrito

Etapa 2 (b): Defina os padrões de segurança nos namespaces

Agora, precisamos definir padrões de segurança para os namespaces que criamos na etapa anterior. Para definir o padrão de segurança para a política privilegiada, estamos usando o comando abaixo:

> Rótulo de Kubectl-Overwrite NS-Segurança de POD-Segurança de Teste NS.Kubernetes.io/exforce = segurança privilegiada.Kubernetes.io/warn = privilegiado

Estamos usando o comando abaixo para definir o padrão de segurança para a política limitada:

> Rótulo de Kubectl-Overwrite NS Restrito de teste de segurança.Kubernetes.io/exforce = segurança restrita de poda.Kubernetes.io/warn = restrito

Esses padrões permitirão que os namespaces bloquearão qualquer vagem em execução e enviarão um aviso ao usuário se algum pod tentar executar no caso de não cumprir a política configurada. Agora, vamos tentar implantar pods no espaço de nome para verificar qual resultado obtemos.

Etapa 3: Implante vagens em namespaces

Os namespaces foram criados e os padrões de segurança são definidos neles. Então, vamos implantar pods nesses namespaces administrados por segurança de pods.

Etapa nº 3 (a): Tentativa de implantar pods

Primeiro, estamos implantando pods na política privilegiada usando o comando dado abaixo:

kalsoom@kalsoom-virtualbox> kubectl Aplicar-Namespace test-privileged -f https: // raw.GithubUserContent.com/azure-amostras/azul-voting-app-redis/master/azure-vote-all-in-one-redis.Yaml

Segundo, usando o comando fornecido abaixo, estamos implantando pods na política privilegiada:

Kalsoom@kalsoom-virtualbox> kubectl Aplicar-Namespace Test Restrito -f https: // RAW.GithubUserContent.com/azure-amostras/azul-voting-app-redis/master/azure-vote-all-in-one-redis.Yaml

Quando tentamos implantar pods na política limitada, foi gerado um aviso, como pode ser visto. Como os pods estão violando a política configurada, esse aviso foi gerado. Não há aviso gerado para a política privilegiada, porque nenhuma vagem está violando a política configurada.

Etapa 3 (b): Verifique as vagens em execução em namespaces

Agora, vamos verificar se há algum pod em nome de nome ou não. Primeiro, verificaremos a política privilegiada com o seguinte comando:

> Kubectl Get Pods -Namespace test -privilegiado

Observe que alguns pods estão em execução no espaço de nome. Não houve avisos gerados para a política privilegiada, o que significa que algumas vagens estão sendo executadas no espaço de nome que não violam a política configurada. Agora, vamos verificar se há algum pod em nome de nome restrito com o seguinte comando:

> Kubectl Get Pods -Namespace Restrito de teste

Não há pods em execução no espaço de nome restrito. Lembre -se de que recebemos o aviso de que alguns pods violaram a política configurada na etapa anterior.

Etapa 4: Exclua o espaço para nome

O último passo é excluir os namespaces que criamos. Use o comando fornecido abaixo para excluir os espaços para nome:

> Kubectl Exclua nome de namespace restrito a testes-privilegiados

Este comando excluirá os dois namespaces do cluster.

Conclusão

Neste artigo, fornecemos diretrizes sobre a admissão de segurança de pod (PSA) em Kubernetes. Exploramos o que é uma admissão de segurança em Kubernetes. Também aprendemos a configurar a admissão de segurança de pod em Kubernetes para os pods em execução em um espaço para nome. Ao demonstrar um cenário simples, demonstramos como configurar facilmente a admissão de segurança de pod para os pods que executam em diferentes namespaces.