Read this article in English.
A criptografia do etcd no OpenShift Container Platform protege os dados sensíveis armazenados no cluster. Neste artigo, apresento os tipos suportados, os recursos protegidos e o processo para habilitar a configuração.
🔐 Tipos de criptografia suportados
O OpenShift suporta dois métodos de criptografia para os dados do etcd:
AES-CBC
- Utiliza AES-CBC com padding PKCS#7 e uma chave de 32 bytes.
- As chaves de criptografia passam por rotação semanal.
AES-GCM
- Utiliza AES-GCM com nonce aleatório e uma chave de 32 bytes.
- As chaves de criptografia passam por rotação semanal.
🔎 Sobre a criptografia do etcd
Por padrão, os dados do etcd no OpenShift não são criptografados. Habilitar essa proteção adiciona uma camada de segurança para evitar a exposição de informações sensíveis caso um backup seja comprometido.
Recursos protegidos pela criptografia do etcd:
✔ Secrets✔ ConfigMaps✔ Routes✔ Tokens de acesso OAuth✔ Tokens de autorização OAuth
As chaves de criptografia são indispensáveis durante a restauração de um backup do etcd.
⚙️ Como habilitar a criptografia do etcd
⚠ Importante: não faça backup do etcd enquanto o processo de criptografia não tiver sido concluído.
Impactos da ativação:
- Aumento do consumo de memória por alguns recursos.
- Impacto temporário no desempenho dos backups.
- Maior uso de I/O no node que processa o estado do backup.
Habilitando a criptografia passo a passo
1️⃣ Edite o objeto APIServer
Execute o comando abaixo:
oc edit apiserver
2️⃣ Defina o tipo de criptografia (AES-GCM ou AES-CBC)
Ajuste a configuração desta forma:
spec:
encryption:
type: aesgcm # or 'aescbc'- Para utilizar AES-GCM, defina type: aesgcm.
- Para utilizar AES-CBC, defina type: aescbc.
📌 Salve e aplique a alteração. O processo pode levar mais de 20 minutos, dependendo do tamanho do banco do etcd.
✅ Validando a criptografia
Para acompanhar a ativação da criptografia, execute os comandos abaixo:
📌 Verifique o status do OpenShift API Server
oc get openshiftapiserver -o=jsonpath='{range .items[0].status.conditions[?(@.type=="Encrypted")]}{.reason}{"\n"}{.message}{"\n"}'📌 Verifique o status do OpenShift OAuth API Server
oc get authentication.operator.openshift.io -o=jsonpath='{range .items[0].status.conditions[?(@.type=="Encrypted")]}{.reason}{"\n"}{.message}{"\n"}'
Se a saída mostrar EncryptionInProgress, o processo ainda está em andamento. Aguarde alguns minutos e verifique novamente.
Para mais detalhes, consulte a documentação oficial:
🔗 Criptografando o etcd no OpenShift
💡 Quem sou eu?
Sou Gabriel Carmo, CNCF Kubestronaut, com certificações CKA, CKAD, CKS, KCNA e KCSA, além de Red Hat Certified OpenShift Administrator.
Atuo em DevOps Engineering, construindo e evoluindo plataformas Kubernetes multi-cloud. Meu trabalho tem como foco reduzir a carga cognitiva das equipes de engenharia por meio de platform engineering, automação, GitOps e experiências self-service.
No dia a dia, conecto infraestrutura como código, cloud networking, governança, segurança, observabilidade e práticas de SRE para criar plataformas mais padronizadas, resilientes e fáceis de operar.