create-service-account

Présentation de create-serice-account

create-serice-account est un outil de ligne de commande fourni avec Apigee hybrid qui crée des comptes de service Google Cloud avec des rôles permettant à des composants Apigee hybrid individuels d'effectuer des appels d'API autorisés et de télécharger les fichiers de clé de compte de service associés. Vous pouvez utiliser les fichiers de clé de compte de service générés par cette commande dans votre fichier de remplacement de configuration.

create-service-account crée un ou plusieurs comptes de service dans votre projet Google Cloud actuel ou dans le projet que vous spécifiez, attribue le rôle IAM approprié au compte de service, et télécharge le fichier de certificat dans un répertoire de votre ordinateur local.

Pour en savoir plus sur les comptes de service et obtenir la liste complète des comptes de service recommandés pour les environnements de production, consultez les pages suivantes :

Vous pouvez également créer des comptes de service dans Google Cloud Console. Consultez aussi la section Créer et gérer des comptes de service.

Prérequis

Rôle

L'outil create-service-account nécessite que la CLI gcloud soit installée. Les utilisateurs appelant l'utilitaire doivent disposer du rôle Service Account Admin.

Projet

Les comptes de service sont liés à un projet Google Cloud spécifique. create-service-account crée des comptes de service dans votre projet actuel ou dans le projet que vous spécifiez, et lie les rôles IAM aux comptes de service utilisés dans ce projet. create-service-account utilise également l'ID de projet dans le nom et l'adresse e-mail du fichier de clé du compte de service. Par exemple, si votre projet s'appelle my-hybrid-project, le fichier de clé du compte de service apigee sera nommé my-hybrid-project-apigee-logger.json et l'adresse e-mail du compte de service sera apigee-logger@my-hybrid-project.iam.gserviceaccount.com.

Vous pouvez spécifier un projet en définissant une variable d'environnement PROJECT_ID ou avec l'option --project-id. create-service-account lit la valeur de la variable d'environnement PROJECT_ID. Si elle n'est pas présente, vous pouvez utiliser l'option --project-id.

Si vous ne spécifiez pas d'ID de projet Cloud, create-service-account utilise le projet dans votre configuration de projet gcloud actuelle.

Vous pouvez vérifier la configuration actuelle du projet gcloud avec la commande suivante :

gcloud config list project

Si vous devez modifier l'ID de projet actuel, exécutez la commande suivante :

gcloud config set project PROJECT_ID

PROJECT_ID est l'ID de votre projet Cloud actuel. Les instructions de création d'un projet Cloud sont décrites à l'Étape 2 : Créer un projet Google Cloud.

Emplacement du fichier

Selon l'outil que vous utilisez pour installer et gérer Apigee hybrid, vous pouvez trouver create-service-account dans les répertoires suivants :

  • Graphiques Helm : $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/
  • apigeectl : $APIGEECTL_HOME/apigeectl/tools/

Vérifier que l'outil create-service-account est exécutable

Vérifiez que vous pouvez exécuter create-service-account. Si vous venez de télécharger les graphiques Helm Apigee, il est possible que les outils de ligne de commande ne soient pas en mode exécutable. Accédez au répertoire dans lequel create-service-account est installé et vérifiez qu'il est exécutable en l'exécutant avec --help :

./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 ./create-service-account

Utiliser create-service-account

Les exemples suivants montrent l'utilisation de create-service-account pour les tâches de configuration Apigee hybrid courantes.

Créer des comptes de service pour un environnement de production

Dans un environnement hybride de production, Apigee recommande d'utiliser un compte de service distinct pour chaque composant. Utilisez la commande suivante pour créer tous les comptes de service pour les composants hybrides, avec leurs noms par défaut dans le répertoire par défaut.

./tools/create-service-account --env prod

Les comptes de service suivants seront créés avec les fichiers de certificat téléchargés dans le répertoire ./tools/service-accounts :

Compte de service Rôle IAM Adresse e-mail Fichier de certification
apigee-cassandra roles/storage.objectAdmin apigee-cassandra@PROJECT_ID.iam.gserviceaccount.com PROJECT_ID-apigee-cassandra.json
apigee-logger roles/logging.logWriter apigee-logger@PROJECT_ID.iam.gserviceaccount.com PROJECT_ID-apigee-logger.json
apigee-mart roles/apigeeconnect.Agent apigee-mart@PROJECT_ID.iam.gserviceaccount.com PROJECT_ID-apigee-mart.json
apigee-metrics roles/monitoring.metricWriter apigee-metrics@PROJECT_ID.iam.gserviceaccount.com PROJECT_ID-apigee-metrics.json
apigee-runtime Aucun rôle attribué apigee-runtime@PROJECT_ID.iam.gserviceaccount.com PROJECT_ID-apigee-runtime.json
apigee-synchronizer roles/apigee.synchronizerManager apigee-synchronizer@PROJECT_ID.iam.gserviceaccount.com PROJECT_ID-apigee-synchronizer.json
apigee-udca roles/apigee.analyticsAgent apigee-udca@PROJECT_ID.iam.gserviceaccount.com PROJECT_ID-apigee-udca.json
apigee-watcher roles/apigee.runtimeAgent apigee-watcher@PROJECT_ID.iam.gserviceaccount.com PROJECT_ID-apigee-watcher.json

