Como criar TLS secreto no Kubernetes

Como Criar Tls Secreto No Kubernetes



Kubernetes é uma ferramenta de código aberto utilizada para executar e gerenciar aplicativos em contêineres dentro do cluster. Ele executa várias tarefas para controlar, executar e proteger as credenciais do aplicativo por meio de segredo e entrada.

O Ingress é usado para gerenciar o tráfego de entrada do aplicativo e também para encerramento de SSL. Por outro lado, os segredos são usados ​​para armazenar informações confidenciais e certificados TLS para aplicação.

Esta postagem irá ilustrar:







Quais são os segredos do Kubernetes?

Os segredos são um dos recursos do Kubernetes, usados ​​para armazenar informações confidenciais, como credenciais de login do usuário, chaves, certificados ou tokens. Os segredos podem ser criados individualmente e conectados a pods. Impede que o desenvolvedor forneça dados confidenciais em código e também fornece uma camada extra de segurança. Diferentes tipos de segredos podem ser criados e usados. Os segredos mais comumente usados ​​são:



Segredo genérico: Os segredos genéricos são utilizados para armazenar informações básicas, como senhas, tokens, chaves de API, chaves OAuth e assim por diante.



Segredo TLS: Os segredos TLS são usados ​​para armazenar chaves privadas e certificados assinados pela CA. Para garantir a segurança dos aplicativos executados no Kubernetes e proteger a comunicação dentro do cluster, o usuário geralmente precisa criar e incorporar segredos TLS ao pod.





Registro Docker: Ele é usado para armazenar a credencial de registro do docker para extrair facilmente as imagens do registro.

Pré-requisito: Gerar chave privada e certificado

Para criar o certificado e a chave privada para melhoria da segurança, utilize OpenSSL que cria o CSR (solicitação de assinatura de certificado) e a chave privada. Em seguida, use o CSR para gerar os certificados autoassinados ou CA.



Para utilizar os comandos OpenSSL no Windows, os usuários são obrigados a instalar o Git. Para tanto, siga nosso link “ Instale o git no Windows ' artigo.

Após instalar o git, siga as instruções abaixo para gerar uma chave privada e um certificado assinado.

Etapa 1: iniciar o terminal Git Bash

Faça uma busca por “ Git Bash ”No menu Iniciar e inicie o terminal:

Para verificar o diretório atual use o “ senha ”comando:

senha

Atualmente estamos trabalhando no diretório %USERPROFILE%:

Etapa 2: criar novo diretório

Crie um novo diretório para salvar os certificados e a chave privada:

mkdir certificado

Navegue até o diretório recém-criado usando o “ cd ”comando:

cd certificado

Etapa 3: gerar chave privada

Agora, gere a chave privada através do comando fornecido. Aqui, a chave privada gerada será salva em “ meucert.key ”:

chave genp do openssl -algoritmo RSA -fora meucert.key

Etapa 4: gerar CSR

Para gerar o CSR (solicitação de serviço de certificado) para obter um certificado assinado, use o comando fornecido:

solicitação de openssl -novo -chave meucert.key -fora meucert.csr

Etapa 5: gerar certificado

Por último, usando a chave privada gerada e o CSR, crie um certificado e salve-o no “ meucert.crt ' arquivo. Para isso, execute o comando abaixo:

OpenSSL x509 -req -em meucert.csr -chave de sinal meucert.key -fora meucert.crt -dias 365

Após gerar os certificados TLS, o usuário pode criar o TLS secreto seguindo a seção abaixo.

Como criar TLS secreto no Kubernetes?

Para garantir a segurança do aplicativo e a comunicação segura dentro e fora do cluster Kubernetes, os certificados TLS (Transport Layer Security) são essenciais e são usados ​​na criptografia de dados. O segredo do Kubernetes nos permite incorporar o certificado TLS com pods em execução por meio de TLS secreto. Para criar um TLS secreto no Kubernetes, siga as instruções a seguir.

Etapa 1: iniciar o cluster Minikube

Para iniciar o cluster minikube, primeiro inicie o Windows PowerShell como administrador. Depois disso, crie e execute o cluster usando o “ início do minikube ”comando:

início do minikube

Etapa 2: obter nós

Acesse o nó do Kubernetes para verificar se o cluster está iniciado ou não:

minikube obtém nós

Etapa 3: criar TLS secreto

Crie o segredo TLS no Kubernetes usando “ kubectl create secret –cert= –key= ” comando. Aqui, o tipo de segredo pode ser “ genérico ',' tls ', ou ' registro docker ”. Para criar um segredo TLS, definimos o tipo de segredo como “tls”:

kubectl criar segredo tls demo-secret --cert =C:\Usuários\Dell\cert\mycert.crt --chave =C:\Usuários\Dell\cert\mycert.key

