Repository-Zugriff konfigurieren - Amazon EKS

Unterstützung für die Verbesserung dieser Seite beitragen

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.

Um zu diesem Benutzerhandbuch beizutragen, wählen Sie den GitHub Link Diese Seite bearbeiten auf, der sich im rechten Bereich jeder Seite befindet.

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.

Repository-Zugriff konfigurieren

Bevor Sie Anwendungen bereitstellen, konfigurieren Sie Argo CD für den Zugriff auf Ihre Git-Repositorys und Helm-Chart-Registries. Argo CD unterstützt mehrere Authentifizierungsmethoden für GitHub, GitLab, Bitbucket und ECR. AWS CodeCommit AWS

Anmerkung

Bei direkten AWS Serviceintegrationen (ECR-Helm-Diagramme, CodeCommit Repositorys und CodeConnections) können Sie direkt in den Anwendungsressourcen darauf verweisen, ohne Repository-Konfigurationen erstellen zu müssen. Die Capability-Rolle muss über die erforderlichen IAM-Berechtigungen verfügen. Details dazu finden Sie unter Argo-CD-Berechtigungen konfigurieren.

Voraussetzungen

  • Es wurde ein EKS-Cluster mit der Argo-CD-Funktion erstellt

  • Git-Repositorys, die Kubernetes-Manifeste enthalten

  • kubectlkonfiguriert für die Kommunikation mit Ihrem Cluster

Anmerkung

Für die Wiederverwendung von Anmeldeinformationen in mehreren Repositorys können Sie Vorlagen für Repository-Anmeldeinformationen (repocreds) verwenden. Weitere Informationen finden Sie unter Private Repositories in der Argo-CD-Dokumentation.

Authentifizierungsmethoden

Methode Anwendungsfall Erforderliche IAM-Berechtigungen

Direkte Integration mit Diensten AWS

CodeCommit

Direkte Integration mit AWS CodeCommit Git-Repositorys. Keine Repository-Konfiguration erforderlich.

codecommit:GitPull

CodeConnections

Stellen Sie mit verwalteter Authentifizierung eine Connect zu GitHub GitLab, oder Bitbucket her. Erfordert eine Verbindungseinrichtung.

codeconnections:UseConnection

ECR-Helm-Diagramme

Direkte Integration mit AWS ECR für OCI Helm-Charts. Keine Repository-Konfiguration erforderlich.

ecr:GetAuthorizationToken, ecr:BatchGetImage, ecr:GetDownloadUrlForLayer

Repository-Konfiguration mit Anmeldeinformationen

AWS Secrets Manager (Benutzername/Token)

Speichern Sie persönliche Zugriffstoken oder Passwörter

secretsmanager:GetSecretValue

AWS Secrets Manager (SSH-Schlüssel)

Verwenden Sie die SSH-Schlüsselauthentifizierung

secretsmanager:GetSecretValue

AWS Secrets Manager (GitHub App)

GitHub App-Authentifizierung mit privatem Schlüssel

secretsmanager:GetSecretValue

Kubernetes Secret

Standard-Argo-CD-Methode unter Verwendung von Cluster-internen Geheimnissen

Keine (nur Vertrauensrichtlinie)

Direkter Zugriff auf AWS Dienste

AWS Dienste können Sie direkt in den Anwendungsressourcen referenzieren, ohne Repository-Konfigurationen erstellen zu müssen. Die Capability-Rolle muss über die erforderlichen IAM-Berechtigungen verfügen.

CodeCommit Repositorien

Verweisen Sie direkt in Anwendungen auf CodeCommit Repositorys:

apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: my-app namespace: argocd spec: source: repoURL: https://git-codecommit.region.amazonaws.com/v1/repos/repository-name targetRevision: main path: kubernetes/manifests

Erforderliche Berechtigungen für Capability Role:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codecommit:GitPull", "Resource": "arn:aws:codecommit:region:account-id:repository-name" } ] }

CodeConnections

Referenz GitHub - GitLab oder Bitbucket-Repositorys durch. CodeConnections Das Repository-URL-Format wird vom CodeConnections Verbindungs-ARN abgeleitet.

Das Repository-URL-Format ist:

apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: my-app namespace: argocd spec: source: repoURL: https://codeconnections.region.amazonaws.com/git-http/account-id/region/connection-id/owner/repository.git targetRevision: main path: kubernetes/manifests

Erforderliche Berechtigungen für Capability Role:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codeconnections:UseConnection", "Resource": "arn:aws:codeconnections:region:account-id:connection/connection-id" } ] }

ECR-Helm-Diagramme

ECR speichert Helm-Diagramme als OCI-Artefakte. Argo CD unterstützt zwei Möglichkeiten, auf sie zu verweisen:

Helm-Format (empfohlen für Helm-Charts):

apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: my-app-helm namespace: argocd spec: source: repoURL: account-id.dkr.ecr.region.amazonaws.com/repository-name targetRevision: chart-version chart: chart-name helm: valueFiles: - values.yaml

Hinweis: Geben Sie das oci:// Präfix nicht an, wenn Sie das Helm-Format verwenden. Verwenden Sie das chart Feld, um den Namen des Diagramms anzugeben.

OCI-Format (für OCI-Artefakte mit Kubernetes-Manifesten):

apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: my-app-oci namespace: argocd spec: source: repoURL: oci://account-id.dkr.ecr.region.amazonaws.com/repository-name targetRevision: artifact-version path: path-to-manifests

Hinweis: Geben Sie das oci:// Präfix an, wenn Sie das OCI-Format verwenden. Verwenden Sie das path Feld anstelle von. chart

Erforderliche Berechtigungen für Capability Role:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecr:GetAuthorizationToken", "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer" ], "Resource": "*" } ] }

AWS Secrets Manager verwenden

Speichern Sie die Repository-Anmeldeinformationen in Secrets Manager und referenzieren Sie sie in den Argo CD Repository-Konfigurationen.

Authentifizierung mit Benutzername und Token

Für HTTPS-Repositorys mit persönlichen Zugriffstoken oder Passwörtern:

Erstellen Sie das Geheimnis in Secrets Manager:

aws secretsmanager create-secret \ --name argocd/my-repo \ --description "GitHub credentials for Argo CD" \ --secret-string '{"username":"your-username","token":"your-personal-access-token"}'

Optionale Felder für TLS-Client-Zertifikate (für private Git-Server):

aws secretsmanager create-secret \ --name argocd/my-private-repo \ --secret-string '{ "username":"your-username", "token":"your-token", "tlsClientCertData":"LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi4uLgotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0t", "tlsClientCertKey":"LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCi4uLgotLS0tLUVORCBQUklWQVRFIEtFWS0tLS0t" }'
Anmerkung

Die tlsClientCertKey Werte tlsClientCertData und müssen base64-codiert sein.

Erstellen Sie ein Repository-Geheimnis, das auf Secrets Manager verweist:

apiVersion: v1 kind: Secret metadata: name: my-repo namespace: argocd labels: argocd.argoproj.io/secret-type: repository stringData: type: git url: https://github.com/your-org/your-repo secretArn: arn:aws:secretsmanager:us-west-2:111122223333:secret:argocd/my-repo-AbCdEf project: default

SSH-Schlüsselauthentifizierung

Für SSH-basierten Git-Zugriff speichern Sie den privaten Schlüssel als Klartext (nicht JSON):

Erstelle das Geheimnis mit dem privaten SSH-Schlüssel:

aws secretsmanager create-secret \ --name argocd/my-repo-ssh \ --description "SSH key for Argo CD" \ --secret-string "-----BEGIN OPENSSH PRIVATE KEY----- b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABlwAAAAdzc2gtcn ... -----END OPENSSH PRIVATE KEY-----"

Erstellen Sie ein Repository-Geheimnis für SSH:

apiVersion: v1 kind: Secret metadata: name: my-repo-ssh namespace: argocd labels: argocd.argoproj.io/secret-type: repository stringData: type: git url: git@github.com:your-org/your-repo.git secretArn: arn:aws:secretsmanager:us-west-2:111122223333:secret:argocd/my-repo-ssh-AbCdEf project: default

GitHub App-Authentifizierung

Für die GitHub App-Authentifizierung mit einem privaten Schlüssel:

