Como integrar o senhasegura ao Kubernetes

Pré-requisitos

Instalação do docker

Instalação do kubectl

Instalação do minikube para cluster kubernetes local

Instalação do Helm

O passo a passo abaixo irá abordar o uso do external secrets integrado ao DSM de forma prática, em um ambiente de laboratório controlado. Portanto, avalie com cuidado os pacotes instalados neste artigo em seu ambiente.

Instalação do kubectl:

Instalação do minikube:

Instalação do Helm:

snap install helm --classic

Configuração Inicial

1- Inicie o cluster kubernetes localmente

minikube start

Caso tenha um erro de execução tente usar o parâmetro “–driver”

minikube start –driver=docker

Valide o sucesso da criação do ambiente kubernetes com:

kubectl cluster-info

2- Adicione o repositório do external secrets

helm repo add external-secrets https://charts.external-secrets.io

Fonte: Getting started - External Secrets Operator

3- Instale o external secrets

helm install external-secrets external-secrets/external-secrets -n external-secrets --create-namespace # --set installCRDs=true

Fonte: Getting started - External Secrets Operator

4- Valide a instalação do do external secrets

kubectl get po -A

Configuração dos arquivos de comunicação

Seguiremos a documentação abaixo para criarmos e publicarmos o arquivo de configuração, SecretStore e ExternalSecret.

https://external-secrets.io/v0.6.1/provider/senhasegura-dsm/

1- Autenticação

Crie o arquivo de configuração que irá conter o cliente secret criado no senhasegura.

---
apiVersion: v1
kind: Secret
metadata:
  name: senhasegura-dsm-auth
stringData:
  CLIENT_SECRET: "CHANGEME"

CHANGEME → Substitua pelo cliente secret da aplicação criada na interface do senhasegura.

Aplique o arquivo de configuração

kubectl apply -f <nome do arquivo>

image

2- Crie um SecretSore

kind: SecretStore
metadata:
  name: senhasegura
spec:
  provider:
    senhasegura:
      url: "CHANGEME_URL"
      module: DSM # Select senhasegura DSM module to sync secrets
      auth:
        clientId: "CHANGEME_ID"
        clientSecretSecretRef:
          #ACESSA O ARQUIVO DE AUTH e pega a chave respectiva
          name: senhasegura-dsm-auth
          key: CLIENT_SECRET
      ignoreSslCertificate: true # Optional

CHANGEME_URL → Insira a URL do senhasegura
CHANGEME_ID → Substitua pelo cliente ID da aplicação criada na interface do senhasegura.

image

3- Crie um external secrets

---
apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret
metadata:
  name: senhaseguraexecutor
spec:
  refreshInterval: "30s"
  secretStoreRef:
    name: senhasegura
    kind: SecretStore
  target:
    name: senhasegurasecret
  data:
  # Define API_SETTINGS Kubernetes Secret key, with json-encoded values from senhasegura secret with identifier "api-settings"
  - secretKey: CHANGEME
    remoteRef:
      key: CHANGEME_NAME # Secret Identifier in senhasegura
      property: CHANGEME_KEY # Optional, Key name within secret

CHANGEME → nome da secret no external secrets
CHANGEME_NAME → nome da secret no senhasegura
CHANGEME_KEY → caso seja necessário obter o valor de uma chave específica

image

Visualizando os dados da secrets do senhasegura no External secrets

1- Valide a sincronização das informações

2- Obtenha o conteúdo da secret

Observe que existe o valor “data” onde nele está o nome da secret atribuído no passo 3 de configuração de autenticação.

Realize o bae64 decode do valor da chave para visualizá-lo em texto claro.

Utilize o documento abaixo para melhor utilizar a secrets em seu ambiente.

1 Like