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.