Quiz Módulo 5 - Configuração e Secrets
Instruções
Este quiz contém 30 questões de múltipla escolha.
Questão 1
O que é um ConfigMap?
Ver explicação
Resposta correta: Um objeto Kubernetes que armazena dados de configuração não sensíveis
Explicação: Os ConfigMaps permitem separar a configuração do código da aplicação.
Questão 2
O que é um Secret no Kubernetes?
Ver explicação
Resposta correta: Um objeto Kubernetes que armazena dados sensíveis como senhas, tokens ou chaves
Explicação: Secrets são semelhantes aos ConfigMaps, mas são projetados para armazenar dados sensíveis. Eles são armazenados em base64 (sem criptografia por padrão).
Questão 3
Como criar um ConfigMap a partir de um arquivo?
Ver explicação
Resposta correta: kubectl create configmap [name] --from-file=[file]
Explicação: O parâmetro --from-file permite criar um ConfigMap a partir de um arquivo, onde a chave será o nome do arquivo e o valor será o conteúdo do arquivo.
Questão 4
Qual é o tamanho máximo de uma entrada em um ConfigMap?
Ver explicação
Resposta correta: 1 MiB
Explicação: Cada entrada em um ConfigMap ou Secret é limitada a 1 MiB. Para dados maiores, utilize volumes.
Questão 5
Como injetar um ConfigMap como variável de ambiente em um Pod?
Ver explicação
Resposta correta: envFrom: - configMapRef: name: [configmap-name]
Explicação: envFrom permite injetar todas as chaves de um ConfigMap como variáveis de ambiente. Para uma chave específica, utilize env com valueFrom.configMapKeyRef.
Questão 6
Como montar um ConfigMap como volume em um Pod?
Ver explicação
Resposta correta: volumes: - name: config configMap: name: [configmap-name]
Explicação: Para montar um ConfigMap como volume, defina-o na seção volumes do Pod e utilize volumeMounts para montá-lo no container.
Questão 7
Qual é a principal diferença entre um ConfigMap e um Secret?
Ver explicação
Resposta correta: Secrets são projetados para dados sensíveis e são armazenados em base64, ConfigMaps para dados não sensíveis
Explicação: Secrets são destinados a dados sensíveis, mas não são criptografados por padrão (apenas codificados em base64). ConfigMaps são para dados não sensíveis.
Questão 8
Como criar um Secret a partir de literais?
Ver explicação
Resposta correta: kubectl create secret generic [name] --from-literal=[key]=[value]
Explicação: --from-literal permite criar um Secret diretamente a partir de pares chave-valor na linha de comando.
Questão 9
Qual é a boa prática para gerenciar secrets em produção?
Ver explicação
Resposta correta: Utilizar ferramentas externas de gestão de secrets (Vault, AWS Secrets Manager) com External Secrets Operator
Explicação: Secrets nunca devem ser commitados no Git. Utilize ferramentas externas como Vault ou serviços cloud com External Secrets Operator para gestão segura.
Questão 10
O que é criptografia em repouso (encryption at rest) para Secrets?
Ver explicação
Resposta correta: Uma funcionalidade que criptografa os Secrets no etcd utilizando uma EncryptionConfig
Explicação: A criptografia em repouso permite criptografar os Secrets no etcd configurando uma EncryptionConfig com provedores de criptografia (AES, KMS, etc.).
Questão 11
Qual comando permite ver o conteúdo de um Secret (decodificado)?
Ver explicação
Resposta correta: kubectl get secret [name] -o jsonpath='{.data.[key]}' | base64 -d
Explicação: Secrets são armazenados em base64. Para ver o conteúdo decodificado, use jsonpath para extrair o valor e base64 -d para decodificar.
Questão 12
O que é o External Secrets Operator?
Ver explicação
Resposta correta: Um operador Kubernetes que sincroniza secrets de sistemas externos (AWS Secrets Manager, Vault, etc.) para o Kubernetes
Explicação: O External Secrets Operator permite gerenciar secrets de forma centralizada em sistemas externos e sincronizá-los automaticamente para o Kubernetes.
Questão 13
Qual é o método recomendado para injetar um Secret em um Pod?
Ver explicação
Resposta correta: Utilizar envFrom com secretRef ou env com valueFrom.secretKeyRef
Explicação: Secrets devem ser injetados via envFrom (todas as chaves) ou env com valueFrom.secretKeyRef (uma chave específica), nunca hardcoded.
Questão 14
Qual é a diferença entre env e envFrom?
Ver explicação
Resposta correta: env permite injetar variáveis individuais, envFrom injeta todas as chaves de um ConfigMap/Secret
Explicação: env permite controle preciso sobre cada variável, enquanto envFrom injeta automaticamente todas as chaves como variáveis de ambiente.
Questão 15
Qual é a boa prática para as permissões de um volume Secret?
Ver explicação
Resposta correta: 0400 (somente leitura para o proprietário)
Explicação: Volumes de Secrets devem ser montados como somente leitura (readOnly: true) com permissões restritivas (defaultMode: 0400) para segurança.
Questão 16
O que é um ConfigMap imutável?
Ver explicação
Resposta correta: Um ConfigMap que não pode ser modificado após sua criação, melhorando desempenho e segurança
Explicação: ConfigMaps imutáveis (immutable: true) não podem ser alterados, reduzindo a carga no API Server e aumentando a segurança.
Questão 17
Como atualizar um ConfigMap utilizado por um Pod em execução?
Ver explicação
Resposta correta: Se montado como volume, é necessário reiniciar o Pod. Se injetado como env, é preciso recriar o Pod
Explicação: ConfigMaps montados como volumes são atualizados periodicamente, mas variáveis de ambiente injetadas não mudam sem recriar o Pod.
Questão 18
Qual é o comando para criar um Secret a partir de um arquivo?
Ver explicação
Resposta correta: kubectl create secret generic [name] --from-file=[key]=[file]
Explicação: --from-file permite criar um Secret a partir de um arquivo, onde você pode especificar a chave e o arquivo de origem.
Questão 19
O que é rotação de secrets?
Ver explicação
Resposta correta: O processo de substituição periódica dos secrets por novos valores para segurança
Explicação: A rotação de secrets é uma boa prática de segurança que consiste em trocar regularmente senhas, tokens e chaves para limitar o impacto de um comprometimento.
Questão 20
Qual é a diferença entre um Secret do tipo Opaque e um Secret do tipo TLS?
Ver explicação
Resposta correta: Opaque é para dados arbitrários, TLS é especificamente para certificados TLS
Explicação: Secrets do tipo TLS possuem chaves específicas (tls.crt, tls.key) e são usados por ferramentas como cert-manager para certificados SSL/TLS.
Questão 21
Como organizar os ConfigMaps por ambiente?
Ver explicação
Resposta correta: Criar ConfigMaps separados por ambiente (dev, staging, prod) com nomes diferentes
Explicação: A melhor prática é criar ConfigMaps distintos para cada ambiente, permitindo uma gestão clara e evitando erros de configuração.
Questão 22
Qual é o limite de tamanho total de um ConfigMap ou Secret?
Ver explicação
Resposta correta: Limitado pelo etcd (geralmente 1.5 MiB por objeto)
Explicação: Embora cada entrada seja limitada a 1 MiB, o tamanho total de um ConfigMap ou Secret é limitado pelo etcd, geralmente em torno de 1.5 MiB.
Questão 23
O que é um volume do tipo Secret?
Ver explicação
Resposta correta: Um volume que monta os dados de um Secret como arquivos em um Pod
Explicação: Secrets podem ser montados como volumes, onde cada chave vira um arquivo com o valor decodificado como conteúdo.
Questão 24
Qual é a boa prática para secrets em arquivos YAML?
Ver explicação
Resposta correta: Nunca colocar secrets em texto claro, usar referências (secretKeyRef) ou ferramentas externas
Explicação: Secrets nunca devem estar em texto claro nos YAML, mesmo em base64. Utilize referências ou ferramentas de gestão de secrets.
Questão 25
Como utilizar um ConfigMap em um Deployment?
Ver explicação
Resposta correta: No template Pod do Deployment, via env, envFrom ou volumes
Explicação: ConfigMaps são referenciados no template Pod (spec.template.spec) de um Deployment, via env/envFrom para variáveis de ambiente ou volumes para arquivos.
Questão 26
O que é um Service Account no contexto de Secrets?
Ver explicação
Resposta correta: Uma identidade para os Pods que pode ser associada a Secrets para acesso ao API Server
Explicação: Service Accounts podem ter imagePullSecrets para acessar registries privados, mas não estão diretamente ligados a Secrets de aplicação.
Questão 27
Qual é o comando para remover um ConfigMap?
Ver explicação
Resposta correta: kubectl delete configmap [name]
Explicação: kubectl delete é o comando padrão para remover qualquer recurso Kubernetes, incluindo ConfigMaps.
Questão 28
O que é um Secret do tipo docker-registry?
Ver explicação
Resposta correta: Um Secret que armazena as credenciais para acessar um registry Docker privado
Explicação: Secrets do tipo docker-registry são usados como imagePullSecrets para permitir que Pods puxem imagens de registries privados.
Questão 29
Qual é a boa prática para versionar ConfigMaps?
Ver explicação
Resposta correta: Utilizar labels com números de versão e criar novos ConfigMaps para cada versão
Explicação: Versionar ConfigMaps com labels permite rastrear mudanças e facilita rollbacks ao referenciar diferentes versões.
Questão 30
Qual é a diferença entre valueFrom.configMapKeyRef e valueFrom.secretKeyRef?
Ver explicação
Resposta correta: configMapKeyRef referencia uma chave de um ConfigMap, secretKeyRef referencia uma chave de um Secret
Explicação: Essas duas referências funcionam da mesma forma, mas apontam para tipos de recursos diferentes: ConfigMap para dados não sensíveis, Secret para dados sensíveis.
Resultado do Quiz
Parabéns por completar o quiz do Módulo 5!
Pontuação:
- 25-30 respostas corretas: Excelente! Você domina configuração e secrets.
- 20-24 respostas corretas: Muito bom! Revise os conceitos onde teve dificuldades.
- 15-19 respostas corretas: Bom! Revise os capítulos sobre ConfigMaps e Secrets.
- Menos de 15: Recomendado revisar o módulo antes de continuar.
Quiz criado em: Dezembro de 2024