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.
Úselo 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 evitar que estén codificadas GitLab. En su lugar, GitLab Runner
Para usar esta integración, creará un proveedor de identidad OpenID Connect (OIDC) en IAM y un rol de IAM AWS Identity and Access Management . Esto le permite a GitLab Runner acceder a tu secreto de Secrets Manager. Para obtener más información sobre el GitLab CI/CD y el OIDC, consulte la documentación. GitLab
Consideraciones
Si utilizas una GitLab instancia no pública, no puedes usar esta integración de Secrets Manager. En su lugar, consulte GitLab la documentación de las instancias no públicas
Requisitos previos
Para integrar Secrets Manager con GitLab, complete los siguientes requisitos previos:
-
Crea un secreto AWS Secrets Manager
Necesitarás un secreto de Secrets Manager que se recuperará en tu GitLab trabajo y que eliminará la necesidad de codificar estas credenciales de forma rígida. Necesitarás el ID secreto de Secrets Manager cuando configures tu GitLab canalización. Para obtener más información, consulte Crea un AWS Secrets Manager secreto.
-
Configura GitLab tu proveedor de OIDC en la consola de IAM.
En este paso, designará GitLab su proveedor de OIDC en la consola de IAM. Para obtener más información, consulte Crear un proveedor de identidad y la documentación de OpenID Connect (OIDC). GitLab
Al crear el proveedor de OIDC en la consola de IAM, debe utilizar las siguientes configuraciones:
-
Configúrelo en
provider URLsu instancia. GitLab Por ejemplo,gitlab.example.com. -
Establezca
audienceoaudensts.amazonaws.com.
-
-
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.
-
En la consola de IAM, utilice la siguiente configuración al crear el rol de IAM:
-
Establece
Trusted entity typeenWeb identity. -
Establece
Groupenyour GitLab group. -
Identity providerConfigúrelo en la misma URL del proveedor (la GitLab instancia) que utilizó en el paso 2. -
Establezca
Audienceen la misma audiencia que utilizó en el paso 2.
-
-
El siguiente es un ejemplo de una política de confianza que GitLab permite asumir funciones. Tu política de confianza debe incluir tu 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*" ] } } } ] }
-
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" } ] }
-
Integrarse con AWS Secrets Manager GitLab
Tras cumplir los requisitos previos, puede configurar GitLab el uso de Secrets Manager para proteger sus credenciales.
Configurar la GitLab canalización para usar Secrets Manager
Deberá actualizar el archivo de configuración de GitLab CI/CD
-
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 tareas en proceso. GitLab
-
El Región de AWS lugar donde se guarda el secreto.
GitLab obtiene el secreto de Secrets Manager y almacena el valor en un archivo temporal. La ruta a este archivo se almacena en una CI/CD variable, similar a las variables CI/CD de tipo archivo
El siguiente es un fragmento del archivo YAML para un archivo de configuración de CI/CD: GitLab
variables: AWS_REGION:us-east-1AWS_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, consulte la documentación de integración de GitLab Secrets Manager
Si lo desea, puede probar su configuración de OIDC en. GitLab Consulte GitLab la documentación para probar la configuración del OIDC
Resolución de problemas
Lo siguiente puede ayudarlo a solucionar problemas comunes que pueden surgir al integrar Secrets Manager con GitLab.
GitLab Problemas de canalización
Si tienes problemas con la GitLab canalización, asegúrate 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, tiene los permisos adecuados y acceso al AWS Secrets Manager secreto correcto.
Recursos adicionales
Los siguientes recursos pueden ayudarte a solucionar problemas relacionados con GitLab y AWS Secrets Manager: