Cette page explique comment créer les comptes de service Google Cloud requis pour le fonctionnement d'Apigee hybrid.
Présentation
Apigee hybrid utilise des comptes de service Google Cloud pour permettre aux composants hybrides de communiquer en effectuant des appels d'API autorisés.
Environnements de production et environnements hors production
Ce guide fait référence à des installations de production et hors production. Une installation de production est réglée pour des valeurs élevées de capacité d'utilisation, de stockage et d'évolutivité. Une installation hors production utilise moins de ressources et sert principalement à l'apprentissage et à la démonstration.
Lorsque vous créez et configurez des comptes de service pour Apigee hybrid, il est important de connaître le type d'installation que vous ciblez.
Pour les installations de production, nous vous recommandons de créer un compte de service distinct pour chaque composant Apigee hybrid. Par exemple, chacun des composants runtime, mart, metrics, udca, etc., possède son propre compte de service.
Pour les installations hors production, vous pouvez créer un seul compte de service qui s'applique à tous les composants.
Pour en savoir plus sur les comptes de service utilisés par Apigee et les rôles qui leur sont attribués, consultez la page Comptes de service et rôles utilisés par les composants hybrides.
Workload Identity sur GKE
Pour les installations Apigee hybrid sur GKE, Google Cloud propose une option appelée Workload Identity servant à authentifier les composants d'exécution hybrides. Cette option n'utilise pas les fichiers de certificat téléchargés pour authentifier les comptes de service, mais associe les comptes de service Google Cloud que vous créez à cette étape aux comptes de service Kubernetes dans le cluster Kubernetes.
Workload Identity n'est disponible que sur les installations GKE.
Créer les comptes de service
Procédez comme suit afin de créer les comptes de service Google Cloud pour votre installation hybride :
- Outil
create-service-account
: si vous installez Apigee hybrid sur une plate-forme autre que GKE, ou si vous effectuez une installation sur GKE, mais que vous ne souhaitez pas utiliser Workload Identity, utilisez l'outil fourni par Apigee,create-service-account
, pour créer les comptes de service, leur attribuer des rôles, puis créer et télécharger les fichiers de clé du compte de service en une seule commande. Suivez les procédures décrites dans
Créer des comptes de service à l'aide decreate-service-account
. - Console Google Cloud ou
gcloud
: si vous installez Apigee hybrid sur GKE et que vous prévoyez d'utiliser Workload Identity, utilisez la console Google Cloud ougcloud
pour créer les comptes de service sans télécharger les fichiers de certificat. Suivez les procédures décrites dans la section
Créer des comptes de service dans la console Google Cloud ou avecgcloud
.
Créer des comptes de service à l'aide de create-service-account
Utilisez l'outil create-service-account
dans les cas suivants :
- Vous effectuez l'installation sur une plate-forme autre que GKE.
- Vous effectuez l'installation sur GKE, mais vous ne prévoyez pas d'utiliser Workload Identity.
Sinon, passez directement à la section Créer des comptes de service dans la console Google Cloud ou avec gcloud
.
- Assurez-vous que les variables d'environnement HYBRID_FILES et HYBRID_FILES sont définies.
PROJECT_ID doit être défini sur votre ID de projet Google Cloud, car l'outil
create-service-account
lit la variable d'environnement PROJECT_ID pour créer les comptes de service dans le projet approprié.echo $HYBRID_FILES
echo $PROJECT_ID
- Créez le compte de service à l'aide de la commande suivante :
Hors production
Cette commande crée un seul compte de service nommé
apigee-non-prod
en vue de l'utiliser dans une installation hors production et télécharge le fichier de clé du compte de service dans le répertoire$HYBRID_FILES/service-accounts
.$HYBRID_FILES/tools/create-service-account --env non-prod --dir $HYBRID_FILES/service-accounts
Production
Cette commande crée tous les comptes de service individuels pour une installation en production et télécharge les fichiers de clé des comptes de service dans le répertoire
$HYBRID_FILES/service-accounts
.$HYBRID_FILES/tools/create-service-account --env prod --dir $HYBRID_FILES/service-accounts
Lorsque l'invite suivante s'affiche, saisissez y :
[INFO]: gcloud configured project ID is project_id. Enter: y to proceed with creating service account in project: project_id Enter: n to abort.
Si c'est la première fois que vous créez un compte de service particulier, l'outil le crée sans invite supplémentaire.
Toutefois, si le message et l'invite suivants s'affichent, saisissez y pour générer de nouvelles clés :
[INFO]: Service account apigee-non-prod@project_id.iam.gserviceaccount.com already exists. ... [INFO]: The service account might have keys associated with it. It is recommended to use existing keys. Press: y to generate new keys.(this does not deactivate existing keys) Press: n to skip generating new keys.
-
Vérifiez que la clé du compte de service a été créée à l'aide de la commande suivante. Vous avez la responsabilité de stocker ces clés privées en lieu sûr. Les noms de fichiers de clés commencent par le nom de votre projet Google Cloud.
ls $HYBRID_FILES/service-accounts
Le résultat doit se présenter sous la forme suivante :
project_id-apigee-non-prod.json
- Pour en savoir plus sur
create-service-account
et sur toutes ses options, consultez la pagecreate-service-account
. - Pour en savoir plus sur les concepts Google Cloud associés, consultez les pages Créer et gérer des comptes de service et Créer et gérer les clés de comptes de service.
Créer des comptes de service dans la console Google Cloud ou avec gcloud
Si vous prévoyez d'utiliser Workload Identity sur GKE pour authentifier des composants d'exécution hybride, vous n'avez pas besoin de créer ni de télécharger des fichiers de certificat pour les comptes de service. Par conséquent, n'utilisez pas l'outil create-service-account
. Créez plutôt les comptes de service dans la console Google Cloud ou avec l'API IAM dans gcloud
.
Sinon, passez directement à la section Créer des comptes de service à l'aide de create-service-account
.
Console
Suivez les instructions de la section Créer des comptes de service pour créer les comptes de service suivants et leur attribuer les rôles suivants :
Hors production
Pour les installations hors production :
Nom du compte de service | Rôles IAM |
---|---|
apigee-non-prod |
|
Production
Pour les installations en production :
Installations en production | |
---|---|
Nom du compte de service | Rôles IAM |
apigee-cassandra |
Administrateur des objets de l'espace de stockage |
apigee-logger |
Rédacteur de journaux |
apigee-mart |
Agent Apigee Connect |
apigee-metrics |
Rédacteur de métriques Monitoring |
apigee-runtime |
Aucun rôle requis |
apigee-synchronizer |
Gestionnaire de synchronisateur Apigee |
apigee-udca |
Agent d'analyses Apigee |
apigee-watcher |
Agent d'exécution Apigee |
gcloud
Exécutez les commandes suivantes pour créer les comptes de service et attribuer les rôles IAM.
Hors production
Pour les installations hors production :
- Créez le compte de service
apigee-non-prod
:gcloud iam service-accounts create apigee-non-prod \ --display-name="apigee-non-prod" \ --project=$PROJECT_ID
- Accordez les rôles IAM au compte de service :
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-non-prod@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/storage.objectAdmin"
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-non-prod@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/logging.logWriter"
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-non-prod@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/apigeeconnect.Agent"
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-non-prod@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/monitoring.metricWriter"
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-non-prod@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/apigee.synchronizerManager"
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-non-prod@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/apigee.analyticsAgent"
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-non-prod@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/apigee.runtimeAgent"
- Validez les liaisons de rôles :
gcloud projects get-iam-policy ${PROJECT_ID} \ --flatten="bindings[].members" \ --format='table(bindings.role)' \ --filter="bindings.members:apigee-non-prod@$PROJECT_ID.iam.gserviceaccount.com"
Production
Pour les installations en production :
Exécutez les commandes suivantes pour créer chaque compte de service et lui attribuer le rôle IAM correspondant.
- Compte de service
apigee-cassandra
:gcloud iam service-accounts create apigee-cassandra \ --display-name="apigee-cassandra" \ --project=$PROJECT_ID
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-cassandra@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/storage.objectAdmin"
- Compte de service
apigee-logger
:gcloud iam service-accounts create apigee-logger \ --display-name="apigee-logger" \ --project=$PROJECT_ID
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-logger@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/logging.logWriter"
- Compte de service
apigee-mart
:gcloud iam service-accounts create apigee-mart \ --display-name="apigee-mart" \ --project=$PROJECT_ID
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-mart@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/apigeeconnect.Agent"
- Compte de service
apigee-metrics
:gcloud iam service-accounts create apigee-metrics \ --display-name="apigee-metrics" \ --project=$PROJECT_ID
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-metrics@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/monitoring.metricWriter"
- Compte de service
apigee-runtime
:gcloud iam service-accounts create apigee-runtime \ --display-name="apigee-runtime" \ --project=$PROJECT_ID
- Compte de service
apigee-synchronizer
:gcloud iam service-accounts create apigee-synchronizer \ --display-name="apigee-synchronizer" \ --project=$PROJECT_ID
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-synchronizer@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/apigee.synchronizerManager"
- Compte de service
apigee-udca
:gcloud iam service-accounts create apigee-udca \ --display-name="apigee-udca" \ --project=$PROJECT_ID
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-udca@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/apigee.analyticsAgent"
- Compte de service
apigee-watcher
:gcloud iam service-accounts create apigee-watcher \ --display-name="apigee-watcher" \ --project=$PROJECT_ID
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-watcher@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/apigee.runtimeAgent"
Pour en savoir plus sur la création de comptes de service avec gcloud
, consultez la section Créer des comptes de service.
Vous avez à présent créé des comptes de service et attribué les rôles nécessaires aux composants Apigee hybrid. Ensuite, créez les certificats TLS requis par la passerelle d'entrée hybride.
1 2 3 4 (SUITE) Étape 5 : Créer des certificats TLS 6 7 8 9 10 11