Skip to main content

Noções básicas sobre tipos de segredo do GitHub

Saiba mais sobre uso, escopo e permissões de acesso para segredos do GitHub.

Sobre os tipos de segredo do GitHub

Os segredos do GitHub são usados para armazenar com segurança informações confidenciais, como chaves de API, tokens e senhas em repositórios.

Quando você armazena as informações confidenciais como um segredo do GitHub, remove a necessidade de codificar a credencial ou chave e evita a exposição dela no código ou nos logs. Assim, o segredo pode ser usado para autenticar serviços, gerenciar credenciais e passar dados confidenciais com segurança em fluxos de trabalho.

Há dois tipos de segredos usados pelo GitHub:

Dependendo do tipo de segredo do GitHub, você pode criar e gerenciar segredos na página de configurações de segurança da conta pessoal, da organização ou do repositório.

Segredos do Dependabot

Os segredos do Dependabot são usados para armazenar credenciais e informações confidenciais para usar no Dependabot.

Os segredos do Dependabot são referenciados no arquivo dependabot.yml de um repositório.

Uso

Os segredos do Dependabot normalmente são usados pelo Dependabot para autenticar em registros de pacotes privados. Isso permite que o Dependabot abra pull requests para atualizar dependências vulneráveis ou desatualizadas em repositórios privados. Usados para autenticação, os segredos do Dependabot são referenciados no arquivo dependabot.yml de um repositório.

Os segredos do Dependabot também podem incluir segredos necessários para fluxos de trabalho iniciados pelo Dependabot. Por exemplo, o Dependabot pode disparar fluxos de trabalho de GitHub Actions ao criar pull requests para atualizar dependências ou comentários sobre pull requests. Nesse caso, os segredos do Dependabot podem ser referenciados por meio de arquivos de fluxo de trabalho (.github/workflows/*.yml) desde que o fluxo de trabalho seja disparado por um evento do Dependabot.

Escopo

Você pode definir segredos do Dependabot no:

  • Nível do repositório
  • Nível da organização

Os segredos do Dependabot podem ser compartilhados entre repositórios quando definidos no nível da organização. Você deve especificar quais repositórios na organização podem acessar o segredo.

Permissões de acesso

Os segredosdo Dependabot são acessados pelo Dependabot ao autenticar em registros privados para atualizar dependências.

Os segredos do Dependabot são acessados por fluxos de trabalho de GitHub Actions quando o evento de gatilho do fluxo de trabalho é iniciado pelo Dependabot. Isso ocorre porque quando um fluxo de trabalho é iniciado pelo Dependabot, somente segredos do Dependabot estão disponíveis; os segredos do Actions não ficam acessíveis. Portanto, todos os segredos necessários para esses fluxos de trabalho devem ser armazenados como segredos do Dependabot em vez de segredos do Actions. Há restrições de segurança adicionais para o evento pull_request_target. Confira Limitações e restrições.

Permissões de acesso do usuário

Segredos no nível do repositório:

  • Os usuários com acesso de administrador ao repositório podem criar e gerenciar segredos do Dependabot.
  • Os usuários com acesso de colaborador ao repositório podem usar o segredo para o Dependabot.

Segredos no nível da organização:

  • Os proprietários da organização podem criar e gerenciar segredos do Dependabot.
  • Os usuários com acesso de colaborador aos repositórios com acesso a cada segredo podem usar o segredo para o Dependabot.

Limitações e restrições

Para fluxos de trabalho iniciados pelo Dependabot, o evento pull_request_target é tratado de maneira diferente para outros eventos. Para esse evento, se a referência base da pull request foi criada pelo Dependabot (github.event.pull_request.user.login == 'dependabot[bot]'):

  • O fluxo de trabalho recebe um GITHUB_TOKEN somente leitura.
  • Os segredos não ficam disponíveis para o fluxo de trabalho.

Essa restrição adicional ajuda a evitar possíveis riscos de segurança que possam surgir de pull requests criadas pelo Dependabot.

Os segredos do Dependabot não são passados para forks.

Segredos do Actions

Os segredos do Actions são usados para armazenar informações confidenciais, como chaves de API, tokens de autenticação e outras credenciais em fluxos de trabalho.

Uso

Os segredos do Actions são referenciados em arquivos de fluxo de trabalho (.github/workflows/*.yml).

Escopo

Você pode definir segredos do Actions no:

  • Nível do repositório
  • Nível de ambiente
  • Nível da organização

Os segredos no nível do ambiente são específicos de um ambiente específico, como produção ou preparo. Os segredos do Actions podem ser compartilhados entre repositórios se definidos no nível da organização. Você pode usar políticas de acesso para controlar quais repositórios têm acesso ao segredo.

Permissões de acesso

Os segredos do Actions só ficam disponíveis em fluxos de trabalho do GitHub Actions. Apesar de executar no Actions, o Dependabot não tem acesso aos segredos do Actions.

Para fluxos de trabalho iniciados pelo Dependabot, os segredos do Actions não estão disponíveis. Esses segredos de fluxo de trabalho devem ser armazenados como segredos do Dependabot para ficarem acessíveis ao fluxo de trabalho.

O local em que você armazena o segredo do Actions determina sua acessibilidade:

  • Segredo do repositório: todos os fluxos de trabalho no repositório podem acessar o segredo.
  • Segredo do ambiente: o segredo é limitado a trabalhos que fazem referência a esse ambiente específico.
  • Segredo da organização: todos os fluxos de trabalho nos repositórios que receberam acesso da organização podem acessar os segredos da organização.

Permissões de acesso do usuário

Segredos de nível de ambiente e repositório:

  • Os usuários com acesso de administrador ao repositório podem criar e gerenciar segredos do Actions.
  • Os usuários com acesso de colaborador ao repositório podem usar o segredo.

Segredos no nível da organização:

  • Os proprietários da organização podem criar e gerenciar segredos do Actions.
  • Os usuários com acesso de colaborador aos repositórios com acesso a cada segredo podem usar o segredo.

Limitações e restrições

  • Os segredos do Actions não ficam disponíveis para fluxos de trabalho iniciados pelo Dependabot.
  • Os segredos do Actions não são passados para fluxos de trabalho que são disparados por uma solicitação de pull de um fork.
  • O GitHub Actions oculta automaticamente o conteúdo de todos os segredos do GitHub que são gravados nos logs dos fluxos de trabalho.
  • Você pode armazenar até 1.000 segredos da organização, 100 segredos de repositório e 100 segredos de ambiente. Os segredos são limitados a 48 KB. Para obter mais informações, consulte Limites para segredos.

Leitura adicional