create-service-account

Crea cuentas de servicio de Google Cloud con roles que permiten que los componentes individuales de Apigee hybrid realicen llamadas a la API autorizadas y descarga los archivos de claves de cuenta de servicio asociados. Puedes usar los archivos de claves de cuenta de servicio generados por este comando en tu archivo de anulaciones de configuración.

create-service-account crea una o varias cuentas de servicio en tu proyecto de Google Cloud actual o en el proyecto que especifiques, asigna el rol de gestión de identidades y accesos correcto a la cuenta de servicio y descarga el archivo de certificado de la cuenta de servicio en un directorio de tu máquina local.

La herramienta create-service-account se encuentra en el directorio HYBRID_ROOT_DIR/tools.

Para obtener más información sobre las cuentas de servicio y consultar la lista completa de cuentas de servicio recomendadas para entornos de producción, consulta los siguientes artículos:

También puedes crear cuentas de servicio en la consola de Google Cloud. Consulta también el artículo Crear y gestionar cuentas de servicio.

Requisitos previos

Rol

La herramienta create-service-account requiere que se instale la CLI de gcloud. Los usuarios que invoquen la utilidad deben tener el rol Service Account Admin.

Proyecto

Las cuentas de servicio están vinculadas a un proyecto de Google Cloud específico. create-service-account crea cuentas de servicio en el proyecto actual o en el que especifiques, y vincula los roles de gestión de identidades y accesos a las cuentas de servicio de ese proyecto. create-service-account también usa el ID de proyecto como parte del nombre del archivo de clave de la cuenta de servicio y del correo electrónico. Por ejemplo, si tu proyecto se llama my-hybrid-project, el archivo de claves de la cuenta de servicio apigee-logger se llamará my-hybrid-project-apigee-logger.json y la dirección de correo de la cuenta de servicio será apigee-logger@my-hybrid-project.iam.gserviceaccount.com.

Puedes especificar un proyecto definiendo una variable de entorno PROJECT_ID o con la marca --project-id. create-service-account lee el valor de la variable de entorno PROJECT_ID. Si no está presente, puedes usar la marca --project-id.

Si no especificas un ID de proyecto de Cloud, create-service-account usará el proyecto de tu configuración de proyecto de gcloud actual.

Puedes consultar la configuración del proyecto gcloud actual con el siguiente comando:

gcloud config list project

Si necesitas cambiar el ID del proyecto actual, usa el siguiente comando:

gcloud config set project PROJECT_ID

Donde PROJECT_ID es el ID de tu proyecto de Cloud. Las instrucciones para crear un proyecto de Cloud se explican en el paso 2: Crea un proyecto de Google Cloud.

Estás usando create-service-account

En los siguientes ejemplos se muestra cómo usar create-service-account para realizar tareas de configuración habituales de Apigee hybrid.

Crear cuentas de servicio para un entorno de producción

En un entorno híbrido de producción, Apigee recomienda usar una cuenta de servicio independiente para cada componente. Usa el siguiente comando para crear todas las cuentas de servicio de los componentes híbridos con sus nombres predeterminados en el directorio predeterminado.

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

Se crearán las siguientes cuentas de servicio y los archivos de certificado se descargarán en el directorio ./tools/service-accounts:

Cuenta de servicio Rol de gestión de identidades y accesos Correo electrónico Archivo de certificado
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 No hay ningún rol asignado 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

Crear una sola cuenta de servicio para un entorno que no sea de producción

En entornos que no sean de producción, como un entorno experimental o de demostración, puedes crear una sola cuenta de servicio llamada "apigee-non-prod" que puedes usar en todos los componentes. Esta cuenta de servicio tendrá asignados todos los roles de gestión de identidades y accesos del ejemplo anterior.

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

Se creará una cuenta de servicio llamada apigee-non-prod y se descargará el archivo de certificado en el directorio ./tools/service-accounts:

Cuenta de servicio Roles de gestión de identidades y accesos Correo electrónico Archivo de certificado
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

La herramienta create-service-account utiliza la siguiente sintaxis:

create-service-account [flags] 

En la tabla siguiente se enumeran las marcas create-service-account:

Bandera Valores Descripción
--dir
-d
nombre_directorio Especifica un directorio de salida para los archivos de claves de cuenta de servicio. Si el directorio no existe, create-service-account lo creará. Si el directorio ya existe, create-service-account sobrescribirá los archivos del directorio que tengan el mismo nombre que los archivos de clave que esté creando.

Si no especificas un directorio de salida, create-service-account escribirá los archivos de la cuenta de servicio en el directorio service-accounts/ del directorio en el que se encuentre create-service-account.

--env
-e
prod
non-prod
Especifica si vas a crear cuentas de servicio para un entorno de producción (prod) o para un entorno que no sea de producción (non-prod).
  • --env prod crea cuentas de servicio para entornos híbridos de producción.

    En un entorno de producción, se recomienda tener una sola cuenta de servicio para cada servicio de Apigee. Cada rol creado tendrá un único rol de gestión de identidades y accesos asociado.

    create-service-account -env prod creará todas las cuentas de servicio que utilice Apigee hybrid, a menos que especifiques una cuenta de servicio concreta con --profile.

  • --env non-prod crea una única cuenta de servicio con todos los roles de IAM vinculados. Esto es útil en entornos que no son de producción, como una instalación experimental o de demostración.

    La cuenta de servicio se llamará apigee-non-prod a menos que especifiques un nombre con la marca --name.

Si ejecutas create-service-account sin --env, se te pedirá que introduzcas prod o non-prod.

--help
-h
ninguno Muestra el texto de ayuda.
--name
-n
Nombre de la cuenta de servicio Especifica un nombre para la cuenta de servicio. --name solo se aplica a una cuenta de servicio, que se especifica con --profile o --env non-prod.

El nombre también forma parte del nombre del archivo de certificado y del correo electrónico de la cuenta de servicio. Por ejemplo, si ejecutas create-service-account --profile apigee-logger --name my-logger (en este ejemplo, tu proyecto de Cloud actual es my-hybrid-project), create-service-account creará una cuenta con lo siguiente:

  • Nombre: my-logger
  • Correo: my-logger@my-hybrid-project.iam.gserviceaccount.com
  • Archivo de certificado: my-hybrid-project-my-logger.json

Si no especificas --name, create-service-account usa el nombre del perfil como nombre de la cuenta de servicio o "apigee-non-prod" si especificas --env non-prod.

‑‑profile
-p
apigee‑cassandra
apigee‑logger
apigee‑mart
apigee‑metrics
apigee‑runtime
apigee‑synchronizer
apigee‑udca
apigee‑watcher
Solo para entornos de producción, especifica una única cuenta de servicio que se va a crear.

Puedes especificar un nombre para la cuenta de servicio con la marca --name.

Requiere --env prod.

‑‑project‑id
-i
ID del proyecto Es el ID del proyecto de Google Cloud en el que vas a crear las cuentas de servicio.

create-service-account lee el valor de la variable de entorno PROJECT_ID. Si no está presente, puedes usar la marca --project-id.

Si no especificas un ID de proyecto, create-service-account usará el ID del proyecto de tu configuración actual de gcloud.

Para obtener más información sobre las cuentas de servicio que usa Apigee hybrid, consulta el artículo Acerca de las cuentas de servicio.

También puedes crear cuentas de servicio en la consola de Google Cloud. Consulta también el artículo sobre cómo crear y gestionar cuentas de servicio.