View a markdown version of this page

Utilisation AWS Secrets Manager dans GitLab - AWS Secrets Manager

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utilisation AWS Secrets Manager dans GitLab

AWS Secrets Manager s'intègre à GitLab. Vous pouvez tirer parti des secrets de Secrets Manager pour protéger vos GitLab informations d'identification afin qu'elles ne soient plus codées en GitLab dur. GitLab Runner récupère plutôt ces secrets à partir de Secrets Manager lorsque votre application exécute une tâche en cours GitLab CI/CD .

Pour utiliser cette intégration, vous allez créer un fournisseur d'identité OpenID Connect (OIDC) dans IAM Gestion des identités et des accès AWS et un rôle IAM. Cela permet à GitLab Runner d'accéder au secret de votre Gestionnaire de secrets. Pour plus d'informations sur GitLab CI/CD l'OIDC, consultez GitLab la documentation.

Considérations

Si vous utilisez une GitLab instance non publique, vous ne pouvez pas utiliser cette intégration de Secrets Manager. Consultez plutôt la GitLab documentation pour les instances non publiques.

Conditions préalables

Pour intégrer Secrets Manager à GitLab, remplissez les conditions préalables suivantes :

  1. Créez un AWS Secrets Manager secret

    Vous aurez besoin d'un code secret de Secrets Manager qui sera récupéré dans votre GitLab tâche et vous évitera d'avoir à coder ces informations d'identification en dur. Vous aurez besoin de l'ID secret de Secrets Manager pour configurer votre GitLab pipeline. Pour plus d’informations, consultez Créez un AWS Secrets Manager secret.

  2. Définissez GitLab votre fournisseur OIDC dans la console IAM.

    Au cours de cette étape, vous allez définir GitLab votre fournisseur OIDC dans la console IAM. Pour plus d'informations, consultez Création d'un fournisseur d'identité OpenID Connect (OIDC) et GitLab documentation.

    Lorsque vous créez le fournisseur OIDC dans la console IAM, utilisez les configurations suivantes :

    1. Configurez provider URL le sur votre GitLab instance. Par exemple, gitlab.example.com.

    2. Réglez le audience ou aud sursts.amazonaws.com.

  3. Création d'un rôle et d'une politique IAM

    Vous devez créer un rôle et une politique IAM. Ce rôle est assumé par GitLab with AWS Security Token Service (STS). Consultez la section Création d'un rôle à l'aide de politiques de confiance personnalisées pour plus d'informations.

    1. Dans la console IAM, utilisez les paramètres suivants lors de la création du rôle IAM :

      • Définissez Trusted entity type sur Web identity.

      • Définissez Group sur your GitLab group.

      • Définissez Identity provider la même URL du fournisseur (l'GitLab instance) que vous avez utilisée à l'étape 2.

      • Choisissez Audience le même public que celui que vous avez utilisé à l'étape 2.

    2. Voici un exemple de politique de confiance qui permet d' GitLab assumer des rôles. Votre politique de confiance doit répertorier votre GitLab adresse Compte AWS, votre URL et le chemin du projet.

      { "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. Vous devrez également créer une politique IAM pour autoriser l' GitLab accès à AWS Secrets Manager. Vous pouvez ajouter cette politique à votre politique de confiance. Pour plus d'informations, consultez la section Créer des politiques IAM.

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

Intégration AWS Secrets Manager avec GitLab

Après avoir rempli les prérequis, vous pouvez configurer GitLab pour utiliser Secrets Manager afin de protéger vos informations d'identification.

Configurer le GitLab pipeline pour utiliser Secrets Manager

Vous devez mettre à jour votre fichier GitLab CI/CD de configuration avec les informations suivantes :

  • L'audience du jeton définie sur STS.

  • L'ID secret du Secrets Manager.

  • Le rôle IAM que vous souhaitez que GitLab Runner assume lors de l'exécution de tâches dans le GitLab pipeline.

  • L' Région AWS endroit où le secret est stocké.

GitLab récupère le secret depuis Secrets Manager et stocke la valeur dans un fichier temporaire. Le chemin d'accès à ce fichier est enregistré dans une CI/CD variable, de la même manière que les CI/CD variables de type de fichier.

Voici un extrait du fichier YAML d'un GitLab CI/CD fichier de configuration :

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"

Pour plus d'informations, consultez la documentation d'intégration de GitLab Secrets Manager.

Vous pouvez éventuellement tester votre configuration OIDC dans GitLab. Consultez GitLab la documentation pour tester la configuration OIDC pour plus d'informations.

Résolution des problèmes

Les informations suivantes peuvent vous aider à résoudre les problèmes courants que vous pouvez rencontrer lors de l'intégration de Secrets Manager à GitLab.

GitLab Problèmes liés aux pipelines

Si vous rencontrez des problèmes de GitLab pipeline, assurez-vous de ce qui suit :

  • Votre fichier YAML est correctement formaté. Pour plus d’informations, consultez la documentation GitLab.

  • Votre GitLab pipeline assume le rôle approprié, dispose des autorisations appropriées et a accès au bon AWS Secrets Manager secret.

Ressources supplémentaires

Les ressources suivantes peuvent vous aider à résoudre les problèmes liés à GitLab et AWS Secrets Manager :