Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Projeto] Definir senha em varável de ambiente

Existe alguma outra forma em que a senha sensíveis de banco de dados não fiquem declarativa no arquivo de .yaml?

2 respostas
solução!

Olá, Joel!

No Kubernetes, uma prática comum para lidar com informações sensíveis como senhas de banco de dados é utilizar os objetos chamados "Secrets".

Os Secrets permitem que você armazene e gerencie informações sensíveis de forma segura. Em vez de declarar a senha diretamente no arquivo YAML, você pode criar um Secret e referenciá-lo no seu Pod. Aqui está um exemplo de como você pode fazer isso:

  1. Crie um Secret: Você pode criar um Secret usando o comando kubectl ou através de um arquivo YAML. Aqui está um exemplo de como criar um Secret a partir da linha de comando:

    kubectl create secret generic my-database-secret --from-literal=MYSQL_ROOT_PASSWORD=q1w2e3r4
    
  2. Referencie o Secret no seu Pod: No arquivo de definição do Pod, você pode referenciar o Secret nas variáveis de ambiente. Veja um exemplo de como fazer isso:

    apiVersion: v1
    kind: Pod
    metadata:
      name: my-pod
    spec:
      containers:
      - name: my-container
        image: mysql
        env:
        - name: MYSQL_ROOT_PASSWORD
          valueFrom:
            secretKeyRef:
              name: my-database-secret
              key: MYSQL_ROOT_PASSWORD
    

Dessa forma, a senha não fica exposta diretamente no arquivo de configuração, e você ainda consegue passá-la para o container através do Secret.

Bons estudos!

Obrigado! Em ambiente de produção, existe alguma outra forma de criar ou gerenciar esses secrets? Ou a galera costuma mesmo criar via comando dentro do servidor onde a aplicação será hospedada?