Skip to main content

Segredos

Saiba mais sobre segredos conforme eles são usados em fluxos de trabalho do GitHub Actions.

Sobre segredos

Os segredos permitem que você armazene informações confidenciais na sua organização, repositório ou em ambientes do repositório. Segredos são variáveis que você cria para usar em fluxos de trabalho do GitHub Actions em uma organização, repositório ou ambiente de repositório.

GitHub Actions só poderá ler um segredo se você incluí-lo explicitamente em um fluxo de trabalho.

Segredos no nível da organização

Segredos no nível da organização permitem que você compartilhe segredos entre vários repositórios, o que reduz a necessidade de criar segredos duplicados. A atualização de um segredo de organização em um único local também garante que a alteração tenha efeito em todos os fluxos de trabalho do repositório que usam esse segredo.

Ao criar um segredo para uma organização, você poderá usar uma política para limitar o acesso por repositório. Por exemplo, você pode conceder acesso a todos os repositórios ou limitar o acesso a apenas repositórios privados ou a uma lista específica de repositórios.

Para segredos de ambiente, você pode habilitar os revisores necessários para controlar o acesso aos segredos. Um trabalho de fluxo de trabalho não pode acessar segredos de ambiente até que a aprovação seja concedida por aprovadores necessários.

Para disponibilizar um segredo para uma ação, você deve configurá-lo como uma entrada ou variável de ambiente no arquivo do fluxo de trabalho. Revise o arquivo README da ação para saber quais entradas e variáveis de ambientes a ação exige. Confira Sintaxe de fluxo de trabalho para o GitHub Actions.

Permissões limitadas de credenciais

Ao gerar credenciais, recomendamos que você conceda as permissões mínimas possíveis. Por exemplo, em vez de usar credenciais pessoais, use chaves de implantação ou uma conta de serviço. Considere conceder permissões somente leitura se isso o necessário e limite o acesso tanto quanto possível.

Ao gerar um personal access token (classic), selecione o menor número de escopos necessário. Ao gerar um fine-grained personal access token, selecione as permissões e o acesso ao repositório mínimos necessários.

Em vez de usar um personal access token, considere usar um GitHub App, que usa permissões refinadas e tokens de curta duração, similar a um fine-grained personal access token. Ao contrário de um personal access token, um GitHub App não está vinculado a um usuário, portanto, o fluxo de trabalho continuará funcionando mesmo que o usuário que instalou o aplicativo saia da organização. Para saber mais, confira Fazer solicitações de API autenticadas com um Aplicativo do GitHub em um fluxo de trabalho do GitHub Actions.

Segredos ocultados automaticamente

O GitHub Actions oculta automaticamente o conteúdo de todos os segredos do GitHub que são gravados nos logs dos fluxos de trabalho.

Além disso, o GitHub Actions oculta informações que são identificadas como confidenciais, mas que não estão armazenadas como um segredo. Para obter uma lista de segredos redigidos automaticamente, confira Referência de segredos.

Observação

Caso deseje que outros tipos de informações confidenciais sejam ocultados automaticamente, entre em contato conosco em nossas discussões da comunidade.

Como parte das melhores práticas, você deve colocar uma máscara em todas as informações confidenciais que não são segredos do GitHub ao usar ::add-mask::VALUE. Isso faz com que o valor seja tratado como um segredo e ocultado dos logs. Para obter mais informações sobre como colocar máscara em dados, confira Comandos de fluxo de trabalho para o GitHub Actions.

A ocultação dos segredos é realizada pelos seus executores de fluxos de trabalho. Isso significa que um segredo será ocultado somente se tiver sido usado em um trabalho e for acessível pelo executor. Caso um segredo não ocultado seja enviado nos logs de execução de fluxos de trabalho, você deverá excluir os logs e substituir o segredo. Para obter mais informações sobre como excluir logs, confira Using workflow run logs.

Leitura adicional