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
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
Conditions préalables
Pour intégrer Secrets Manager à GitLab, remplissez les conditions préalables suivantes :
-
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.
-
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 :
-
Configurez
provider URLle sur votre GitLab instance. Par exemple,gitlab.example.com. -
Réglez le
audienceouaudsursts.amazonaws.com.
-
-
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.
-
Dans la console IAM, utilisez les paramètres suivants lors de la création du rôle IAM :
-
Définissez
Trusted entity typesurWeb identity. -
Définissez
Groupsuryour GitLab group. -
Définissez
Identity providerla même URL du fournisseur (l'GitLab instance) que vous avez utilisée à l'étape 2. -
Choisissez
Audiencele même public que celui que vous avez utilisé à l'étape 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*" ] } } } ] }
-
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
-
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-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"
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
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 :