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
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:
-
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.
-
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:
-
Configúralo en tu
provider URLinstancia. 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úrala en la misma URL del proveedor (la GitLab instancia) que utilizaste 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. 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*" ] } } } ] }
-
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
-
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
A continuación se muestra un fragmento del archivo YAML para un GitLab CI/CD archivo de configuración:
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, 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
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: