Use AWS Secrets Manager em GitLab - AWS Secrets Manager

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Use AWS Secrets Manager em GitLab

AWS Secrets Manager integra-se com GitLab. Você pode aproveitar os segredos do Secrets Manager para proteger suas GitLab credenciais para que elas não sejam mais codificadas. GitLab Em vez disso, o GitLab Runner recupera esses segredos do Secrets Manager quando seu aplicativo executa um trabalho nos pipelines de GitLab CI/CD.

Para usar essa integração, você criará um provedor de identidade OpenID Connect (OIDC) no IAM AWS Identity and Access Management e uma função do IAM. Isso permite que o GitLab Runner acesse seu segredo do Secrets Manager. Para obter mais informações sobre GitLab CI/CD e OIDC, consulte a documentação. GitLab

Considerações

Se você estiver usando uma GitLab instância não pública, não poderá usar essa integração com o Secrets Manager. Em vez disso, consulte a GitLab documentação de instâncias não públicas.

Pré-requisitos

Para integrar o Secrets Manager com GitLab, preencha os seguintes pré-requisitos:

  1. Crie um AWS Secrets Manager segredo

    Você precisará de um segredo do Secrets Manager que será recuperado em seu GitLab trabalho e eliminará a necessidade de codificar essas credenciais. Você precisará do ID secreto do Secrets Manager ao configurar seu GitLab pipeline. Consulte Crie um AWS Secrets Manager segredo para obter mais informações.

  2. Crie GitLab seu provedor OIDC no console do IAM.

    Nesta etapa, você criará GitLab seu provedor OIDC no console do IAM. Para obter mais informações, consulte Criar um provedor de identidade e documentação do OpenID Connect (OIDC). GitLab

    Ao criar o provedor OIDC no console do IAM, use as seguintes configurações:

    1. Defina o provider URL para sua GitLab instância. Por exemplo, .gitlab.example.com

    2. Defina o audience ou aud parasts.amazonaws.com.

  3. Criar uma política e um perfil do IAM

    Você precisará criar uma função e uma política do IAM. Essa função é assumida por GitLab with AWS Security Token Service (STS). Consulte Criar uma função usando políticas de confiança personalizadas para obter mais informações.

    1. No console do IAM, use as seguintes configurações ao criar a função do IAM:

      • Defina Trusted entity type como Web identity.

      • Defina Group como your GitLab group.

      • Identity providerDefina com o mesmo URL do provedor (a GitLab instância) que você usou na etapa 2.

      • AudienceDefina para o mesmo público que você usou na etapa 2.

    2. Você também precisará criar uma política do IAM para permitir o GitLab acesso AWS Secrets Manager a. Você pode adicionar essa política à sua política de confiança. Para obter mais informações, consulte Criar políticas do IAM.

Integrando com AWS Secrets Manager GitLab

Depois de concluir os pré-requisitos, você pode configurar GitLab para usar o Secrets Manager para proteger suas credenciais.

Configurar o GitLab pipeline para usar o Secrets Manager

Você precisará atualizar seu arquivo de configuração de GitLab CI/CD com as seguintes informações:

  • O público do token definido como STS.

  • O ID secreto do Secrets Manager.

  • A função do IAM que você deseja que o GitLab Runner assuma ao executar trabalhos no GitLab pipeline.

  • O Região da AWS local onde o segredo está armazenado.

GitLab busca o segredo do Secrets Manager e armazena o valor em um arquivo temporário. O caminho para esse arquivo é armazenado em uma CI/CD variável, semelhante às variáveis CI/CD do tipo de arquivo.

Veja a seguir um trecho do arquivo YAML para um arquivo de configuração GitLab CI/CD:

variables: AWS_REGION: us-east-1 AWS_ROLE_ARN: 'arn:aws:iam::111122223333:role/gitlab-role' job: id_tokens: AWS_ID_TOKEN: aud: 'sts.amazonaws.com' secrets: DATABASE_PASSWORD: aws_secrets_manager: secret_id: "arn:aws:secretsmanager:us-east-1:111122223333:secret:secret-name"

Para obter mais informações, consulte a documentação de integração do GitLab Secrets Manager.

Opcionalmente, você pode testar sua configuração do OIDC em. GitLab Consulte a GitLab documentação para testar a configuração do OIDC para obter mais informações.

Solução de problemas

O seguinte pode ajudá-lo a solucionar problemas comuns que você pode encontrar ao integrar o Secrets Manager com o. GitLab

GitLab Problemas de tubulação

Se você tiver problemas no GitLab pipeline, verifique o seguinte:

  • Seu arquivo YAML está formatado corretamente. Para obter mais informações, consulte a documentação da GitLab.

  • Seu GitLab funil está assumindo a função correta, tem as permissões apropriadas e acesso ao AWS Secrets Manager segredo correto.

Recursos adicionais

Os recursos a seguir podem ajudá-lo a solucionar problemas com GitLab e AWS Secrets Manager: