Présentation
Cette étape explique comment créer les comptes de service Google Cloud requis pour le fonctionnement d'Apigee hybrid et leur attribuer les rôles IAM appropriés.
Cette procédure utilise les deux variables d'environnement suivantes définies à l'étape 2: Télécharger les graphiques Apigee Helm. Ces variables sont facultatives. Si vous ne les avez pas définis, remplacez le chemin d'accès de répertoire approprié pour chaque variable dans les exemples de code.
$APIGEE_HELM_CHARTS_HOME
: répertoire dans lequel vous avez téléchargé les charts Helm Apigee, définis à l'étape 2: Télécharger les charts Apigee Helm.$PROJECT_ID
: ID de votre projet Google Cloud, défini dans la Partie 1: Configuration du projet et de l'organisation – Étape 1: Activer les API.
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, mint, 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.
Authentifier les comptes de service
Apigee hybrid accepte les méthodes suivantes pour authentifier les comptes de service Google :
- Secrets Kubernetes
- Fichiers de clé JSON du compte de service ("Fichiers JSON" dans les onglets de sélection de la section suivante).
- Vault
- Fédération d'identité de charge de travail pour GKE (appelée "Fédération d'identité de charge de travail pour GKE" dans les onglets de sélection de la section suivante).
- Fédération d'identité de charge de travail sur d'autres plates-formes ("Fédération d'identité de charge de travail sur d'autres plates-formes" dans les onglets de sélection de la section suivante).
Dans la section suivante, choisissez la procédure correspondant au type d'authentification que vous prévoyez d'utiliser.
Créer les comptes de service
Apigee hybrid utilise les comptes de service suivants :
Production
Compte de service | Rôles IAM | Graphique Helm Apigee |
---|---|---|
apigee-cassandra |
Administrateur des objets Storage | apigee-datastore |
apigee-logger |
Rédacteur de journaux | apigee-telemetry |
apigee-mart |
Agent Apigee Connect | apigee-org |
apigee-metrics |
Rédacteur de métriques Monitoring | apigee-telemetry |
apigee-mint-task-scheduler (Obligatoire uniquement si vous utilisez Monétisation pour Apigee hybrid) |
Aucun rôle requis | apigee-org |
apigee-runtime |
Aucun rôle requis | apigee-env |
apigee-synchronizer |
Gestionnaire de synchronisateur Apigee Administrateur des objets de l'espace de stockage |
apigee-env |
apigee-udca |
Agent d'analyses Apigee | apigee-org apigee-env |
apigee-watcher |
Agent d'exécution Apigee | apigee-org |
Hors production
Compte de service | Rôles IAM | Graphique Helm Apigee |
---|---|---|
apigee-non-prod |
Administrateur des objets de l'espace de stockage Rédacteur de journaux Agent Apigee Connect Rédacteur de métriques de surveillance Gestionnaire de synchronisateur Apigee Agent d'analyse Apigee Agent d'exécution Apigee |
apigee-datastore apigee-telemetry apigee-org apigee-env |
L'outil create-service-account
Apigee fournit un outil, create-service-account
, dans le répertoire apigee-operator/etc/tools
:
$APIGEE_HELM_CHARTS_HOME/ └── apigee-operator/ └── etc/ └── tools/ └── create-service-account
Cet outil crée les comptes de service, attribue les rôles IAM à chaque compte et télécharge les fichiers de certificat au format JSON pour chaque compte.
Vérifiez que vous pouvez exécuter create-service-account
. Si vous venez de télécharger les graphiques, il est possible que le fichier create-service-account
ne soit pas en mode exécutable. Exécutez la commande suivante dans votre répertoire APIGEE_HELM_CHARTS_HOME :
$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account --help
Si le résultat indique permission denied
, vous devez rendre le fichier exécutable, par exemple avec chmod
sous Linux, MacOS ou UNIX, ou dans l'explorateur Windows, ou à l'aide de la commande icacls
dans Windows. Exemple :
chmod +x $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account
Créer les comptes de service
Choisissez la procédure pour la méthode d'authentification du compte de service que vous prévoyez d'utiliser dans votre installation. Pour en savoir plus, consultez Méthodes d'authentification des comptes de service dans Apigee hybrid.
Secrets Kubernetes
Pour préparer les fichiers de clé de compte de service à stocker dans les secrets Kubernetes, vous pouvez utiliser l'outil create-service-account
pour créer les fichiers de clé de compte de service avec l'indicateur --dir
afin de créer un répertoire pour les fichiers de clé.
Production
- Assurez-vous que la variable d'environnement
PROJECT_ID
est définie.echo $PROJECT_ID
create-service-account tool uses the value of the
Si ce n'est pas le cas, définissez-la avec votre ID de projet Google Cloud ou ajoutez l'optionPROJECT_ID
environment variable--project-id PROJECT_ID
à la commandecreate-service-account
. -
Créez les comptes de service à l'aide des commandes suivantes, où
$APIGEE_HELM_CHARTS_HOME
correspond au chemin d'accès où vous avez téléchargé les graphiques Helm Apigee. Vous pouvez être invité à créer chaque compte de service. Répondre avecy
.$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --env prod \ --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
- Vérifiez que les fichiers de compte de service ont été créés en vérifiant le contenu du répertoire
service-accounts
. Vous devriez obtenir le résultat suivant :ls $APIGEE_HELM_CHARTS_HOME/service-accounts/
my-project-apigee-cassandra.json my-project-apigee-runtime.json my-project-apigee-logger.json my-project-apigee-synchronizer.json my-project-apigee-mart.json my-project-apigee-udca.json my-project-apigee-metrics.json my-project-apigee-watcher.json my-project-apigee-mint-task-scheduler.json
Hors production
- Assurez-vous que la variable d'environnement
PROJECT_ID
est définie.echo $PROJECT_ID
create-service-account tool uses the value of the
Si ce n'est pas le cas, définissez-la avec votre ID de projet Google Cloud ou ajoutez l'optionPROJECT_ID
environment variable--project-id PROJECT_ID
à la commandecreate-service-account
. -
Créez les comptes de service à l'aide de la commande suivante, où
$APIGEE_HELM_CHARTS_HOME
correspond au chemin d'accès où vous avez téléchargé les graphiques Helm Apigee. Vous pouvez être invité à créer le compte de service. Répondre avecy
.$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --env non-prod \ --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
- Vérifiez que le fichier de compte de service a été créé en examinant le contenu du répertoire
service-accounts
. Vous devriez obtenir le résultat suivant :ls $APIGEE_HELM_CHARTS_HOME/service-accounts/
my-project-apigee-non-prod.json
Fichiers JSON
Comme Helm n'est pas compatible avec le référencement de fichiers en dehors du répertoire de chart, vous allez créer chaque fichier de certificat de compte de service dans le répertoire de chart pour le composant hybride correspondant.
Pour les étapes suivantes, choisissez si vous configurez une installation de production ou hors production.
Production
- Assurez-vous que la variable d'environnement
PROJECT_ID
est définie.echo $PROJECT_ID
create-service-account tool uses the value of the
Si ce n'est pas le cas, définissez-la avec votre ID de projet Google Cloud ou ajoutez l'optionPROJECT_ID
environment variable--project-id PROJECT_ID
aux commandescreate-service-account
. -
Créez les comptes de service à l'aide des commandes suivantes, où
$APIGEE_HELM_CHARTS_HOME
correspond au chemin d'accès où vous avez téléchargé les graphiques Helm Apigee. Vous pouvez être invité à créer chaque compte de service. Répondre avecy
.$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --profile apigee-cassandra \ --env prod \ --dir $APIGEE_HELM_CHARTS_HOME/apigee-datastore
$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --profile apigee-logger \ --env prod \ --dir $APIGEE_HELM_CHARTS_HOME/apigee-telemetry
$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --profile apigee-mart \ --env prod \ --dir $APIGEE_HELM_CHARTS_HOME/apigee-org
$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --profile apigee-metrics \ --env prod \ --dir $APIGEE_HELM_CHARTS_HOME/apigee-telemetry
$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --profile apigee-runtime \ --env prod \ --dir $APIGEE_HELM_CHARTS_HOME/apigee-env
$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --profile apigee-synchronizer \ --env prod \ --dir $APIGEE_HELM_CHARTS_HOME/apigee-env
$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --profile apigee-udca \ --env prod \ --dir $APIGEE_HELM_CHARTS_HOME/apigee-env
$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --profile apigee-udca \ --env prod \ --dir $APIGEE_HELM_CHARTS_HOME/apigee-org
$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --profile apigee-watcher \ --env prod \ --dir $APIGEE_HELM_CHARTS_HOME/apigee-org
Si vous activez la monétisation pour Apigee hybrid (Apigee hybrid v1.15.1 et versions ultérieures) :
$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --profile apigee-mint-task-scheduler \ --env prod \ --dir $APIGEE_HELM_CHARTS_HOME/apigee-org
- Copiez le fichier JSON
apigee-udca
dans le répertoire de chartapigee-env
. Il est nécessaire pour les opérations de champ d'application organisation et environnement.cp $APIGEE_HELM_CHARTS_HOME/apigee-org/$PROJECT_ID-apigee-udca.json $APIGEE_HELM_CHARTS_HOME/apigee-env/
- Vérifiez que les fichiers de compte de service ont été créés dans les répertoires appropriés en vérifiant le contenu du répertoire de chaque graphique. Vous devriez obtenir le résultat suivant :
ls ./apigee-datastore
Chart.yaml my-project-apigee-cassandra.json templates values.yamlls ./apigee-telemetry
Chart.yaml my-project-apigee-metrics.json values.yaml my-project-apigee-logger.json templatesls ./apigee-org
Chart.yaml my-project-apigee-udca.json my-project-apigee-mart.json my-project-apigee-watcher.json my-project-apigee-mint-task-scheduler.json values.yamlls ./apigee-env
Chart.yaml my-project-apigee-synchronizer.json templates my-project-apigee-runtime.json my-project-apigee-udca.json values.yaml
Hors production
- Assurez-vous que la variable d'environnement
PROJECT_ID
est définie.echo $PROJECT_ID
create-service-account tool uses the value of the
Si ce n'est pas le cas, définissez-la avec votre ID de projet Google Cloud ou ajoutez l'optionPROJECT_ID
environment variable--project-id PROJECT_ID
aux commandescreate-service-account
. -
Créez le compte de service à l'aide de la commande suivante, où
$APIGEE_HELM_CHARTS_HOME
correspond au chemin d'accès où vous avez téléchargé les graphiques Helm Apigee. Vous pouvez être invité à créer chaque compte de service. Répondre avecy
.$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --env non-prod \ --dir $APIGEE_HELM_CHARTS_HOME/apigee-datastore
- Vérifiez le nom du fichier de compte de service créé dans le répertoire
apigee-datastore
:ls $APIGEE_HELM_CHARTS_HOME/apigee-datastore
Chart.yaml PROJECT_ID-apigee-non-prod.json templates values.yaml
- Copiez le fichier du compte de service dans les autres répertoires de graphiques qui devront y faire référence:
cp $APIGEE_HELM_CHARTS_HOME/apigee-datastore/SA_FILE_NAME $APIGEE_HELM_CHARTS_HOME/apigee-telemetry/
cp $APIGEE_HELM_CHARTS_HOME/apigee-datastore/SA_FILE_NAME $APIGEE_HELM_CHARTS_HOME/apigee-org/
cp $APIGEE_HELM_CHARTS_HOME/apigee-datastore/SA_FILE_NAME $APIGEE_HELM_CHARTS_HOME/apigee-env/
Vault
Pour préparer les fichiers de clé de compte de service à stocker dans Vault, vous pouvez utiliser l'outil create-service-account
afin de créer les fichiers de clé de compte de service avec l'indicateur --dir
pour créer un répertoire pour les fichiers de clé.
Production
- Assurez-vous que la variable d'environnement
PROJECT_ID
est définie.echo $PROJECT_ID
create-service-account tool uses the value of the
Si ce n'est pas le cas, définissez-la avec votre ID de projet Google Cloud ou ajoutez l'optionPROJECT_ID
environment variable--project-id PROJECT_ID
à la commandecreate-service-account
. -
Créez les comptes de service à l'aide des commandes suivantes, où
$APIGEE_HELM_CHARTS_HOME
correspond au chemin d'accès où vous avez téléchargé les graphiques Helm Apigee. Vous pouvez être invité à créer chaque compte de service. Répondre avecy
.$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --env prod \ --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
- Vérifiez que les fichiers de compte de service ont été créés en vérifiant le contenu du répertoire
service-accounts
. Vous devriez obtenir le résultat suivant :ls $APIGEE_HELM_CHARTS_HOME/service-accounts/
my-project-apigee-cassandra.json my-project-apigee-runtime.json my-project-apigee-logger.json my-project-apigee-synchronizer.json my-project-apigee-mart.json my-project-apigee-udca.json my-project-apigee-metrics.json my-project-apigee-watcher.json my-project-apigee-mint-task-scheduler.json
Hors production
- Assurez-vous que la variable d'environnement
PROJECT_ID
est définie.echo $PROJECT_ID
create-service-account tool uses the value of the
Si ce n'est pas le cas, définissez-la avec votre ID de projet Google Cloud ou ajoutez l'optionPROJECT_ID
environment variable--project-id PROJECT_ID
à la commandecreate-service-account
. -
Créez les comptes de service à l'aide de la commande suivante, où
$APIGEE_HELM_CHARTS_HOME
correspond au chemin d'accès où vous avez téléchargé les graphiques Helm Apigee. Vous pouvez être invité à créer le compte de service. Répondre avecy
.$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --env non-prod \ --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
- Vérifiez que le fichier de compte de service a été créé en examinant le contenu du répertoire
service-accounts
. Vous devriez obtenir le résultat suivant :ls $APIGEE_HELM_CHARTS_HOME/service-accounts/
my-project-apigee-non-prod.json
WIF pour GKE
Créez les comptes de service pour votre installation à l'aide des commandes suivantes :
Production
- Assurez-vous que la variable d'environnement
PROJECT_ID
est définie.echo $PROJECT_ID
create-service-account tool uses the value of the
Si ce n'est pas le cas, définissez-la avec votre ID de projet Google Cloud ou ajoutez l'optionPROJECT_ID
environment variable--project-id PROJECT_ID
à la commandecreate-service-account
. -
Créez les comptes de service à l'aide des commandes suivantes, où
$APIGEE_HELM_CHARTS_HOME
correspond au chemin d'accès où vous avez téléchargé les graphiques Helm Apigee. Vous pouvez être invité à créer chaque compte de service. Répondre avecy
.$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --env prod \ --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
-
Vérifiez la création des comptes de service Google à l'aide de la commande suivante :
gcloud iam service-accounts list --project $PROJECT_ID
Le résultat doit ressembler à ce qui suit :
DISPLAY NAME EMAIL DISABLED apigee-cassandra apigee-cassandra@my-project.iam.gserviceaccount.com False apigee-mart apigee-mart@my-project.iam.gserviceaccount.com False apigee-metrics apigee-metrics@my-project.iam.gserviceaccount.com False apigee-mint-task-scheduler apigee-mint-task-scheduler@my-project.iam.gserviceaccount.com False apigee-runtime apigee-runtime@my-project.iam.gserviceaccount.com False apigee-synchronizer apigee-synchronizer@my-project.iam.gserviceaccount.com False apigee-udca apigee-udca@my-project.iam.gserviceaccount.com False apigee-watcher apigee-watcher@my-project.iam.gserviceaccount.com False
Hors production
- Assurez-vous que la variable d'environnement
PROJECT_ID
est définie.echo $PROJECT_ID
create-service-account tool uses the value of the
Si ce n'est pas le cas, définissez-la avec votre ID de projet Google Cloud ou ajoutez l'optionPROJECT_ID
environment variable--project-id PROJECT_ID
à la commandecreate-service-account
. -
Créez les comptes de service à l'aide de la commande suivante, où
$APIGEE_HELM_CHARTS_HOME
correspond au chemin d'accès où vous avez téléchargé les graphiques Helm Apigee. Vous pouvez être invité à créer le compte de service. Répondre avecy
.$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --env non-prod \ --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
-
Vérifiez la création des comptes de service Google à l'aide de la commande suivante :
gcloud iam service-accounts list --project $PROJECT_ID
Le résultat doit ressembler à ce qui suit :
DISPLAY NAME EMAIL DISABLED apigee-non-prod apigee-non-prod@my-project.iam.gserviceaccount.com False
Facultatif : Vous n'aurez pas besoin des fichiers de clé de compte de service pour Workload Identity Federation for GKE. Vous pouvez supprimer le répertoire service-accounts
une fois que vous avez terminé.
WIF sur d'autres plates-formes
Créez les comptes de service pour votre installation à l'aide des commandes suivantes :
Production
- Assurez-vous que la variable d'environnement
PROJECT_ID
est définie.echo $PROJECT_ID
create-service-account tool uses the value of the
Si ce n'est pas le cas, définissez-la avec votre ID de projet Google Cloud ou ajoutez l'optionPROJECT_ID
environment variable--project-id PROJECT_ID
à la commandecreate-service-account
. -
Créez les comptes de service à l'aide des commandes suivantes, où
$APIGEE_HELM_CHARTS_HOME
correspond au chemin d'accès où vous avez téléchargé les graphiques Helm Apigee. Vous pouvez être invité à créer chaque compte de service. Répondre avecy
.$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --env prod \ --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
-
Vérifiez la création des comptes de service Google à l'aide de la commande suivante :
gcloud iam service-accounts list --project $PROJECT_ID
Le résultat doit ressembler à ce qui suit :
DISPLAY NAME EMAIL DISABLED apigee-cassandra apigee-cassandra@my-project.iam.gserviceaccount.com False apigee-mart apigee-mart@my-project.iam.gserviceaccount.com False apigee-metrics apigee-metrics@my-project.iam.gserviceaccount.com False apigee-mint-task-scheduler apigee-mint-task-scheduler@my-project.iam.gserviceaccount.com False apigee-runtime apigee-runtime@my-project.iam.gserviceaccount.com False apigee-synchronizer apigee-synchronizer@my-project.iam.gserviceaccount.com False apigee-udca apigee-udca@my-project.iam.gserviceaccount.com False apigee-watcher apigee-watcher@my-project.iam.gserviceaccount.com False
Hors production
- Assurez-vous que la variable d'environnement
PROJECT_ID
est définie.echo $PROJECT_ID
create-service-account tool uses the value of the
Si ce n'est pas le cas, définissez-la avec votre ID de projet Google Cloud ou ajoutez l'optionPROJECT_ID
environment variable--project-id PROJECT_ID
à la commandecreate-service-account
. -
Créez les comptes de service à l'aide de la commande suivante, où
$APIGEE_HELM_CHARTS_HOME
correspond au chemin d'accès où vous avez téléchargé les graphiques Helm Apigee. Vous pouvez être invité à créer le compte de service. Répondre avecy
.$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --env non-prod \ --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
-
Vérifiez la création des comptes de service Google à l'aide de la commande suivante :
gcloud iam service-accounts list --project $PROJECT_ID
Le résultat doit ressembler à ce qui suit :
DISPLAY NAME EMAIL DISABLED apigee-non-prod apigee-non-prod@my-project.iam.gserviceaccount.com False
Facultatif : Vous n'aurez pas besoin des fichiers de clé de compte de service pour Workload Identity Federation for GKE. Vous pouvez supprimer le répertoire service-accounts
une fois que vous avez terminé.
Pour en savoir plus sur les comptes de service et l'outil create-service-account
, consultez la page suivante:
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.