Crée des comptes de service Google Cloud avec des rôles permettant à des composants hybrides Apigee 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.
L'outil create-service-account
se trouve dans le répertoire HYBRID_ROOT_DIR/tools
.
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
Où 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.
Utiliser un fichier de cookie (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 | 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 | Fichier de certification | |
---|---|---|---|
apigee-non-prod |
roles/apigee.analyticsAgent |
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, |
--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 ).
Si vous exécutez |
--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
Si vous ne spécifiez pas |
‑‑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
Nécessite |
‑‑project‑id -i |
project id | ID du projet Google Cloud dans lequel vous créez les comptes de service.
Si vous ne spécifiez pas d'ID de projet, |
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.