Armazenando Credenciais no Jenkins

Beginner

Introdução

As credenciais do Jenkins permitem que você armazene senhas, tokens e chaves no Jenkins, em vez de digitar segredos diretamente nos scripts dos jobs. Os jobs podem, então, referenciar uma credencial pelo seu ID.

Neste laboratório, você usará o painel do Jenkins para abrir o armazenamento global de credenciais, criar uma credencial de usuário/senha, confirmar que o Jenkins mascara e criptografa o segredo e, posteriormente, atualizar a mesma credencial sem alterar seu ID.

Abrir o Armazenamento Global de Credenciais

Nesta etapa, você localizará o armazenamento de credenciais do Jenkins no painel de controle. O Jenkins organiza as credenciais por armazenamento (store) e domínio (domain). Para fluxos de trabalho iniciantes, o local mais comum é o armazenamento System e o domínio Global.

Abra a interface da área de trabalho. O Firefox abrirá o Jenkins automaticamente. Caso não abra, acesse http://localhost:8080.

No painel do Jenkins:

Clique em Manage Jenkins na barra lateral esquerda e, em seguida, clique em Credentials. Na página de Credenciais, clique em System e depois em Global.

O título da página deve ser Global, e a página deve indicar que essas credenciais estão disponíveis em todos os lugares.

Domínio de credencial global do Jenkins

Execute este pequeno comando no terminal para registrar que a página de credenciais globais está acessível:

curl -fsS http://localhost:8080/manage/credentials/store/system/domain/_/ | grep -o 'Credentials that should be available everywhere' | tee /home/labex/project/credential-storage-page.txt

Você deverá ver:

Credentials that should be available everywhere

Adicionar uma Credencial de Usuário e Senha

Nesta etapa, você criará uma credencial usando o formulário do Jenkins. O ID da credencial é importante porque os jobs e pipelines farão referência a esse ID posteriormente.

Na página de credenciais Global, clique em Add Credentials.

Preencha o formulário com estes valores:

  • Kind: Username with password
  • Scope: Global
  • Username: guided-user
  • Password: guided-password-v1
  • ID: guided-creds
  • Description: Guided lab credential for Jenkins storage

Clique em Create.

Após o Jenkins retornar à página do domínio Global, você deverá ver uma credencial chamada guided-creds. O Jenkins exibe o nome de usuário, mas mascara a senha.

Credencial guiada do Jenkins no domínio global

Verificar como o Jenkins Armazena o Segredo

Nesta etapa, você inspecionará o que o Jenkins gravou no disco. Isso não é algo que você costuma fazer durante o trabalho diário com o Jenkins, mas ajuda a entender por que as credenciais são mais seguras do que senhas em texto simples dentro de scripts de jobs.

No terminal, imprima apenas as linhas relevantes do arquivo credentials.xml do Jenkins:

docker exec jenkins sh -lc "grep -n -E '<id>guided-creds</id>|<username>guided-user</username>|<password>' /var/jenkins_home/credentials.xml" | tee /home/labex/project/credential-file-lines.txt

A saída deve incluir o ID da credencial e o nome de usuário. A linha da senha deve conter um segredo criptografado do Jenkins entre chaves, e não o texto simples guided-password-v1.

Exemplo de saída:

...<id>guided-creds</id>
...<username>guided-user</username>
...<password>{...}</password>

Retorne à página do domínio Global do Jenkins no Firefox. A linha da credencial também deve mostrar a senha como texto mascarado, e não como a senha real.

Atualizar a Credencial sem Alterar seu ID

Nesta etapa, você atualizará a descrição da credencial através do painel do Jenkins, mantendo o mesmo ID de credencial. Isso demonstra o conceito fundamental que os iniciantes precisam aprender primeiro: os jobs devem referenciar um ID estável, como guided-creds, enquanto os administradores podem ajustar os metadados da credencial posteriormente.

Na página de credenciais Global:

Clique na credencial guided-creds e, em seguida, clique em Update credential. Deixe Username, Password e ID inalterados. Altere a Description para Updated guided lab credential e clique em Save.

Após salvar, retorne à página do domínio Global. O mesmo ID de credencial deve permanecer visível, mas a descrição agora deve ser Updated guided lab credential.

Credencial atualizada do Jenkins no domínio global

Execute este comando para confirmar que o Jenkins ainda mantém o mesmo ID e a descrição atualizada:

docker exec jenkins sh -lc "grep -n -E '<id>guided-creds</id>|<description>Updated guided lab credential</description>|<password>' /var/jenkins_home/credentials.xml" | tee /home/labex/project/updated-credential-lines.txt

A senha ainda deve estar criptografada, e o texto simples guided-password-v1 não deve aparecer.

Resumo

Você utilizou o painel do Jenkins para abrir o armazenamento global de credenciais, criar uma credencial de usuário/senha, observar que o Jenkins mascara e criptografa o segredo e atualizar os metadados da credencial mantendo o mesmo ID estável.