Variáveis de ambiente e segredos
Aprenda a gerenciar informações confidenciais e configurações específicas de ambientes com segurança no GitHub Actions.
Variáveis de ambiente e segredos é uma aula grátis de DevOps Bootcamp no CoddyKit. Esta é a aula 3 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.
Variáveis de ambiente e segredos: conceitos básicos
Bem-vindo à lição 3! Em CI/CD, geralmente é necessário configurar seus fluxos com valores dinâmicos ou informações confidenciais.
É nesse contexto que as variáveis de ambiente e os segredos se tornam indispensáveis. Eles permitem que seus fluxos de trabalho se adaptem a diferentes situações e lidem com dados confidenciais com segurança.
Por que usá-los em CI/CD?
Imagine implantar em ambientes diferentes (desenvolvimento, homologação e produção) ou conectar-se a serviços externos usando chaves de API.
- Flexibilidade: As variáveis de ambiente permitem alterar o comportamento sem modificar o arquivo do fluxo de trabalho.
- Segurança: Os segredos protegem dados confidenciais, como senhas e tokens de API, contra exposição.
- Reutilização: Defina as configurações uma vez e use-as em várias tarefas ou etapas.
Variáveis de ambiente nas Ações
Uma variável de ambiente é um valor com nome dinâmico que pode afetar o comportamento dos processos em execução. Nas Ações do GitHub, elas são essenciais para tornar seus fluxos configuráveis.
Você pode definir suas próprias variáveis de ambiente ou usar as muitas variáveis integradas fornecidas pelas Ações do GitHub.
Variáveis de ambiente integradas das Ações do GitHub
As Ações do GitHub fornecem automaticamente muitas variáveis de ambiente úteis e predefinidas. Elas oferecem contexto sobre o repositório, a execução do fluxo de trabalho e muito mais.
Por exemplo, GITHUB_SHA é o código de confirmação, e GITHUB_REF é o nome da ramificação ou da tag que acionou o fluxo de trabalho.
Você acessa essas variáveis usando o objeto de contexto github em expressões ou diretamente como variáveis do shell, caso estejam mapeadas para env.
name: Print Context Variables
on: [push]
jobs:
display_info:
runs-on: ubuntu-latest
steps:
- name: Show commit SHA
run: echo "Commit SHA: ${{ github.sha }}"
- name: Show branch/tag ref
run: echo "Ref: ${{ github.ref }}"Variáveis de ambiente personalizadas: escopo do fluxo
Você pode definir suas próprias variáveis de ambiente no nível do fluxo de trabalho ou da tarefa. As variáveis definidas no nível do fluxo ficam disponíveis para todas as tarefas e etapas desse fluxo.
Use a palavra-chave env no nível superior do arquivo do fluxo de trabalho para defini-las.
name: Workflow-level Env Var
on: [push]
env:
GREETING_MESSAGE: "Hello from Workflow!"
jobs:
my_job:
runs-on: ubuntu-latest
steps:
- name: Access workflow variable
run: echo "${{ env.GREETING_MESSAGE }}" # Access via env context
- name: Access workflow variable (shell)
env:
MY_VAR_IN_SHELL: ${{ env.GREETING_MESSAGE }}
run: echo "$MY_VAR_IN_SHELL" # Access as shell variableVariáveis de ambiente personalizadas: escopo da tarefa e da etapa
Para necessidades mais específicas, defina variáveis de ambiente no nível da tarefa ou da etapa. Uma variável definida para uma tarefa fica disponível para todas as etapas dela, enquanto uma variável no nível da etapa fica disponível apenas para essa etapa.
Isso permite um controle detalhado sobre sua configuração.
name: Job & Step-level Env Vars
on: [push]
jobs:
my_job:
runs-on: ubuntu-latest
env:
JOB_VAR: "Value for this job"
steps:
- name: Access Job-level variable
run: echo "Job Var: ${{ env.JOB_VAR }}"
- name: Step-specific variable
env:
STEP_VAR: "Value for this step"
run: echo "Step Var: ${{ env.STEP_VAR }}"
- name: Try to access step var in another step
run: echo "Trying to access: ${{ env.STEP_VAR }}" || true # Will be emptyApresentando os segredos do GitHub
As variáveis de ambiente são ótimas para dados não confidenciais, mas e quanto a informações sigilosas, como chaves de API, senhas de banco de dados ou tokens privados?
É nesse contexto que entram os segredos do GitHub. Eles permitem armazenar informações confidenciais com segurança e acessá-las nos seus fluxos de trabalho sem expô-las no código ou nos registros do seu repositório.
- Criptografados: Armazenados com segurança pelo GitHub.
- Ocultados: Automaticamente ocultados dos registros do fluxo de trabalho.
- Acesso controlado: Disponíveis apenas para fluxos de trabalho específicos.
Criando segredos do GitHub
Os segredos são criados e gerenciados nas configurações do seu repositório ou da sua organização no GitHub, e não diretamente nos arquivos do fluxo de trabalho.
- Acesse as Configurações do seu repositório.
- Navegue até Segredos e variáveis > Ações.
- Clique em Novo segredo do repositório (ou em segredo da organização para um escopo mais amplo).
- Forneça um Nome (por exemplo,
MY_API_KEY) e cole o Valor.
Depois de salvo, você não poderá visualizar novamente o valor de um segredo; apenas atualizá-lo ou excluí-lo.
Usando segredos nos fluxos de trabalho
Para usar um segredo, faça referência a ele usando o objeto de contexto secrets no seu fluxo de trabalho, de forma semelhante ao uso de env para variáveis de ambiente.
O GitHub oculta automaticamente os segredos dos registros, substituindo seus valores por *** para evitar a exposição acidental.
name: Use a Secret Demo
on: [push]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Display a secret (redacted)
run: echo "My secret key is: ${{ secrets.MY_API_KEY }}"
# GitHub Actions automatically redacts the value in logs.
- name: Pass secret to an environment variable
env:
API_KEY_ENV: ${{ secrets.MY_API_KEY }}
run: echo "API Key in env: $API_KEY_ENV"Melhores práticas de segurança para segredos
Gerenciar segredos com segurança é fundamental para a integridade do seu fluxo de CI/CD. Siga sempre estas diretrizes:
- Privilégio mínimo: Conceda acesso aos segredos somente quando for absolutamente necessário.
- Nunca codifique diretamente: Não incorpore segredos diretamente nos arquivos do seu fluxo de trabalho nem em qualquer código do repositório.
- Evite registros: Embora o GitHub oculte os segredos, evite comandos personalizados que possam revelar acidentalmente partes deles.
- Altere regularmente: Mude seus segredos periodicamente para minimizar o risco de comprometimento.
- Específicos do ambiente: Use segredos diferentes para os ambientes de desenvolvimento, homologação e produção.
Verificação rápida: variáveis de ambiente versus segredos
Qual afirmação descreve corretamente uma diferença ou um recurso importante das variáveis de ambiente e dos segredos do GitHub Actions?
Recapitulação: Configurações seguras
Excelente! Você explorou com sucesso como gerenciar configurações nos seus fluxos de trabalho do GitHub Actions.
- Variáveis de ambiente permitem inserir dados dinâmicos não confidenciais nas execuções do seu fluxo de trabalho, adaptáveis aos níveis do fluxo de trabalho, da tarefa ou da etapa.
- Segredos são fundamentais para lidar com segurança com informações confidenciais, como chaves de API, garantindo que elas permaneçam criptografadas e fora do seu código público.
- Sempre siga as práticas recomendadas de segurança ao trabalhar com segredos para proteger suas implantações contra vulnerabilidades.
Dominar esses conceitos garante que seus processos de CI/CD sejam flexíveis e seguros!
Perguntas Frequentes
A aula “Variáveis de ambiente e segredos” é grátis?
Sim — o texto completo de “Variáveis de ambiente e segredos” é 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 “Variáveis de ambiente e segredos”?
Aprenda a gerenciar informações confidenciais e configurações específicas de ambientes com segurança no GitHub Actions. 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 3 de 4.
Quanto tempo leva a aula “Variáveis de ambiente e segredos”?
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
- Introdução à implantação contínua
- Implantação em um ambiente de preparação
- Variáveis de ambiente e segredos
- Implantando em produção com etapas de aprovação