Ce document présente les clés et les comptes de service Google Cloud dont vous avez besoin pour créer des clusters dans votre implémentation Google Distributed 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éez 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 Google Cloud projets
Lorsque vous créez un compte de service, vous l'associez à un Google Cloud projet.
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
.
[email protected]
Lorsque vous attribuez un rôle de gestion de l'authentification et de l'accès (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 [email protected]
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 sur un projet Google Cloud qui n'est pas le projet parent du compte de service, ou les projets peuvent être les mêmes. Pour permettre cette flexibilité, dans ce document, les commandes gcloud projects add-iam-policy-binding
pour le compte de service d'accès au composant, le compte de service connect-register et le compte de service de surveillance et de journalisation 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 à un projet Google Cloud , vous devez disposer de certaines autorisations sur le projet. Pour en savoir plus, consultez la section roles/resourcemanager.projectIamAdmin
de la section 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 au composant 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 la section 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 projet Google Cloud 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 nouvellement créé:
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 au composant
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 que Google Distributed Cloud puisse 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 projet différent. 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 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 nouvellement créé:
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 au composant et au compte de service de surveillance des journaux.
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 nouvellement créé:
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 de journalisation et de surveillance 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 attribuez des rôles IAM au compte de service d'accès au composant 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 la fonctionnalité de cluster avancé activée (ce qui est nécessaire pour configurer des domaines de topologie), utilisez le compte de service logging-monitoring et la clé 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 plus d'informations sur la création d'un compte de service d'autorisation binaire, consultez la section Autorisation binaire dans GKE On-Prem.
Étapes suivantes
Créer un poste de travail administrateur