Cette page explique comment authentifier Config Sync auprès de votre dépôt d'images OCI ou Helm. Config Sync a besoin d'un accès en lecture seule à votre source fiable pour pouvoir lire vos configurations, les appliquer à vos clusters et les synchroniser.
Choisir une méthode d'authentification
La méthode d'authentification que vous utilisez dépend de ce qui est pris en charge pour votre type de source.
Le tableau suivant récapitule les méthodes d'authentification que vous pouvez utiliser avec Config Sync :
Méthode | Sources acceptées | Description | Limites |
---|---|---|---|
Pas d'authentification | Git, OCI, Helm | Aucune configuration supplémentaire n'est requise. | Ne fonctionne que si votre source de vérité est publique. |
Paire de clés SSH | Git | Compatible avec la plupart des fournisseurs Git. | Nécessite la gestion des clés. Non compatible avec OCI ni Helm. |
token | Git, Helm | Compatible avec la plupart des fournisseurs Git. Bonne alternative si votre organisation n'autorise pas l'utilisation de clés SSH. Compatible avec le nom d'utilisateur et le mot de passe pour Helm. | Nécessite la gestion des jetons. Les jetons peuvent expirer. Non compatible avec l'importation des conversions hors connexion. |
Compte de service Kubernetes | OCI, Helm | Utilise IAM pour accorder l'accès à Artifact Registry directement à un compte de service Kubernetes. La fédération d'identité de charge de travail pour GKE doit être activée sur votre cluster. | Non compatible avec Git. |
Compte de service Google | Git | Utilise IAM, ce qui évite de stocker les identifiants dans les secrets Kubernetes. Recommandé pour Secure Source Manager et Cloud Source Repositories. La fédération d'identité de charge de travail pour GKE doit être activée sur votre cluster. | Nécessite une configuration avant et après l'installation de Config Sync sur vos clusters. Non compatible avec les dépôts hébergés en dehors de Secure Source Manager ou Cloud Source Repositories. |
Application GitHub | Git | Intégration directe à GitHub. Permet des autorisations précises. | Uniquement disponible pour les dépôts hébergés dans GitHub. Compatible uniquement avec Config Sync version 1.19.1 et ultérieure. |
Config Sync accepte également les méthodes d'authentification suivantes. Toutefois, nous ne les recommandons que si vous ne pouvez pas utiliser l'une des options listées dans le tableau précédent :
- Il est possible que cookiefile ne soit pas compatible avec tous les fournisseurs Git. Non compatible avec OCI ni Helm.
- Compte de service Compute Engine par défaut (
gcenode
) : cette méthode n'est pas recommandée, car elle ne fonctionne que si la fédération d'identité de charge de travail pour GKE est désactivée. Compatible avec Git, OCI et Helm. - Compte de service Google pour Helm et OCI : compatible, mais non recommandé, car la méthode du compte de service Kubernetes nécessite moins de configuration.
Avant de commencer
Avant d'accorder à Config Sync un accès en lecture seule à votre source de vérité, effectuez les tâches suivantes :
Préparez ou assurez-vous d'avoir accès à une image OCI ou à un dépôt Helm dans lequel vous stockez les fichiers de configuration que vous souhaitez synchroniser avec Config Sync. Pour en savoir plus, consultez les ressources suivantes :
- Ajouter des configurations à une source de vérité : informations conceptuelles sur les configurations.
- Bonnes pratiques GitOps : conseils et bonnes pratiques générales pour organiser et gérer votre dépôt.
- Utiliser un dépôt non structuré : recommandations pour utiliser et organiser un dépôt non structuré.
Créez un cluster GKE ou accédez-y. Avant de créer un cluster, consultez les exigences et les recommandations concernant la configuration des clusters pour Config Sync.
Accorder l'accès à une image OCI
Cette section explique comment accorder à Config Sync un accès en lecture seule aux images OCI à l'aide d'une méthode d'authentification compatible.
Vous devez stocker les images OCI dans Artifact Registry pour vous authentifier auprès de Config Sync.
Utiliser un compte de service Kubernetes
Pour vous authentifier avec un compte de service Kubernetes, votre cluster doit être compatible avec la fédération d'identité de charge de travail pour GKE ou la fédération d'identité de charge de travail pour GKE pour le parc.
Pour accorder à Config Sync un accès en lecture seule à votre image OCI à l'aide d'un compte de service Kubernetes, procédez comme suit :
-
Pour obtenir les autorisations nécessaires pour créer une association de règles, demandez à votre administrateur de vous accorder le rôle IAM Administrateur de compte de service (
roles/iam.serviceAccountAdmin
) sur le compte de service. Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.
Attribuez le rôle IAM de lecteur Artifact Registry (
roles/artifactregistry.reader
) au compte de service Kubernetes qui inclut le pool Workload Identity Federation for GKE :Accordez une autorisation à l'échelle du projet si les mêmes autorisations s'appliquent à tous les dépôts du projet.
gcloud projects add-iam-policy-binding PROJECT_ID \ --role=roles/artifactregistry.reader \ --member="serviceAccount:FLEET_HOST_PROJECT_ID.svc.id.goog[config-management-system/KSA_NAME]"
Accordez une autorisation spécifique au dépôt lorsque vous souhaitez que les comptes de service disposent de différents niveaux d'accès pour chaque dépôt de votre projet.
gcloud artifacts repositories add-iam-policy-binding REPOSITORY \ --location=LOCATION \ --role=roles/artifactregistry.reader \ --member="serviceAccount:FLEET_HOST_PROJECT_ID.svc.id.goog[config-management-system/KSA_NAME]" \ --project=PROJECT_ID
Remplacez les éléments suivants :
PROJECT_ID
: ID de votre projet.FLEET_HOST_PROJECT_ID
: si vous utilisez Workload Identity Federation for GKE, cette valeur est identique à l'ID de projet. Si vous utilisez la Workload Identity Federation for GKE pour votre parc, cette valeur correspond à l'ID du projet dans lequel votre cluster est enregistré.REPOSITORY
: ID de l'image.LOCATION
: emplacement régional ou multirégional du dépôt.
Lorsque vous installez Config Sync, utilisez le compte de service Kubernetes (k8sserviceaccount
) comme type d'authentification.
Utiliser un compte de service Compute Engine par défaut
Si vous n'avez pas activé Workload Identity Federation for GKE, vous pouvez utiliser un compte de service Compute Engine pour vous authentifier.
Pour utiliser un compte de service Compute Engine par défaut afin d'accorder à Config Sync un accès en lecture seule à votre dépôt, accordez au compte de service Compute Engine l'autorisation de lecture sur Artifact Registry :
gcloud projects add-iam-policy-binding PROJECT_ID \
--member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \
--role=roles/artifactregistry.reader
Remplacez les éléments suivants :
PROJECT_ID
: ID de votre projetPROJECT_NUMBER
: votre numéro de projet.
Lorsque vous installez Config Sync, utilisez le compte de service Compute Engine (gcenode
) comme type d'authentification.
Accorder l'accès à un dépôt Helm
Cette section explique comment accorder à Config Sync un accès en lecture seule aux charts Helm stockés dans un dépôt.
Utiliser un jeton
Pour utiliser un jeton afin d'accorder à Config Sync un accès en lecture seule à votre dépôt Helm, créez un secret qui utilise le nom d'utilisateur et le mot de passe de votre dépôt Helm :
kubectl create secret generic SECRET_NAME \
--namespace=config-management-system \
--from-literal=username=USERNAME \
--from-literal=password=PASSWORD
Remplacez les éléments suivants :
SECRET_NAME
: nom de votre secret.USERNAME
: nom d'utilisateur de votre dépôt Helm.PASSWORD
: mot de passe de votre dépôt Helm.
Lorsque vous installez Config Sync, utilisez le jeton (token
) comme type d'authentification.
Vous devez également spécifier le nom du secret dans le champ spec.helm.secretRef.name
.
Utiliser un compte de service Kubernetes
Pour vous authentifier à l'aide d'un compte de service Kubernetes, vous devez remplir les conditions suivantes :
- Votre dépôt se trouve dans Artifact Registry.
- La fédération d'identité de charge de travail pour GKE ou la fédération d'identité de charge de travail pour GKE pour le parc sont activées sur votre cluster.
Pour utiliser un compte de service Kubernetes afin d'accorder à Config Sync un accès en lecture seule à votre dépôt Helm, procédez comme suit :
-
Pour obtenir les autorisations nécessaires pour créer une association de règles, demandez à votre administrateur de vous accorder le rôle IAM Administrateur de compte de service (
roles/iam.serviceAccountAdmin
) sur le compte de service. Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.
Pour utiliser un compte de service Kubernetes afin d'accorder à Config Sync un accès en lecture seule à votre dépôt Helm, attribuez le rôle IAM Lecteur Artifact Registry (
roles/artifactregistry.reader
) au compte de service Kubernetes qui inclut le pool de fédération d'identité de charge de travail pour GKE :Accordez une autorisation à l'échelle du projet si les mêmes autorisations s'appliquent à tous les dépôts du projet.
gcloud projects add-iam-policy-binding PROJECT_ID \ --role=roles/artifactregistry.reader \ --member="serviceAccount:FLEET_HOST_PROJECT_ID.svc.id.goog[config-management-system/KSA_NAME]"
Accordez une autorisation spécifique au dépôt lorsque vous souhaitez que les comptes de service disposent de différents niveaux d'accès pour chaque dépôt de votre projet.
gcloud artifacts repositories add-iam-policy-binding REPOSITORY \ --location=LOCATION \ --role=roles/artifactregistry.reader \ --member="serviceAccount:FLEET_HOST_PROJECT_ID.svc.id.goog[config-management-system/KSA_NAME]" \ --project=PROJECT_ID
Remplacez les éléments suivants :
PROJECT_ID
: ID de votre projet.FLEET_HOST_PROJECT_ID
: si vous utilisez Workload Identity Federation for GKE, cette valeur est identique à l'ID de projet. Si vous utilisez la Workload Identity Federation for GKE pour votre parc, cette valeur correspond à l'ID du projet dans lequel votre cluster est enregistré.REPOSITORY
: ID de l'image.LOCATION
: emplacement régional ou multirégional du dépôt.
Lorsque vous installez Config Sync, utilisez le compte de service Kubernetes (k8sserviceaccount
) comme type d'authentification.
Utiliser un compte de service Compute Engine par défaut
Si vous n'avez pas activé Workload Identity Federation for GKE, vous pouvez utiliser un compte de service Compute Engine pour vous authentifier.
Pour utiliser un compte de service Compute Engine par défaut afin d'accorder à Config Sync un accès en lecture seule à votre dépôt, accordez au compte de service Compute Engine l'autorisation de lecture sur Artifact Registry :
gcloud projects add-iam-policy-binding PROJECT_ID \
--member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \
--role=roles/artifactregistry.reader
Remplacez les éléments suivants :
PROJECT_ID
: ID de votre projetPROJECT_NUMBER
: votre numéro de projet.
Lorsque vous installez Config Sync, utilisez le compte de service Compute Engine (gcenode
) comme type d'authentification.
Étapes suivantes
- Installer Config Sync avec les paramètres par défaut
- Personnaliser votre installation de Config Sync