Hashicorp Vault Operations Professional (HCVOP) - Minha experiência
Tags: devops, vault, hashicorp
Published: 2023-07-29 19:19:01

Nesse post eu estou compartilhando como foi minha preparação e a experiência de fazer a certificação HCVOP-002 esse ano (2023). Ele está dividido em: 
1. Introdução - Informações gerais sobre a certificação, o Vault, e promessas de novos posts
2. Informações mais específicas sobre a certificação - duração, nota de corte, conteúdo
3. Como eu me preparei 
4. O dia da prova 
5. O que eu sugiro praticar

_É importante ressaltar que tudo o que será escrito aqui é baseado na **minha experiência** e eu vou usar esse termo várias vezes. Se você está pensando em fazer a certificação esse post **não** é um guia de estudos ou caminho das pedras, é apenas o caminho que eu fiz com o maior número de detalhes que eu posso fornecer. Não é minha intenção replicar qualquer questão do exame nesse post. Siga a documentação oficial da Hashicorp na sua preparação._

**1. Introdução**
A HCVOP é focada em pessoas que trabalham no deploy, configuração, gerenciamento e monitoramento do Hashicorp Vault (você pode conferir todos os detalhes na [página da Hashicorp](https://www.hashicorp.com/certification/vault-operations-professional)).

Se você não sabe o que é, para que serve ou do que se alimenta o Vault, eu pretendo iniciar uma sequência em breve (sem compromissos com datas por aqui) com alguns detalhes sobre o que é, como usar algumas funcionalidades e talvez com alguns laboratórios que eu ache interessante. Apenas para rápida contextualização, o Vault - desenvolvido pela Hashicorp - é uma ferramenta de segurança, focado em gerenciamento de segredos e dados sensíveis, que permite a manipulação segura desses dados durante todo o "ciclo de vida" deles. Quer saber mais agora mesmo? Dá uma olhada na [página oficial do Vault](https://www.vaultproject.io/). Nesse post eu vou assumir que você já conhece algumas terminologias sobre o Vault e as funcionalidades, então se algo ficar confuso por hoje espero que os próximos posts esclareçam.

**2. A certificação segundo a Hashicorp**

A primeira coisa é possível perceber quando a gente lê a página da Hashicorp é que esta não é uma certificação para quem usa o Vault só como cliente, essa prova - que tem parte teórica e prática - vai exigir que você saiba gerenciar o Vault em si, habilitar e configurar funcionalidades, monitorar os logs e identificar problemas por lá, usar as **_features enterprise_** (funcionalidades pagas) de Disaster Recovery e Replica Performance.

Os pré requisitos listados na página da documentação (o link ta ali em cima pessoal) são:

- Ter passado na certificação Associate do Vault (Recomendado, não obrigatório). Alguns anos atrás eu fiz esse [_gist_](https://gist.github.com/Isadoramenezes/2d19c208f2313106d1f56916101cb386) com algumas notas de quando fiz o exame.
- Linux (listar e editar arquivos)
- Redes
- Experiência com PKI, incluindo PGP e TLS
- Fundamentos de segurança da informação, incluindo segurança de redes e RBAC (Role Based Access Control)
- Containers

A versão do Vault rodando no ambiente vai ser 1.8.0 ou maior (post em Julho de 2023). É importante saber exatamente qual versão está rodando na hora da prova porquê o acesso a [documentação da API](https://developer.hashicorp.com/vault/api-docs) é liberado dentro do ambiente (nada de acesso ao learn.hashicorp.com), e você não quer perder tempo consultando a versão errada. Aqui no canto direito é possível selecionar as opções disponíveis.

![Print da página inicial da documentação da API do Vault onde pode-se observar no canto direito um menu drop-down com a versão 1.14.x](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jie14quhj5g3c8fqhu3s.png)

A prova dura até 4 horas e isso inclui uma pausa de até 15 minutos.

O preço com retake (você pode refazer caso não passe na primeira) é $295 (em dólar).

A prova está disponível apenas em inglês, e é válida por 2 anos.

Como mencionado anteriormente, você vai encontrar questões teóricas - na minha foram algo entre 15 e 20 se não me engano - e práticas - 4 ou 6 cenários com 2 a 4 itens cada.

A Hashicorp disponibiliza um [guia para preparação](https://learn.hashicorp.com/collections/vault/ops-pro-cert) com:

1. [Visão geral sobre o exame](https://developer.hashicorp.com/vault/tutorials/ops-pro-cert/ops-pro-overview)
2. [Guia de estudos por tópico](https://developer.hashicorp.com/vault/tutorials/ops-pro-cert/ops-pro-study)
3. [Guia de revisão por tópico](https://developer.hashicorp.com/vault/tutorials/ops-pro-cert/ops-pro-review)

Na página da certificação os tópicos estão divididos em:

1. Criar a configuração e executar o Vault em certo cenário - que será fornecido na hora da prova
2. Monitoração do Vault
3. Emprego do modelo de segurança do Vault
4. Criação de ambientes tolerantes à falha
5. Entendimento da integração com HSM
6. Escalabilidade para performance
7. Configuração de controle de acesso
8. Configuração do Vault agent

Sobre a pontuação mínima para passar na prova eu não consegui achar a informação atualizada, quando eu fiz acredito que era de 85%.

**3. Minha preparação e dicas**

Meu primeiro contato com o Vault foi através do [curso da LinuxTips](https://www.linuxtips.io/course/descomplicando-o-vault) na primeira edição do Chama as Minas lá em 2020, mesmo ano que eu comecei a atuar profissionalmente na instalação dele em ambientes corporativos. Em 2021 eu tive a chance de fazer a certificação de nível associate para participar do programa de parceiros da Hashicorp e tudo isso serviu de aprendizado e experiência pra mim. Depois disso eu foquei em outras coisas, até que no começo desse ano tive novamente a chance de participar de um projeto de implementação interessante, o que coincidiu com o convite para fazer o exame beta até 15 de Abril.

Eis então o cenário: eu não mexia no Vault desde o final de 2021, voltei a mexer em Fevereiro de 2023 e 01/03 eu recebi o convite da certificação. Dalí tive até 14/04 para me preparar.
E como foi isso? Bom, inicialmente eu procurei relatos de pessoas que já tinham feito a prova para entender melhor o que esperar, e achei basicamente [esse post](https://medium.com/@glen.yu/how-i-passed-the-hashicorp-vault-operations-professional-exam-7ee4e88fd979).

Olhando as páginas da documentação eu percebi que tinha MUITO conteúdo pra estudar e eu não tinha esse tempo todo, então para a parte mais básica e teórica eu optei por fazer um dos [simulados para a prova associate do Bryan Krausen](https://www.udemy.com/course/hashicorp-certified-vault-associate-practice-exam/) que eu tinha comprado em 2021. Isso me ajudou e identificar os pontos teóricos que eu precisa revisar antes de tudo. 

Daí eu tinha outro problema, como fica claro na página da prova, essa certificação vai testar suas habilidades no nível enterprise, as funcionalidades pagas são a chave dessa prova, e como participante beta eu não recebi nenhuma licença para estudar. Eu entrei em contato com o suporte da Hashicorp que foi super parceiro e conseguiu me direcionar para o canal correto para solicitar uma licença temporária. Eles também me sugeriram outro curso do [Bryan Krausen: Vault Operations Professional ](https://www.udemy.com/course/hashicorp-certified-vault-operations-professional/) - O Bryan é certificado como exam contributor para essa prova e o curso dele dá acesso a [esse ambiente prático](https://kodekloud.com/courses/lab-hashicorp-certified-vault-operations-professional-2022/) com laboratórios que permititam treinar as funcionalidades pagas. Eu decidi comprar o curso e em relação ao conteúdo gravado não foi de super ajuda, mas os laboratórios podem dar uma visão legal sobre coisas que você talvez não pratique no dia a dia (como uma operação de disaster recovery, ou auto-auth com o vault agent). A balança para mim foi positiva aqui.

O post do Glen Yu me fez refletir sobre outra coisa que acho importante - _e assim como ele eu reforço aqui: siga a orientação da Hashicorp, essa é uma conclusão nossa e você não quer ter uma surpresa por não estudar algo que estava no plano_ - o objetivo dessa prova é te testar em Vault, as possíveis integrações com provedores de nuvem (AWS, Azure, GCP), com métodos de autenticação externos (Okta, LDAP) e, principalmente com outros tipos de storage que não o raft, podem cair na prova, mas **na minha opinião** não é provável que caiam, isso me ajudou a afunilar os estudos cortando todas as integrações **por minha conta e risco**.

**4. O Dia da Prova**

Eu achei o ambiente da prova um pouco estranho, mas basicamente você tem acesso a um ambiente virtual com uma guia do Chrome vai receber as instruções pré-exame. **Leia as instruções**, elas vão te orientar como iniciar os cenários, como navegar no ambiente e o que você pode e não pode fazer.

As minhas 15 primeiras questões foram teóricas e elas também focaram bastante no nível enterprise, por exemplo sobre as funcionalidades relacionadas a FIPS 140-2, sobre como funciona a configuração de um cluster Replica Performance com e sem path filters, sobre policies e sobre o sentinel.

Logo após vieram as questões práticas. **Eu não lembro de todas** mas lembro que as questões abordaram:
1. Criação de tokens;
2. Criação de policies;
3. Configuração de secret engines;
4. Configuração de auth engines;
5. Disaster recovery (configuração e operação);
6. Replica Performance (configuração e operação);
7. Vault-agent (auto-auth e PKI);
8. Metricas.

É muito importante que você leia com calma e atenção o que as questões estão pedindo, a maioria delas vai pedir para você criar um arquivo em determinado diretório, ou escrever o resultado de determinada operação de um campo. **Valide seu resultado** antes de ir para a próxima questão. A questão pedia para criar um token em um arquivo com certa policy? Execute um vault login ou um token lookup para verificar se o token de fato tem aquela policy. O objetivo era criar um usuário? Valide que você consegue logar e acessar as coisas que aquele usuário deveria acessar. Cheque se seu cluster secundário está conectado,  e assim por diante.

Quando eu finalmente acabei essas questões - elas consumiram mais de 3 horas no meu caso - haviam ainda mais 5 questões híbridas sobre logs de auditoria, basicamente eu precisei checar os logs dentro de um container e identificar quem performou determinada ação, ou em que horário algo ocorreu, e depois escrever isso nos campos disponíveis.

O resultado demorou bastante para chegar, a prova foi em Abril e eu só recebi o resultado em Julho, então é bom segurar a ansiedade depois do exame :) 

**5. O que eu sugiro praticar?**

A resposta curta é: **tudo** :)
A resposta longa é: Não se desespere com a resposta curta, a documentação está ao seu lado e irá te ajudar.
A minha prova cobriu facilmente 90% do que está no programa, de forma prática ou teórica, então o ideal é você saber navegar na documentação de olhos fechados. Consultar qual endpoint chamar, quais parâmetros ele aceita, e até uma segunda confirmação sobre questões teóricas pode ajudar muito.

Como eu disse antes, **baseada na minha experiência** eu não focaria eu integrações externas, exceto talvez pelo caso de bancos de dados, já que essa é uma funcionalidade amplamente utilizada.

Alguns cenários que eu praticaria e pretendo trazer aqui na sequência sobre Vault:

1. [Configuração de autounseal com transit engine](https://developer.hashicorp.com/vault/tutorials/auto-unseal/autounseal-transit)
2. Configuração e [inicialização segura](https://developer.hashicorp.com/vault/docs/concepts/pgp-gpg-keybase) e [modelo de segurança](https://developer.hashicorp.com/vault/docs/internals/security)
3. [Segredos dinâmicos - DB](https://developer.hashicorp.com/vault/docs/secrets/databases/mysql-maria)
4. [Criação e revogação de tokens](https://developer.hashicorp.com/vault/tutorials/tokens/tokens) - explorando diferentes tipos tokens de serviço e batch tokens, tokens periódicos, tokens com limite de uso, wrap e unwrap de token e assim por diante
5. [Audit devices](https://developer.hashicorp.com/vault/docs/audit/file) e audit logs 
6. [Vault PKI](https://developer.hashicorp.com/vault/docs/secrets/pki)
7. [Métodos de autenticação humana/maquina](https://developer.hashicorp.com/vault/docs/auth)
8. [Disaster Recovery](https://developer.hashicorp.com/vault/tutorials/enterprise/disaster-recovery)
9. [Performance Replication](https://developer.hashicorp.com/vault/tutorials/enterprise/performance-replication)
10. [Policies e controle de acesso](https://developer.hashicorp.com/vault/docs/concepts/policies)
11. [Sentinel Policies](https://developer.hashicorp.com/vault/tutorials/policies/sentinel)
12. [Processo de Rekey e de Key Rotation](https://developer.hashicorp.com/vault/tutorials/operations/rekeying-and-rotating)
13. [Namespaces ](https://developer.hashicorp.com/vault/docs/enterprise/namespaces)
14. [Vault agent](https://developer.hashicorp.com/vault/docs/agent-and-proxy/agent)


Por hoje é isso, obrigada por ter lido até aqui,  espero voltar em breve com alguns laboratórios e se você está pensando em prestar esse exame e quer trocar uma ideia pode deixar um comentário por aqui :)