Skip to main content

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

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

Como GitHub armazena segredos

          GitHub usa [caixas seladas libsodium](https://libsodium.gitbook.io/doc/public-key_cryptography/sealed_boxes) para criptografar segredos. Um segredo é criptografado antes de alcançar GitHub e permanece criptografado até ser usado por Dependabot, GitHub Actionsou Codespaces.

          Dependabot Segredos

          Dependabot os segredos são usados para armazenar credenciais e informações confidenciais para uso dentro Dependabot.

          Os segredos do Dependabot são referenciados no arquivo `dependabot.yml`.

Usage

          Os segredos do Dependabot normalmente são usados por Dependabot para autenticação em registros de pacotes privados. Isso permite que o Dependabot abra solicitações de pull para atualizar dependências vulneráveis ou desatualizadas em repositórios privados. Usados para autenticação, esses Dependabot segredos são referenciados em um arquivo de `dependabot.yml` do repositório.

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

Scope

Você pode definir segredos do Dependabot em:

  • Nível do repositório

  • Nível da organização

            Dependabot os segredos 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 segredos do Dependabot são acessados por Dependabot ao autenticar em registros privados para atualizar dependências.

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

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 Dependabot segredos.
  • Usuários com acesso de colaborador ao repositório podem usar o segredo para Dependabot.

Segredos no nível da organização:

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

Limitações e restrições

Para fluxos de trabalho iniciados por Dependabot, o pull_request_target evento é tratado de forma diferente para outros eventos. Para esse evento, se a referência base da solicitação de pull tiver sido criada por 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 extra ajuda a evitar possíveis riscos de segurança que podem surgir de solicitações de pull criadas por 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.

Usage

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

Scope

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 estão disponíveis apenas no âmbito de GitHub Actions fluxos de trabalho. Apesar de executar em Ações, Dependabot não tem acesso aos segredos do Actions.

Para fluxos de trabalho iniciados por Dependabot, os segredos de ações não estão disponíveis. Esses segredos de fluxo de trabalho devem ser armazenados como Dependabot segredos para serem 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:

  • 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 de ações não estão disponíveis para fluxos de trabalho iniciados por 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.
  •           GitHub Actions redige automaticamente o conteúdo de todos os segredos do GitHub que são impressos em logs de fluxo 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.

          Codespaces Segredos

          os segredos do Codespaces armazenam credenciais e informações confidenciais, como tokens de API e chaves SSH, para uso no GitHub Codespaces, permitindo que você configure ambientes de desenvolvimento seguros.

Usage

          os segredos do Codespaces são referenciados na configuração do contêiner de desenvolvimento Codespaces (`devcontainer.json`).

Scope

Você pode definir Codespaces segredos em:

  • Nível da conta de usuário
  • Nível do repositório
  • Nível da organização

Para segredos de nível de conta de usuário, você pode escolher quais repositórios têm acesso ao segredo.

          Codespaces os segredos poderão 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

          Codespaces os segredos só podem ser acessados em Codespaces.

          GitHub Actions não pode acessar Codespaces informações confidenciais.

Permissões de acesso do usuário

Segredos no nível da conta de usuário:

  •           os segredos do Codespaces estão disponíveis para qualquer codespace que você criar usando repositórios que tenham acesso a esse segredo.
    

Segredos no nível do repositório:

  • Os usuários com acesso de administrador ao repositório podem criar e gerenciar Codespaces segredos.
  • 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 Codespaces segredos.
  • Os usuários com acesso de colaborador aos repositórios com acesso a cada segredo podem usar o segredo.

Limitações e restrições

  • Você pode armazenar até 100 segredos para GitHub Codespaces.
  • Os segredos são limitados a 48 KB.
  •           os segredos do Codespaces não são passados para forks.
    

Leitura adicional