Créer un compte de service unique pour un environnement hors production

Pour les environnements hors production, tels qu'un environnement expérimental ou de démonstration, vous pouvez créer un seul compte de service nommé "apigee-non-prod" que vous pouvez utiliser pour tous les composants. Tous les rôles IAM de l'exemple précédent sont attribués à ce compte de service.

./tools/create-service-account --env non-prod

Cette commande crée un compte de service unique nommé apigee-non-prod et télécharge le fichier de certificat dans le répertoire ./tools/service-accounts :

Compte de service Rôles IAM Adresse e-mail Fichier de certification
apigee-non-prod roles/apigee.analyticsAgent
roles/apigee.runtimeAgent
roles/apigee.synchronizerManager
roles/apigeeconnect.Agent
roles/logging.logWriter
roles/monitoring.metricWriter
roles/storage.objectAdmin
apigee-non-prod@PROJECT_ID.iam.gserviceaccount.com PROJECT_ID-apigee-non-prod.json

create-service-account syntax

L'outil create-service-account utilise la syntaxe suivante :

create-service-account [flags] 

Le tableau suivant répertorie les options create-service-account :

Option Valeurs Description
--dir
-d
nom du répertoire Spécifie un répertoire de sortie pour les fichiers de clé du compte de service. Si le répertoire n'existe pas, create-service-account le crée. Si le répertoire existe déjà, create-service-account écrase tous les fichiers du répertoire portant le même nom que les fichiers de clé qu'il crée.

Si vous ne spécifiez pas de répertoire de sortie, create-service-account écrit les fichiers de compte de service dans le répertoire service-accounts/ au sein du répertoire où se trouve create-service-account.

--env
-e
prod
non-prod
Spécifie si vous créez des comptes de service pour un environnement de production (prod) ou un environnement hors production (non-prod).
  • --env prod crée des comptes de service pour les environnements hybrides de production.

    Dans un environnement de production, il est recommandé de disposer d'un seul compte de service pour chaque service Apigee. Chaque rôle créé sera associé à un seul rôle IAM.

    create-service-account -env prod crée tous les comptes de service utilisés par Apigee hybrid, sauf si vous spécifiez un compte de service spécifique avec --profile.

  • --env non-prod crée un seul compte de service auquel sont associés tous les rôles IAM. Cela s'avère utile pour les environnements hors production tels qu'une installation expérimentale ou de démonstration.

    Ce compte de service sera nommé apigee-non-prod, sauf si vous spécifiez un nom avec l'option --name.

Si vous exécutez create-service-account sans --env, vous serez invité à saisir prod ou non-prod.

--help
-h
aucun Affiche le texte d'aide.
--name
-n
nom du compte de service Spécifie un nom pour le compte de service. --name s'applique uniquement à un seul compte de service, spécifié avec --profile ou --env non-prod.

Le nom fait également partie du nom du fichier de certificat et de l'adresse e-mail pour le compte de service. Par exemple, si vous exécutez create-service-account --profile apigee-logger --name my-logger (en supposant que votre projet Cloud actuel est my-hybrid-project), create-service-account crée un compte avec les éléments suivants :

  • Nom : my-logger
  • Adresse e-mail : my-logger@my-hybrid-project.iam.gserviceaccount.com
  • Fichier de certification : my-hybrid-project-my-logger.json

Si vous ne spécifiez pas --name, create-service-account utilise le nom du profil pour le nom du compte de service ou "apigee-non-prod" si vous spécifiez --env non-prod.

‑‑profile
-p
apigee‑cassandra
apigee‑logger
apigee‑mart
apigee‑metrics
apigee‑runtime
apigee‑synchronizer
apigee‑udca
apigee‑watcher
Pour les environnements de production uniquement, spécifie un seul compte de service à créer.

Vous pouvez spécifier un nom pour le compte de service à l'aide de l'option --name.

Nécessite --env prod.

‑‑project‑id
-i
project id ID du projet Google Cloud dans lequel vous créez les comptes de service.

create-service-account lit la valeur de la variable d'environnement PROJECT_ID. Si elle n'est pas présente, vous pouvez utiliser l'option --project-id.

Si vous ne spécifiez pas d'ID de projet, create-service-account utilisera l'ID du projet dans votre configuration gcloud actuelle.

Pour en savoir plus sur les comptes de service utilisés par Apigee hybrid, consultez la section À propos des comptes de service.

Vous pouvez également créer des comptes de service dans Google Cloud Console. Consultez aussi la section Créer et gérer des comptes de service.