Ce document présente les comptes de service et les clés dont vous avez besoin pour créer des clusters dans votre implémentation Google Distributed Cloud. Google Cloud
Ces instructions sont complètes. Pour une introduction plus courte à l'utilisation d'un compte de service, consultez la section Configurer une infrastructure minimale.
Avant de commencer
Créer des Google Cloud projets
Présentation des comptes de service
Avant de créer vos clusters d'administrateur et d'utilisateur, vous devez disposer des comptes de service suivants :
- Compte de service d'accès au composant
- Compte de service connect-register
- Compte de service logging-monitoring
En fonction des fonctionnalités que vous souhaitez activer, vous devrez peut-être disposer de comptes de service facultatifs.
Comprendre les comptes de service et les projets Google Cloud
Lorsque vous créez un compte de service, vous l'associez à un projet Google Cloud .
Ce projet Google Cloud est appelé projet parent du compte de service. Dans ce document, toutes les commandes gcloud iam service-accounts create
utilisent la variable d'espace réservé PROJECT_ID
, qui correspond à l'ID du projet parent du compte de service.
Vous pouvez déterminer le projet parent d'un compte de service en consultant l'adresse e-mail du compte de service. Par exemple, voici l'adresse e-mail d'un compte de service nommé logger
. Le projet parent est alice-123
.
logger@alice-123.iam.gserviceaccount.com
Lorsque vous attribuez un rôle Identity and Access Management (IAM) à un compte de service, vous attribuez le rôle au compte de service sur un projetGoogle Cloud particulier. Ceci suit le modèle général d'attribution d'un rôle à un compte principal sur une ressource.
Par exemple, vous pouvez attribuer le rôle bigquery.dataEditor
au compte de service logger@alice-123.iam.gserviceaccount.com
sur le projet bob-456
. Dans ce cas, le compte de service est le compte principal et le projet Google Cloud est la ressource.
Vous pouvez attribuer un rôle à un compte de service dans un projet Google Cloud qui n'est pas le projet parent du compte de service, ou les projets peuvent être identiques. Pour permettre cette flexibilité, les commandes gcloud projects add-iam-policy-binding
de ce document pour le compte de service d'accès aux composants, le compte de service connect-register et le compte de service logging-monitoring utilisent la variable d'espace réservé FLEET_HOST_PROJECT_ID
. Il s'agit de l'ID du projet hôte du parc.
L'ID que vous spécifiez en tant que FLEET_HOST_PROJECT_ID
dans les commandes gcloud projects add-iam-policy-binding
doit être identique.
Autorisations requises pour l'attribution de rôles aux comptes de service
Chacun de vos comptes de service doit disposer de certains rôles sur le projetGoogle Cloud concerné. Par exemple, votre compte de service connect-register doit disposer du rôle gkehub.editor
sur votre projet hôte de parc.
Pour attribuer des rôles sur un projet Google Cloud , vous devez disposer de certaines autorisations sur le projet. Pour en savoir plus, consultez roles/resourcemanager.projectIamAdmin
dans Comprendre les rôles.
Si vous disposez des autorisations requises, vous pouvez attribuer les rôles vous-même. Sinon, un autre membre de votre organisation doit attribuer les rôles à votre place.
Utiliser gkeadm
pour créer automatiquement des comptes de service
Cette page explique comment créer manuellement des comptes de service et leur attribuer des rôles. Au lieu d'effectuer manuellement ces étapes, vous pouvez demander à l'outil de ligne de commande gkeadm
de créer certains des comptes de service et d'attribuer des rôles lorsque vous créez un poste de travail administrateur. Même si vous autorisez gkeadm
à créer des comptes de service, vous devez créer manuellement le compte de service d'accès aux composants et attribuer les rôles IAM requis, comme décrit dans la section suivante. Pour en savoir plus sur les comptes de service que gkeadm
peut créer, consultez Créer votre poste de travail administrateur.
Compte de service d'accès au composant
Google Distributed Cloud utilise ce compte de service pour télécharger des composants de cluster, en votre nom, à partir d'Artifact Registry.
Créez un compte de service d'accès au composant :
gcloud iam service-accounts create component-access-sa \ --display-name "Component Access Service Account" \ --project PROJECT_ID
Remplacez
PROJECT_ID
par l'ID du Google Cloud projet que vous souhaitez utiliser comme projet parent de votre compte de service.Obtenez l'adresse e-mail du compte de service d'accès aux composants que vous venez de créer :
gcloud iam service-accounts list \ --project PROJECT_ID
Pour créer une clé JSON pour votre compte de service d'accès aux composants, procédez comme suit :
gcloud iam service-accounts keys create component-access-key.json \ --iam-account COMPONENT_ACCESS_SERVICE_ACCOUNT_EMAIL
Remplacez
COMPONENT_ACCESS_SERVICE_ACCOUNT_EMAIL
par l'adresse e-mail de votre compte de service d'accès aux composants.
Attribuer des rôles à votre compte de service d'accès aux composants
Votre compte de service d'accès au composant doit disposer des rôles IAM suivants sur votre projet. Ces rôles sont nécessaires pour permettre à Google Distributed Cloud d'effectuer des vérifications préliminaires :
serviceusage.serviceUsageViewer
iam.roleViewer
iam.serviceAccountViewer
compute.viewer
Pour accorder les rôles, procédez comme suit :
gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \ --member "serviceAccount:COMPONENT_ACCESS_SERVICE_ACCOUNT_EMAIL" \ --role "roles/serviceusage.serviceUsageViewer" gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \ --member "serviceAccount:COMPONENT_ACCESS_SERVICE_ACCOUNT_EMAIL" \ --role "roles/iam.roleViewer" gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \ --member "serviceAccount:COMPONENT_ACCESS_SERVICE_ACCOUNT_EMAIL" \ --role "roles/iam.serviceAccountViewer" gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \ --member "serviceAccount:COMPONENT_ACCESS_SERVICE_ACCOUNT_EMAIL" \ --role "roles/compute.viewer"
Remplacez FLEET_HOST_PROJECT_ID
par l'ID de votre projet hôte de parc. Il peut s'agir du même projet dans lequel le compte de service a été créé ou d'un autre projet. L'ID de projet que vous spécifiez ici doit être le même que celui que vous spécifiez lorsque vous accordez des rôles IAM au compte de service connect-register et au compte de service logging-monitoring.
Compte de service connect-register
Google Distributed Cloud utilise ce compte de service pour enregistrer vos clusters dans un parc.
Créez un compte de service connect-register :
gcloud iam service-accounts create connect-register-sa \ --display-name "Connect-register Service Account" \ --project PROJECT_ID
Remplacez
PROJECT_ID
par l'ID du projetGoogle Cloud que vous souhaitez utiliser comme parent de votre compte de service connect-register.Obtenez l'adresse e-mail du compte de service connect-register que vous venez de créer :
gcloud iam service-accounts list \ --project PROJECT_ID
Créez une clé JSON pour votre compte de service connect-register :
gcloud iam service-accounts keys create connect-register-key.json \ --iam-account CONNECT_REGISTER_SERVICE_ACCOUNT_EMAIL
Remplacez
CONNECT_REGISTER_SERVICE_ACCOUNT_EMAIL
par l'adresse e-mail de votre compte de service connect-register.Attribuez le rôle
gkehub.editor
à votre compte de service connect-register :gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \ --member "serviceAccount:CONNECT_REGISTER_SERVICE_ACCOUNT_EMAIL" \ --role "roles/gkehub.editor"
L'ID de projet que vous spécifiez ici doit être le même que celui que vous spécifiez lorsque vous attribuez des rôles IAM au compte de service d'accès aux composants et au compte de service logging-monitoring.
Compte de service logging-monitoring
Google Distributed Cloud utilise ce compte de service pour exporter les journaux et les métriques des clusters vers Cloud Logging et Cloud Monitoring.
Créez un compte de service logging-monitoring :
gcloud iam service-accounts create logging-monitoring-sa \ --display-name "Logging-monitoring Service Account" \ --project=PROJECT_ID
Remplacez
PROJECT_ID
par l'ID du projetGoogle Cloud que vous souhaitez utiliser comme parent de votre compte de service logging-monitoring.Obtenez l'adresse e-mail du compte de service logging-monitoring que vous venez de créer :
gcloud iam service-accounts list \ --project PROJECT_ID
Créez une clé JSON pour votre compte de service logging-monitoring :
gcloud iam service-accounts keys create logging-monitoring-key.json \ --iam-account LOGGING_MONITORING_SERVICE_ACCOUNT_EMAIL
Remplacez
LOGGING_MONITORING_SERVICE_ACCOUNT_EMAIL
par l'adresse e-mail de votre compte de service logging-monitoring.
Attribuer des rôles à votre compte de service logging-monitoring
Votre compte de service logging-monitoring doit disposer des rôles suivants sur votre projet :
opsconfigmonitoring.resourceMetadata.writer
logging.logWriter
monitoring.metricWriter
monitoring.dashboardEditor
kubernetesmetadata.publisher
Pour attribuer les rôles requis à votre compte de service logging-monitoring, procédez comme suit :
gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \ --member "serviceAccount:LOGGING_MONITORING_SERVICE_ACCOUNT_EMAIL" \ --role "roles/opsconfigmonitoring.resourceMetadata.writer" gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \ --member "serviceAccount:LOGGING_MONITORING_SERVICE_ACCOUNT_EMAIL" \ --role "roles/logging.logWriter" gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \ --member "serviceAccount:LOGGING_MONITORING_SERVICE_ACCOUNT_EMAIL" \ --role "roles/monitoring.metricWriter" gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \ --member "serviceAccount:LOGGING_MONITORING_SERVICE_ACCOUNT_EMAIL" \ --role "roles/monitoring.dashboardEditor" gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \ --member "serviceAccount:LOGGING_MONITORING_SERVICE_ACCOUNT_EMAIL" \ --role "roles/kubernetesmetadata.publisher"
L'ID de projet que vous spécifiez ici doit être le même que celui que vous spécifiez lorsque vous accordez des rôles IAM au compte de service d'accès aux composants et au compte de service connect-register.
Comptes de service facultatifs
Les comptes de service décrits dans cette section sont facultatifs.
Compte de service de journalisation d'audit
Google Distributed Cloud utilise ce compte de service pour envoyer les journaux d'audit Kubernetes de votre cluster vers Cloud Audit Logs.
Si vous prévoyez de créer des clusters avec l'option avancée de cluster activée (requise pour configurer des domaines de topologie), utilisez le compte de service et la clé logging-monitoring pour la journalisation d'audit au lieu de créer un autre compte de service.
Créez un compte de service de journalisation d'audit :
gcloud iam service-accounts create audit-logging-sa \ --project PROJECT_ID
Remplacez
PROJECT_ID
par l'ID du projetGoogle Cloud que vous souhaitez utiliser comme parent de votre compte de service de journalisation d'audit.Obtenez l'adresse e-mail du compte de service de journalisation d'audit que vous venez de créer :
gcloud iam service-accounts list \ --project PROJECT_ID
Créez une clé JSON pour votre compte de service de journalisation d'audit :
gcloud iam service-accounts keys create audit-logging-key.json \ --iam-account AUDIT_LOGGING_SERVICE_ACCOUNT_EMAIL
Remplacez
AUDIT_LOGGING_SERVICE_ACCOUNT_EMAIL
par l'adresse e-mail de votre compte de service de journalisation d'audit.
Vous n'avez pas besoin d'accorder de rôles à votre compte de service de journalisation d'audit.
Compte de service d'autorisation binaire
Google Distributed Cloud utilise ce compte de service pour appeler l'API d'autorisation binaire.
Pour savoir comment créer un compte de service d'autorisation binaire, consultez Autorisation binaire dans GKE On-Prem.
Étapes suivantes
Créer un poste de travail administrateur