Existe alguma outra forma em que a senha sensíveis de banco de dados não fiquem declarativa no arquivo de .yaml?
Existe alguma outra forma em que a senha sensíveis de banco de dados não fiquem declarativa no arquivo de .yaml?
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:
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
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?