create-service-account

Descripción general de create-serice-account

create-serice-account es una herramienta de línea de comandos proporcionada con Apigee Hybrid que crea cuentas de servicio de Google Cloud con roles que permiten que los componentes híbridos individuales de Apigee realicen llamadas a la API autorizadas y descarguen los archivos de claves de cuenta de servicio asociados. Puedes usar los archivos de claves de la cuenta de servicio que genera este comando en el archivo de configuración de anulaciones.

create-service-account crea una o más cuentas de servicio en tu proyecto actual de Google Cloud o el proyecto que especifiques, asigna el rol de IAM correcta a la cuenta de servicio y descarga el archivo de certificado para la cuenta de servicio en un directorio de tu máquina local.

Para obtener más información sobre las cuentas de servicio y leer la lista completa de las que están recomendadas para entornos de producción, consulta los siguientes vínculos:

También puedes crear cuentas de servicio en la consola de Google Cloud. Consulta también Crea y administra cuentas de servicio.

Requisitos previos

Función

La herramienta create-service-account requiere que la CLI de gcloud esté instalada. Los usuarios que invoquen la utilidad deben tener la función Service Account Admin.

Proyecto

Las cuentas de servicio están vinculadas a un proyecto específico de Google Cloud. create-service-account crea cuentas de servicio en tu proyecto actual o en el que especifiques, y vincula las funciones de IAM a las cuentas de servicio dentro de ese proyecto. create-service-account también usa el ID del proyecto como parte del correo electrónico y el nombre del archivo de claves de la cuenta de servicio. 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 electrónico de la cuenta de servicio será apigee-logger@my-hybrid-project.iam.gserviceaccount.com.

Puedes especificar un proyecto si defines 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 usa el proyecto en tu configuración de proyecto actual de gcloud.

Puedes verificar la configuración actual del proyecto gcloud 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

En el ejemplo anterior, PROJECT_ID es el ID de tu proyecto actual de Cloud. Las instrucciones para crear un proyecto de Cloud se tratan en el Paso 2: Crea un proyecto de Google Cloud.

Ubicación del archivo

Puedes encontrar la herramienta de create-service-account en el siguiente directorio:

$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/

Verifica que la herramienta create-service-account sea ejecutable

Verifica que puedas ejecutar create-service-account. Si acabas de descargar los gráficos de Helm para Apigee, es posible que las herramientas de línea de comandos no estén en un modo ejecutable. Navega al directorio en el que está instalado create-service-account y ejecútalo con --help para verificar que sea ejecutable:

./create-service-account --help

Si el resultado indica permission denied, debes hacer que el archivo sea ejecutable, por ejemplo, con chmod en Linux, MacOS o UNIX, o en Windows Explorer o con el comando icacls en Windows. Por ejemplo:

chmod +x ./create-service-account

Usa create-service-account

En los siguientes ejemplos, se muestra cómo usar create-service-account para tareas comunes de configuración híbrida de Apigee.

Crea cuentas de servicio para un entorno de producción

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

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

Esto creará las siguientes cuentas de servicio con los archivos de certificación descargados en el directorio ./tools/service-accounts:

Cuenta de servicio Función de IAM Correo electrónico Archivo de certificación
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 ninguna función asignada 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

Crea una cuenta de servicio única para un entorno que no sea de producción

Para entornos que no sean productos, como un entorno experimental o de demostración, puedes crear una sola cuenta de servicio llamada “apigee-non-prod” que puedas usar para todos los componentes. Esta cuenta de servicio tendrá todas las funciones de IAM que se asignaron en el ejemplo anterior.

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

Esto creará una cuenta de servicio única llamada apigee-non-prod y descargará el archivo de certificación en el directorio ./tools/service-accounts:

Cuenta de servicio Funciones de IAM Correo electrónico Archivo de certificación
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 usa la siguiente sintaxis:

create-service-account [flags] 

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

Flag Values Descripción
--dir
-d
nombre del directorio Especifica un directorio de salida para los archivos de claves de la cuenta de servicio. Si el directorio no existe, create-service-account lo creará. Si el directorio ya existe, create-service-account reemplazará los archivos del directorio que tengan el mismo nombre que los archivos de claves que crea.

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

--env
-e
prod
non-prod
Especifica si creas cuentas de servicio para un entorno de producción (prod) o uno de no producción (non-prod).
  • --env prod crea cuentas de servicio para los entornos híbridos de producción.

    En un entorno de producción, se recomienda que tengas una única cuenta de servicio para cada servicio de Apigee. Cada función creada tendrá una única función de IAM asociada.

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

  • --env non-prod crea una única cuenta de servicio con todas las funciones de IAM vinculadas. Esto es útil para 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 ingreses prod o non-prod.

--help
-h
none 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 sola cuenta de servicio, ya sea especificada con --profile o --env non-prod.

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

  • Nombre: my-logger.
  • Correo electrónico: 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 para el 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 los entornos de producción, especifica una única cuenta de servicio para que se cree.

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

Requiere --env prod.

‑‑project‑id
-i
project id El ID del proyecto de Google Cloud en el que creas 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 del proyecto, create-service-account usará el ID del proyecto en tu configuración actual de gcloud.

Para obtener más información sobre las cuentas de servicio que usa Apigee Hybrid, consulta Acerca de las cuentas de servicio.

También puedes crear cuentas de servicio en la consola de Google Cloud. Consulta también Crea y administra cuentas de servicio.