secretTutorial - basedosdados/iac Wiki

Mudando secret

Para mudar o secret de um Agente do Kubernetes é preciso seguir os seguintes passos:

  1. Abrir o Lens: Configurations-> Secrets

Nessa visualização, é possível ver os secrets codificados duplamente com base64. Para visualizar o valor de um secret, basta rodar:

cd utils
python main.py double-decode-base64 [secret_code]

Onde secret_code é o valor codificado que aparece no Lens.

  1. Criar um arquivo secret_0X.yaml

Este arquivo servirá de base para a criação do arquivo criptografado que vamos subir para o agente. Este arquivo não deve ser commitado. O valor de X depende do secret que você quer substituimr. Por exemplo, se o arquivo a ser substituido chama-se secret-01_sealed.yaml, então o arquivo temporário que servirá de base para criptografia será chamado secret_01.yaml.

O arquivo temporário deve seguir um template similar ao seguinte (ver mais detalhes em documentação ):

apiVersion: v1
kind: Secret
metadata:
  name: gcp-credentials
  namespace: prefect-agent-basedosdados-perguntas
data:
  BASEDOSDADOS_CONFIG: XXXXX
  BASEDOSDADOS_CREDENTIALS_PROD: XXXX
  BASEDOSDADOS_CREDENTIALS_STAGING: XXXX
  1. Edita valor do secret em secret_0X.yaml

Para edição do valor do secret siga os seguintes passos:

  1. Imprimir valor do secret atual no terminal
  2. Edita o valor conforme necessidade
  3. Codifica o novo valor usando base64 duplamente

Use o novo código gerado pelo passo 3 para substituir os valores no template.

  1. Criptografar novo secret

Para este passo, basta rodar*:

kubeseal -f secret_01.yaml -w `secret_01-sealed.yaml` -o yaml
  1. Subir alterações no Agent

Para este passo, basta rodar:

kubectl apply -f secret_01-sealed.yaml
  • Para este passo, é preciso instalar o kubeseal, ver orientações aqui