Erstellen Sie das Geheimnis mit den GitHub App-Anmeldeinformationen:

aws secretsmanager create-secret \ --name argocd/github-app \ --description "GitHub App credentials for Argo CD" \ --secret-string '{ "githubAppPrivateKeySecret":"LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQouLi4KLS0tLS1FTkQgUlNBIFBSSVZBVEUgS0VZLS0tLS0=", "githubAppID":"123456", "githubAppInstallationID":"12345678" }'
Anmerkung

Der githubAppPrivateKeySecret Wert muss Base64-codiert sein.

Optionales Feld für Enterprise GitHub :

aws secretsmanager create-secret \ --name argocd/github-enterprise-app \ --secret-string '{ "githubAppPrivateKeySecret":"LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQouLi4KLS0tLS1FTkQgUlNBIFBSSVZBVEUgS0VZLS0tLS0=", "githubAppID":"123456", "githubAppInstallationID":"12345678", "githubAppEnterpriseBaseUrl":"https://github.example.com/api/v3" }'

Erstellen Sie einen geheimen Repository-Schlüssel für die GitHub App:

apiVersion: v1 kind: Secret metadata: name: my-repo-github-app namespace: argocd labels: argocd.argoproj.io/secret-type: repository stringData: type: git url: https://github.com/your-org/your-repo secretArn: arn:aws:secretsmanager:us-west-2:111122223333:secret:argocd/github-app-AbCdEf project: default
Wichtig

Stellen Sie sicher, dass Ihre IAM-Capability-Rolle über secretsmanager:GetSecretValue Berechtigungen für die von Ihnen erstellten Geheimnisse verfügt. Informationen Überlegungen zu Argo CD zur Konfiguration der IAM-Richtlinien finden Sie unter.

Verwenden AWS CodeConnections

Informationen zur CodeConnections Integration finden Sie unterConnect zu Git-Repositorys her mit AWS CodeConnections.

CodeConnections bietet verwaltete Authentifizierung für GitHub GitLab, und Bitbucket, ohne Anmeldeinformationen zu speichern.

Verwendung von Kubernetes Secrets

Speichern Sie Anmeldeinformationen mithilfe der Standard-Argo-CD-Methode direkt in Kubernetes.

Für HTTPS mit persönlichem Zugriffstoken:

apiVersion: v1 kind: Secret metadata: name: my-repo namespace: argocd labels: argocd.argoproj.io/secret-type: repository stringData: type: git url: https://github.com/your-org/your-repo username: your-username password: your-personal-access-token

Für SSH:

apiVersion: v1 kind: Secret metadata: name: my-repo-ssh namespace: argocd labels: argocd.argoproj.io/secret-type: repository stringData: type: git url: git@github.com:your-org/your-repo.git sshPrivateKey: | -----BEGIN OPENSSH PRIVATE KEY----- ... your private key ... -----END OPENSSH PRIVATE KEY-----

Öffentliche Repositorien

Für öffentliche Repositorien ist keine zusätzliche Konfiguration erforderlich:

apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: public-app namespace: argocd spec: source: repoURL: https://github.com/argoproj/argocd-example-apps targetRevision: HEAD path: guestbook # ... rest of configuration

CodeCommit Repositorien

Erteilen Sie für AWS CodeCommit Ihre CodeCommit IAM-Capability-Rollenberechtigungen ()codecommit:GitPull.

Konfigurieren Sie das Repository:

apiVersion: v1 kind: Secret metadata: name: codecommit-repo namespace: argocd labels: argocd.argoproj.io/secret-type: repository stringData: type: git url: https://git-codecommit.us-west-2.amazonaws.com/v1/repos/my-repo project: default

Eine detaillierte Konfiguration der IAM-Richtlinien finden Sie unterÜberlegungen zu Argo CD.

Überprüfen Sie die Verbindung zum Repository

Überprüfen Sie den Verbindungsstatus über die Benutzeroberfläche von Argo CD unter Einstellungen → Repositories. Die Benutzeroberfläche zeigt den Verbindungsstatus und alle Authentifizierungsfehler an.

Repository Secrets enthalten keine Statusinformationen.

Weitere Ressourcen