Etapa 4: obtenha segredos

Para confirmação, liste o segredo do Kubernetes usando o comando fornecido:

kubectl obtém segredo

Aqui, você pode ver que criamos efetivamente um “ demonstração-secreta ' Isso contém ' 2 ”valores de dados:

Etapa 5: descreva o segredo

Para ver como os dados são visualizados ou armazenados em segredo, descreva o segredo usando o “ kubectl descreve segredo ”comando:

kubectl descreve segredo demo-secreto

Você pode ver que os valores são armazenados em bytes e não podem ser visualizados diretamente, ao contrário dos ConfigMaps do Kubernetes:

Como criar um TLS secreto por meio de arquivo Yaml?

Para criar um TLS secreto por meio de um arquivo yaml, primeiro crie um “ segredo.yml ”Arquivo, adicione o certificado codificado tls base64 no ' tls.crt ”E adicione o chave codificada em base64 no ' tls.key ”.

Para demonstração, siga as etapas listadas.

Etapa 1: criar arquivo Yaml

Crie um arquivo chamado “ segredo.yml ”E cole o código fornecido:

versão api : v1

dados
:

tls.crt
: 'certificado codificado em base64'

tls.key
: 'chave codificada em base64'

tipo
: Segredo

metadados
:

nome
: segredo-mytls

espaço para nome
: padrão

tipo
: kubernetes.io/tls

No snippet acima, substitua os valores-chave “tls.crt” e “tls.key” pelo seu certificado original e valores-chave:

Etapa 2: crie um segredo

Agora, aplique o arquivo yaml secreto por meio do “ kubectl apply -f ”comando:

aplicar kubectl -f segredo.yml

A saída mostra que criamos com sucesso o “ segredo-mytls ”usando o arquivo yaml:

Nota: Visualize o certificado TLS e a chave privada

Para visualizar o certificado codificado em base64 e usá-lo no arquivo yaml, execute o “ cat | base64 ”Comando no terminal git bash:

gato meucert.crt | base64

Para visualizar a chave codificada em base64, use “ cat | base64 ”comando:

gato meucert.key | base64

Como incorporar TLS secreto com pod Kubernetes?

Depois de criar o TSL secreto, o usuário pode incorporá-lo ao pod Kubernetes. Para fazer isso, use as instruções a seguir.

Etapa 1: criar arquivo Yaml

Faça um arquivo chamado “ pod.yml ”Arquivo e cole o trecho abaixo no arquivo:

versão api: v1

tipo: vagem

metadados:

nome: demo-pod

especificação:

containers:

- nome: html-cont

imagem: rafia098 / html-img: 1,0

envDe:

- segredoRef:

nome: demo-secret

No trecho acima:

  • tipo ”Especifica o recurso Kubernetes que o usuário está criando.
  • nome ”A tecla definirá o nome do pod.
  • containers ”A chave armazenará as informações do contêiner.
  • nome ” sob a chave “containers” definirá o nome do contêiner.
  • imagem ”A chave fornecerá a imagem do aplicativo ou contêiner para criar e iniciar o aplicativo dentro do contêiner.
  • ambienteDe ”A chave definirá a variável de ambiente de outros recursos do Kubernetes. Aqui, para incorporar o TLS secreto em um pod, “ segredoRef ”É usado para fornecer uma referência secreta. Para incorporar o TLS secreto acima, especifique o nome do segredo na chave “nome”.

Etapa 2: criar ou atualizar o pod

Em seguida, abra a pasta onde está o “ pod.yml ”O arquivo é criado:

cd C:\Users\Dell\Documents\Kubernetes\Secret

Aplique o arquivo yaml para criar ou reconfigurar o pod usando o “ aplicar kubectl ”comando:

aplicar kubectl -f pod.yml

Etapa 3: acessar pods do Kubernetes

Para verificação, liste os pods do Kubernetes:

kubectl obter pod

Aqui, você pode ver que criamos o “ pod de demonstração ”com sucesso:

Etapa 4: descreva o pod

Para verificar se o pod incorporou o TLS secreto ou não, descreva o pod usando o comando abaixo:

kubectl descreve pod demo-pod

A saída abaixo mostra que incorporamos com sucesso o segredo TLS ao pod:

Abordamos como criar TLS secreto e incorporá-lo ao aplicativo Kubernetes em execução no pod.

Conclusão

Para criar o TLS secreto no Kubernetes, primeiro crie o certificado assinado TLS e a chave privada. Depois disso, inicie o cluster Kubernetes e execute o “ kubectl create secret –cert= –key= ” comando. Os usuários também podem criar o TLS secreto usando o manifesto yaml. Esta postagem ilustrou como criar o TLS secreto e como incorporar o segredo a um aplicativo ou pod em execução.