Pular para o conteúdo principal

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