Ce document présente les Google Cloud clés et lescomptes de service dont vous avez besoin pour créer des clusters dans votre mise en œuvre 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éer Google Cloud des 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 Google Cloud projet 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 Google Cloud projet est la ressource.
Vous pouvez attribuer un rôle à un compte de service sur un Google Cloud projet 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 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 comme 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 projet concerné
Google Cloud . 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 Google Cloud projet, vous devez
disposer de certaines autorisations sur le projet. Pour en savoir plus, consultez
roles/resourcemanager.projectIamAdmin dans
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 attribuer des rôles aux comptes de service. 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 laissez 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_IDRemplacez
PROJECT_IDpar l'ID du Google Cloud projet que vous souhaitez utiliser comme projet parent de votre compte de service.Récupérez l'adresse e-mail du compte de service d'accès au composant que vous venez de créer :
gcloud iam service-accounts list \ --project PROJECT_IDPour 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_EMAILpar 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 permettre à Google Distributed Cloud d'effectuer des vérifications préliminaires :
serviceusage.serviceUsageVieweriam.roleVieweriam.serviceAccountViewercompute.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 ID de projet 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_IDRemplacez
PROJECT_IDpar l'ID du Google Cloud projet que vous souhaitez utiliser comme parent de votre compte de service connect-register.Récupérez l'adresse e-mail du compte de service connect-register que vous venez de créer :
gcloud iam service-accounts list \ --project PROJECT_IDPour créer 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_EMAILpar 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 ID 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 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_IDRemplacez
PROJECT_IDpar l'ID du Google Cloud projet que vous souhaitez utiliser comme parent de votre compte de service logging-monitoring.Récupérez l'adresse e-mail du compte de service logging-monitoring que vous venez de créer :
gcloud iam service-accounts list \ --project PROJECT_IDPour créer une clé JSON pour votre compte de service logging-monitoring, procédez comme suit :
gcloud iam service-accounts keys create logging-monitoring-key.json \ --iam-account LOGGING_MONITORING_SERVICE_ACCOUNT_EMAILRemplacez
LOGGING_MONITORING_SERVICE_ACCOUNT_EMAILpar l'adresse e-mail de votre compte de service logging-monitoring.
Attribuer des rôles à votre compte de service de journalisation et de surveillance
Votre compte de service de logging-monitoring doit disposer des rôles suivants sur votre projet :
opsconfigmonitoring.resourceMetadata.writerlogging.logWritermonitoring.metricWritermonitoring.dashboardEditorkubernetesmetadata.publisher
Pour attribuer les rôles requis à votre compte de service de journalisation et de surveillance, 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 ID de projet 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 le cluster avancé activé, (ce qui est nécessaire pour configurer des domaines de topologie), utilisez le compte de service et la clé de journalisation et de surveillance 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_IDRemplacez
PROJECT_IDpar l'ID du Google Cloud projet que vous souhaitez utiliser comme parent de votre compte de service de journalisation d'audit.Récupérez 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_IDCré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_EMAILpar l'adresse e-mail de votre compte de service de journalisation d'audit.
Vous n'avez pas besoin d'attribuer 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.
Étape suivante
Créer un poste de travail administrateur