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
Rol
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 | Rol 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 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 |
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 |
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
:
Marcar | Valores | 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, |
--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 ).
Si ejecutas |
--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
Si no especificas |
‑‑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
Requiere |
‑‑project‑id -i |
project id | El ID del proyecto de Google Cloud en el que creas las cuentas de servicio.
Si no especificas un ID del proyecto, |
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.