Configuration de l'accès au référentiel - Amazon EKS

Aidez à améliorer cette page

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.

Pour contribuer à ce guide de l'utilisateur, cliquez sur le GitHub lien Modifier cette page sur qui se trouve dans le volet droit de chaque page.

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.

Configuration de l'accès au référentiel

Avant de déployer des applications, configurez Argo CD pour accéder à vos référentiels Git et à vos registres de diagrammes Helm. Argo CD prend en charge plusieurs méthodes d'authentification pour GitHub GitLab, Bitbucket et AWS CodeCommit AWS ECR.

Note

Pour les intégrations de AWS services directes (graphiques ECR Helm, CodeCommit référentiels, etc. CodeConnections), vous pouvez les référencer directement dans les ressources de l'application sans créer de configurations de référentiel. Le rôle de capacité doit disposer des autorisations IAM requises. Consultez Configurer les autorisations d'Argo CD pour plus de détails.

Conditions préalables

  • Création d'un cluster EKS doté de la fonctionnalité Argo CD

  • Référentiels Git contenant des manifestes Kubernetes

  • kubectlconfiguré pour communiquer avec votre cluster

Note

Pour la réutilisation des informations d'identification dans plusieurs référentiels, vous pouvez utiliser des modèles d'informations d'identification de référentiel (repocreds). Pour plus d'informations, consultez la section Référentiels privés dans la documentation d'Argo CD.

Méthodes d’authentification

Method Cas d’utilisation Autorisations IAM nécessaires

Intégration directe aux AWS services

CodeCommit

Intégration directe aux référentiels AWS CodeCommit Git. Aucune configuration du référentiel n'est nécessaire.

codecommit:GitPull

CodeConnections

Connectez-vous à GitHub Bitbucket ou connectez-vous à Bitbucket grâce à l'authentification gérée. GitLab Nécessite la configuration de la connexion.

codeconnections:UseConnection

Graphiques ECR Helm

Intégration directe avec AWS ECR pour les cartes OCI Helm. Aucune configuration du référentiel n'est nécessaire.

ecr:GetAuthorizationToken, ecr:BatchGetImage, ecr:GetDownloadUrlForLayer

Configuration du référentiel avec informations d'identification

AWS Secrets Manager (nom d'utilisateur/jeton)

Stockez des jetons d'accès ou des mots de passe personnels

secretsmanager:GetSecretValue

AWS Gestionnaire de Secrets (clé SSH)

Utiliser l'authentification par clé SSH

secretsmanager:GetSecretValue

AWS Secrets Manager (GitHub App)

GitHub Authentification des applications avec clé privée

secretsmanager:GetSecretValue

Le secret de Kubernetes

Méthode Argo CD standard utilisant des secrets intégrés au cluster

Aucune (politique de confiance uniquement)

Accès direct aux AWS services

Pour les AWS services, vous pouvez les référencer directement dans les ressources de l'application sans créer de configurations de référentiel. Le rôle de capacité doit disposer des autorisations IAM requises.

CodeCommit référentiels

CodeCommit Référencez les référentiels directement dans les applications :

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

Autorisations de rôle de capacité requises :

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

CodeConnections

Reference GitHub GitLab, ou référentiels Bitbucket via. CodeConnections Le format de l'URL du référentiel est dérivé de l'ARN de CodeConnections connexion.

Le format de l'URL du référentiel est le suivant :

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

Autorisations de rôle de capacité requises :

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

Graphiques ECR Helm

L'ECR stocke les diagrammes Helm sous forme d'artefacts OCI. Argo CD permet de les référencer de deux manières :

Format Helm (recommandé pour les diagrammes Helm) :

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

Remarque : N'incluez pas le oci:// préfixe lorsque vous utilisez le format Helm. Utilisez le chart champ pour spécifier le nom du graphique.

Format OCI (pour les artefacts OCI avec des manifestes Kubernetes) :

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

Remarque : Incluez le oci:// préfixe lorsque vous utilisez le format OCI. Utilisez le path champ au lieu dechart.

Autorisations de rôle de capacité requises :

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

Utilisation de AWS Secrets Manager

Stockez les informations d'identification du référentiel dans Secrets Manager et référencez-les dans les configurations du référentiel Argo CD.

Authentification par nom d'utilisateur et token

Pour les référentiels HTTPS dotés de jetons d'accès ou de mots de passe personnels :

Créez le secret dans 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"}'

Champs de certificat client TLS facultatifs (pour les serveurs Git privés) :

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

Les tlsClientCertKey valeurs tlsClientCertData et doivent être codées en base64.

Créez un secret de dépôt faisant référence à Secrets Manager :

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

Authentification par clé SSH

Pour un accès Git basé sur SSH, stockez la clé privée en texte brut (et non en JSON) :

Créez le secret avec la clé privée SSH :

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-----"

Créez un secret de dépôt pour 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 Authentification par application

Pour GitHub l'authentification des applications à l'aide d'une clé privée :

Créez le secret avec les informations d'identification de GitHub l'application :

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

La githubAppPrivateKeySecret valeur doit être codée en base64.

Champ facultatif pour GitHub Enterprise :

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

Créez un secret de dépôt pour GitHub l'application :

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
Important

Assurez-vous que votre rôle de capacité IAM dispose secretsmanager:GetSecretValue d'autorisations pour les secrets que vous créez. Voir Considérations relatives à Argo CD pour la configuration de la politique IAM.

En utilisant AWS CodeConnections

Pour CodeConnections l'intégration, voirConnectez-vous aux référentiels Git avec AWS CodeConnections.

CodeConnections fournit une authentification gérée pour GitHub GitLab, et Bitbucket sans stocker les informations d'identification.

Utilisation des secrets de Kubernetes

Stockez les informations d'identification directement dans Kubernetes à l'aide de la méthode Argo CD standard.

Pour le protocole HTTPS avec jeton d'accès personnel :

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

Pour 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-----

Référentiels publics

Aucune configuration supplémentaire n'est requise pour les référentiels publics :

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 référentiels

Pour AWS CodeCommit, accordez les CodeCommit autorisations de votre rôle de capacité IAM (codecommit:GitPull).

Configurez le référentiel :

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

Pour une configuration détaillée de la politique IAM, consultezConsidérations relatives à Argo CD.

Vérifier la connexion au référentiel

Vérifiez l'état de la connexion via l'interface utilisateur d'Argo CD sous Paramètres → Référentiels. L'interface utilisateur indique l'état de la connexion et les éventuelles erreurs d'authentification.

Les secrets du référentiel n'incluent pas d'informations sur le statut.

Ressources supplémentaires