View a markdown version of this page

Uso AWS Secrets Manager en GitLab - AWS Secrets Manager

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Uso AWS Secrets Manager en GitLab

AWS Secrets Manager se integra con GitLab. Puede aprovechar los secretos de Secrets Manager para proteger sus GitLab credenciales y dejar de guardarlas codificadas GitLab. En su lugar, GitLab Runner recupera estos secretos de Secrets Manager cuando tu aplicación ejecuta un trabajo en proceso. GitLab CI/CD

Para usar esta integración, creará un proveedor de identidad de OpenID Connect (OIDC) en IAM y un rol de AWS Identity and Access Management IAM. Esto permite a GitLab Runner acceder a tu secreto de Secrets Manager. Para obtener más información sobre el GitLab CI/CD OIDC, consulte GitLab la documentación.

Consideraciones

Si usas una GitLab instancia no pública, no puedes usar esta integración de Secrets Manager. En su lugar, consulta GitLab la documentación de las instancias no públicas.

Requisitos previos

Para integrar Secrets Manager con GitLab, complete los siguientes requisitos previos:

  1. Cree un AWS Secrets Manager secreta

    Necesitará un secreto de Secrets Manager que se recuperará en su GitLab trabajo y eliminará la necesidad de codificar estas credenciales de forma rígida. Necesitarás el identificador secreto de Secrets Manager cuando configures tu GitLab canalización. Para obtener más información, consulte Crea un AWS Secrets Manager secreta.

  2. Selecciona GitLab tu proveedor de OIDC en la consola de IAM.

    En este paso, seleccionará GitLab su proveedor de OIDC en la consola de IAM. Para obtener más información, consulte la documentación y la creación de un proveedor de identidad de OpenID Connect (OIDC). GitLab

    Al crear el proveedor de OIDC en la consola de IAM, debe utilizar las siguientes configuraciones:

    1. Configúralo en tu provider URL instancia. GitLab Por ejemplo, gitlab.example.com.

    2. Establezca audience o aud en sts.amazonaws.com.

  3. Creación de una política y un rol de IAM

    Deberá crear un rol de IAM y una política. Esta función la asume GitLab with AWS Security Token Service (STS). Para obtener más información, consulte Crear un rol mediante políticas de confianza personalizadas.

    1. En la consola de IAM, utilice la siguiente configuración al crear el rol de IAM:

      • Establece Trusted entity type en Web identity.

      • Establece Group en your GitLab group.

      • Identity providerConfigúrala en la misma URL del proveedor (la GitLab instancia) que utilizaste en el paso 2.

      • Establezca Audience en la misma audiencia que utilizó en el paso 2.

    2. El siguiente es un ejemplo de una política de confianza que GitLab permite asumir funciones. Su política de confianza debe incluir su Cuenta de AWS GitLab URL y la ruta del proyecto.

      { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sts:AssumeRoleWithWebIdentity", "Principal": { "Federated": "arn:aws:iam::111122223333:oidc-provider/gitlab.example.com" }, "Condition": { "StringEquals": { "gitlab.example.com:aud": [ "sts.amazon.com" ] }, "StringLike": { "gitlab.example.com:sub": [ "project_path:mygroup/project-*:ref_type:branch-*:ref:main*" ] } } } ] }
    3. También tendrás que crear una política de IAM para permitir el GitLab acceso a AWS Secrets Manager. Puede agregar esta política a la política de confianza. Para obtener más información, consulte Creación de políticas de IAM.

      { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "secretsmanager:GetSecretValue", "Resource": "arn:aws:secretsmanager:us-east-1:111122223333:secret:your-secret" } ] }

Integración AWS Secrets Manager con GitLab

Tras completar los requisitos previos, puede configurar GitLab el uso de Secrets Manager para proteger sus credenciales.

Configura GitLab Pipeline para usar Secrets Manager

Tendrás que actualizar tu archivo GitLab CI/CD de configuración con la siguiente información:

  • La audiencia del token establecido en STS.

  • El ID del secreto de Secrets Manager.

  • La función de IAM que quieres que asuma GitLab Runner al ejecutar los trabajos en GitLab proceso.

  • El Región de AWS lugar donde se almacena el secreto.

GitLab obtiene el secreto del Gestor de secretos y almacena el valor en un archivo temporal. La ruta a este archivo se almacena en una CI/CD variable, similar a CI/CD las variables de tipo de archivo.

A continuación se muestra un fragmento del archivo YAML para un GitLab CI/CD archivo de configuración:

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 obtener más información, consulta la documentación de integración de GitLab Secrets Manager.

Si lo desea, puede probar la configuración de OIDC en. GitLab Consulte GitLab la documentación para probar la configuración de OIDC para obtener más información.

Resolución de problemas

Lo siguiente puede ayudarle a solucionar los problemas comunes que pueden surgir al integrar Secrets Manager con. GitLab

GitLab Problemas de canalización

Si tiene problemas con las GitLab tuberías, asegúrese de lo siguiente:

  • El archivo YAML tiene el formato correcto. Para obtener más información, consulte Documentación de GitLab.

  • Tu GitLab canalización asume la función correcta, cuenta con los permisos adecuados y tiene acceso al AWS Secrets Manager secreto correcto.

Recursos adicionales

Los siguientes recursos pueden ayudarte a solucionar problemas relacionados con GitLab y AWS Secrets Manager: