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>
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.
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
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.