Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Verwenden Sie AWS Secrets Manager in GitLab
AWS Secrets Manager integriert mit GitLab. Sie können Secrets Manager-Geheimnisse nutzen, um Ihre GitLab Anmeldeinformationen zu schützen, sodass sie nicht mehr fest codiert GitLab sind. Stattdessen ruft
Um diese Integration zu verwenden, erstellen Sie einen OpenID Connect (OIDC) -Identitätsanbieter in IAM und eine AWS Identity and Access Management IAM-Rolle. Dadurch kann GitLab Runner auf Ihr Secrets Manager-Geheimnis zugreifen. Weitere Informationen zu GitLab CI/CD und OIDC finden GitLab Sie in der Dokumentation.
Überlegungen
Wenn Sie eine nicht öffentliche GitLab Instanz verwenden, können Sie diese Secrets Manager-Integration nicht verwenden. Lesen Sie stattdessen die GitLab Dokumentation für nicht öffentliche Instanzen.
Voraussetzungen
Um Secrets Manager mit zu integrieren GitLab, müssen die folgenden Voraussetzungen erfüllt sein:
-
Erstellen Sie eine AWS Secrets Manager Secret
Sie benötigen ein Secrets Manager-Geheimnis, das bei Ihrem GitLab Job abgerufen wird, sodass Sie diese Anmeldeinformationen nicht fest codieren müssen. Sie benötigen die Secrets Manager-ID, wenn Sie Ihre GitLab Pipeline Konfigurieren Sie die GitLab Pipeline für die Verwendung von Secrets Manager konfigurieren. Weitere Informationen finden Sie unter Erstellen Sie eine AWS Secrets Manager Secret.
-
Geben Sie in der IAM-Konsole GitLab Ihren OIDC-Anbieter ein.
In diesem Schritt machen Sie GitLab Ihren OIDC-Anbieter in der IAM-Konsole. Weitere Informationen finden Sie unter Erstellen eines OpenID Connect (OIDC) -Identitätsdienstleisters und in der Dokumentation. GitLab
Verwenden Sie beim Erstellen des OIDC-Anbieters in der IAM-Konsole die folgenden Konfigurationen:
-
Stellen Sie das auf Ihre Instance
provider URLein. GitLab Beispiel,gitlab.example.com. -
Setze das
audienceoderaudaufsts.amazonaws.com.
-
-
Erstellen Sie eine IAM-Rolle und -Richtlinie
Sie müssen eine IAM-Rolle und -Richtlinie erstellen. Diese Rolle wird von GitLab with AWS -Security-Token-Service (STS) übernommen. Weitere Informationen finden Sie unter Erstellen einer Rolle mithilfe benutzerdefinierter Vertrauensrichtlinien.
-
Verwenden Sie in der IAM-Konsole die folgenden Einstellungen, wenn Sie die IAM-Rolle erstellen:
-
Setzen Sie
Trusted entity typeaufWeb identity. -
Setzen Sie
Groupaufyour GitLab group. -
Stellen
Identity providerSie dieselbe Anbieter-URL (die GitLab Instanz) ein, die Sie in Schritt 2 verwendet haben. -
Stellen
AudienceSie dieselbe Zielgruppe ein, die Sie in Schritt 2 verwendet haben.
-
-
Das Folgende ist ein Beispiel für eine Vertrauensrichtlinie, die es ermöglicht, Rollen GitLab zu übernehmen. In Ihrer Vertrauensrichtlinie sollten Ihre AWS-Konto GitLab URL und Ihr Projektpfad aufgeführt sein
. -
{ "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*" ] } } } ] }
-
Sie müssen außerdem eine IAM-Richtlinie erstellen, um den GitLab Zugriff darauf zu AWS Secrets Manager ermöglichen. Sie können diese Richtlinie zu Ihrer Vertrauensrichtlinie hinzufügen. Weitere Informationen finden Sie unter IAM-Richtlinien https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html erstellen.
-
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "secretsmanager:GetSecretValue", "Resource": "arn:aws:secretsmanager:us-east-1:111122223333:secret:your-secret" } ] }
-
Integration AWS Secrets Manager mit GitLab
Nachdem Sie die Voraussetzungen erfüllt haben, können Sie GitLab die Verwendung von Secrets Manager zum Schutz Ihrer Anmeldeinformationen konfigurieren.
Konfigurieren Sie die GitLab Pipeline für die Verwendung von Secrets Manager
Sie müssen Ihre GitLab CI/CD Konfigurationsdatei
-
Die Zielgruppe des Tokens, das auf STS gesetzt ist.
-
Die geheime ID von Secrets Manager.
-
Die IAM-Rolle, die GitLab Runner bei der Ausführung von Jobs in der GitLab Pipeline übernehmen soll.
-
Der AWS-Region Ort, an dem das Geheimnis gespeichert ist.
GitLab ruft das Geheimnis von Secrets Manager ab und speichert den Wert in einer temporären Datei. Der Pfad zu dieser Datei wird in einer CI/CD Variablen gespeichert, ähnlich wie bei CI/CD Dateitypvariablen
Das Folgende ist ein Ausschnitt aus der YAML-Datei für eine GitLab CI/CD Konfigurationsdatei:
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"
Weitere Informationen finden Sie in der Dokumentation zur GitLab Secrets Manager-Integration.
Optional können Sie Ihre OIDC-Konfiguration in testen. GitLab Weitere Informationen finden Sie in der GitLab Dokumentation zum Testen der OIDC-Konfiguration
Fehlerbehebung
Das Folgende kann Ihnen bei der Behebung häufiger Probleme helfen, die bei der Integration von Secrets Manager auftreten können. GitLab
GitLab Probleme mit der Pipeline
Wenn Probleme mit der GitLab Pipeline auftreten, stellen Sie Folgendes sicher:
-
Ihre YAML-Datei ist ordnungsgemäß formatiert. Weitere Informationen finden Sie in der GitLab-Dokumentation
. -
Ihre GitLab Pipeline nimmt die richtige Rolle an, hat die entsprechenden Berechtigungen und Zugriff auf das richtige AWS Secrets Manager Geheimnis.
Weitere Ressourcen
Die folgenden Ressourcen können Ihnen bei der Behebung von Problemen mit GitLab und helfen AWS Secrets Manager: