Gerenciamento de segredos com GitHub
Aprofunde-se no armazenamento e acesso seguros a credenciais confidenciais usando os segredos do GitHub e o OpenID Connect (OIDC).
Gerenciamento de segredos com GitHub é uma aula grátis de DevOps Bootcamp no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de DevOps Bootcamp, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de DevOps Bootcamp inclui 4 aulas no total.
Por que usar o gerenciamento seguro de segredos
Em qualquer projeto de software, muitas vezes é necessário usar informações sensíveis, como chaves de API, credenciais de banco de dados ou tokens de acesso. Armazená-las diretamente no seu código ou repositório representa um grande risco de segurança.
Gerenciamento de segredos é a prática de armazenar e gerenciar esses dados sensíveis com segurança. Isso garante que apenas sistemas e usuários autorizados possam acessá-los, evitando sua exposição não autorizada.
O que são os segredos do GitHub
O GitHub oferece uma forma segura de armazenar informações sensíveis chamada segredos do GitHub. Essas são variáveis de ambiente criptografadas que você pode usar nos seus fluxos de trabalho das Ações do GitHub.
- Por padrão, eles não são gravados nos registros.
- Eles não ficam visíveis na interface depois da criação.
- Eles só podem ser acessados por fluxos de trabalho selecionados.
Isso mantém suas credenciais protegidas contra exposição acidental.
Configurar segredos do repositório
Você pode definir segredos em diferentes níveis: repositório, ambiente ou organização. Na maioria dos casos, você começará pelos segredos do repositório.
Para criar um:
- Acesse a guia Configurações do seu repositório.
- Navegue até Segredos e variáveis > Ações.
- Clique em Novo segredo do repositório.
Dê a ele um nome exclusivo, por exemplo, API_KEY, e cole o valor do seu segredo.
Acessar segredos nos fluxos de trabalho
Depois que um segredo é definido, você pode usá-lo nos arquivos YAML do seu fluxo de trabalho. As Ações do GitHub injetam automaticamente os segredos como variáveis de ambiente nas suas tarefas.
Você os acessa usando o contexto ${{ secrets.SECRET_NAME }}. Este script simula uma etapa que usaria esse segredo. Para executá-lo, imagine que MY_API_KEY esteja definido como uma variável de ambiente pelas Ações do GitHub.
#!/bin/bash
# This script simulates a workflow step
# where a secret is passed as an environment variable.
echo "Attempting to use an API key..."
# In a real GitHub Action, MY_API_KEY would be
# set by ${{ secrets.MY_API_KEY }} in the workflow YAML.
if [ -z "$MY_API_KEY" ]; then
echo "Error: MY_API_KEY is not set!"
echo "Please define it as a secret in your workflow."
else
echo "Successfully accessed API key (partially shown): ${MY_API_KEY:0:5}..."
fiAbrangências mais amplas dos segredos
Além dos segredos do repositório, o GitHub oferece dois níveis de abrangência mais amplos:
- Segredos da organização: Disponíveis para vários repositórios dentro de uma organização. São úteis para segredos compartilhados entre muitos projetos, como um token de implantação de toda a empresa.
- Segredos do ambiente: Associados a ambientes específicos de implantação, como
stagingeproduction. Eles podem ter regras de proteção, como exigir aprovação manual antes da implantação.
Sempre use a menor abrangência necessária para obter o máximo de segurança.
O que é OpenID Connect (OIDC)
OpenID Connect (OIDC) é uma camada de autenticação criada sobre o OAuth 2.0. É um padrão que permite aos clientes verificarem a identidade de um usuário final com base na autenticação realizada por um servidor de autorização.
Na CI/CD, o OIDC permite que seus fluxos de trabalho se autentiquem com segurança em provedores de nuvem, como AWS, Azure e GCP, sem precisar armazenar credenciais de longa duração, como chaves de API, nos segredos do GitHub.
Como o OIDC funciona com as Ações do GitHub
As Ações do GitHub podem atuar como um provedor OIDC. Quando um fluxo de trabalho é executado, o GitHub gera um token OIDC exclusivo e de curta duração para aquela tarefa específica.
Esse token contém declarações verificáveis sobre o fluxo de trabalho, como o repositório, a ramificação e o ID da tarefa. Os provedores de nuvem podem ser configurados para confiar nos tokens emitidos pelo GitHub e conceder acesso temporário com base nessas declarações.
Principais benefícios do OIDC
Usar OIDC com as Ações do GitHub oferece vantagens significativas de segurança:
- Sem credenciais de longa duração: Você não armazena chaves de API estáticas da nuvem nos segredos do GitHub.
- Risco reduzido: Tokens de curta duração minimizam o impacto caso um token seja comprometido.
- Acesso granular: As funções da nuvem podem ser associadas a condições específicas do fluxo de trabalho, como permitir a implantação somente a partir da ramificação
main. - Auditoria: É mais fácil rastrear quem fez o quê, pois as identidades estão associadas à execução do fluxo de trabalho.
Integrar OIDC à nuvem
Para usar OIDC, você precisa configurar seu provedor de nuvem, por exemplo, AWS IAM, Azure AD ou GCP IAM, para confiar no emissor OIDC do GitHub.
Normalmente, isso envolve:
- Configurar um Provedor de identidade (IdP) na sua conta de nuvem.
- Definir uma Função/Política que conceda permissões específicas.
- Adicionar uma "Política de confiança" à função, permitindo que os tokens OIDC do GitHub a assumam, geralmente com condições baseadas nas declarações do token, como aceitar tokens somente de um repositório específico.
O fluxo de trabalho então solicita um token e o usa para se autenticar.
Verificação rápida: acesso seguro
Você aprendeu sobre os segredos do GitHub para armazenar dados sensíveis e sobre o OpenID Connect para autenticação na nuvem sem credenciais.
Quais das afirmações a seguir sobre o gerenciamento de segredos nas Ações do GitHub são TRUE?
Recapitulação: proteja suas credenciais
Muito bem! Você aprendeu a gerenciar dados sensíveis com segurança nas suas esteiras de CI/CD.
- Os segredos do GitHub oferecem armazenamento criptografado para chaves de API e tokens no seu repositório, na sua organização ou em ambientes específicos.
- OpenID Connect (OIDC) oferece uma forma ainda mais segura de autenticação com provedores de nuvem, usando tokens verificáveis e de curta duração em vez de credenciais estáticas.
Essas práticas são fundamentais para criar esteiras de DevOps robustas e seguras.
Perguntas Frequentes
A aula “Gerenciamento de segredos com GitHub” é grátis?
Sim — o texto completo de “Gerenciamento de segredos com GitHub” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de DevOps Bootcamp, atualize para CoddyKit PRO. O curso de DevOps Bootcamp inclui 4 aulas no total.
O que vou aprender em “Gerenciamento de segredos com GitHub”?
Aprofunde-se no armazenamento e acesso seguros a credenciais confidenciais usando os segredos do GitHub e o OpenID Connect (OIDC). Você pratica DevOps Bootcamp com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar DevOps Bootcamp?
Nenhuma experiência prévia é necessária. DevOps Bootcamp no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.
Quanto tempo leva a aula “Gerenciamento de segredos com GitHub”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de DevOps Bootcamp?
Sim. Cada aula de DevOps Bootcamp inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Práticas recomendadas de segurança em CI/CD
- Gerenciamento de segredos com GitHub
- Testes estáticos de segurança de aplicações (SAST)
- Segurança de dependências e da cadeia de fornecimento (SCA)