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

AWS CodeConnections kann eine Verbindung zu Git-Servern herstellen, die sich in der AWS Cloud oder vor Ort befinden. Weitere Informationen finden Sie unter AWS CodeConnections.

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 OCI-Artefakte

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

arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryPullOnly

Repository-Konfiguration mit Anmeldeinformationen

AWS Secrets Manager (Benutzername/Token)

Speichern Sie persönliche Zugriffstoken oder Passwörter. Ermöglicht die Rotation von Anmeldeinformationen ohne Kubernetes-Zugriff.

arn:aws:iam::aws:policy/AWSSecretsManagerClientReadOnlyAccess

AWS Secrets Manager (SSH-Schlüssel)

Verwenden Sie die SSH-Schlüsselauthentifizierung. Ermöglicht die Rotation von Anmeldeinformationen ohne Kubernetes-Zugriff.

arn:aws:iam::aws:policy/AWSSecretsManagerClientReadOnlyAccess

AWS Secrets Manager (GitHub App)

GitHub App-Authentifizierung mit privatem Schlüssel. Ermöglicht die Rotation von Anmeldeinformationen ohne Kubernetes-Zugriff.

arn:aws:iam::aws:policy/AWSSecretsManagerClientReadOnlyAccess

Kubernetes-Geheimnis

Standard-Argo-CD-Methode mit Cluster-internen Geheimnissen

Keine (Berechtigungen werden von EKS Access Entry mit Kubernetes RBAC verwaltet)

Direkter Zugriff auf Dienste AWS

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

CodeCommit Referenz-Repositorien direkt in Anwendungen:

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 — fügen Sie die verwaltete Richtlinie an:

arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryPullOnly

Diese Richtlinie umfasst die erforderlichen ECR-Berechtigungen: ecr:GetAuthorizationTokenecr:BatchGetImage, undecr:GetDownloadUrlForLayer.

AWS Secrets Manager verwenden

Speichern Sie die Repository-Anmeldeinformationen in Secrets Manager und referenzieren Sie sie in den Argo CD Repository-Konfigurationen. Die Verwendung von Secrets Manager ermöglicht die automatische Rotation von Anmeldeinformationen, ohne dass Kubernetes RBAC-Zugriff erforderlich ist. Anmeldeinformationen können mithilfe von IAM-Berechtigungen an Secrets Manager rotiert werden, und Argo CD liest die aktualisierten Werte automatisch.

Anmerkung

Für die Wiederverwendung von Anmeldeinformationen in mehreren Repositorys (z. B. für alle Repositorys innerhalb einer Organisation) verwenden Sie Vorlagen für Repository-Anmeldeinformationen mit. GitHub argocd.argoproj.io/secret-type: repo-creds Dies bietet eine bessere Benutzererfahrung als die Erstellung einzelner Repository-Geheimnisse. Weitere Informationen finden Sie unter Repository-Anmeldeinformationen in der Argo-CD-Dokumentation.

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 Anmeldeinformationen für die GitHub App:

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

Vorlagen für Repository-Anmeldeinformationen

Für die Wiederverwendung von Anmeldeinformationen in mehreren Repositorys (z. B. für alle Repositorys einer GitHub Organisation oder eines Benutzers) verwenden Sie Vorlagen für Repository-Anmeldeinformationen mit. argocd.argoproj.io/secret-type: repo-creds Dies bietet eine bessere Benutzererfahrung als die Erstellung von individuellen Repository-Geheimnissen für jedes Repository.

Erstellen Sie eine Vorlage für Repository-Anmeldeinformationen:

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

Diese Vorlage für Anmeldeinformationen gilt für alle Repositorys, die dem URL-Präfix entsprechen. https://github.com/your-org Sie können dann in Anwendungen auf jedes Repository dieser Organisation verweisen, ohne zusätzliche Geheimnisse zu erstellen.

Weitere Informationen finden Sie unter Repository-Anmeldeinformationen in der Argo-CD-Dokumentation.

Wichtig

Stellen Sie sicher, dass Ihrer IAM-Capability-Rolle die verwaltete Richtlinie oder gleichwertige Berechtigungen, einschließlich secretsmanager:GetSecretValue KMS-Entschlüsselungsberechtigungen, arn:aws:iam::aws:policy/AWSSecretsManagerClientReadOnlyAccess zugewiesen sind. Informationen Überlegungen zu Argo CD zur Konfiguration der IAM-Richtlinie 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-----

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