Información general
En este paso se explica cómo crear las cuentas de servicio de Google Cloud necesarias para que funcione Apigee hybrid y cómo asignarles los roles de gestión de identidades y accesos adecuados.
En este procedimiento se usan las dos variables de entorno siguientes, definidas en el paso 2: descarga los gráficos de Helm de Apigee. Estas variables son opcionales. Si no los has definido, sustituye la ruta de directorio adecuada por cada variable en los ejemplos de código.
$APIGEE_HELM_CHARTS_HOME
: directorio en el que has descargado los gráficos de Helm de Apigee, definidos en el paso 2: descarga los gráficos de Helm de Apigee.$PROJECT_ID
: tu ID de proyecto de Google Cloud, definido en la parte 1: configuración del proyecto y de la organización (paso 1: habilitar APIs).
Entornos de producción y de no producción
En esta guía se hace referencia a las instalaciones de producción y no de producción. Una instalación de producción se ajusta para ofrecer una mayor capacidad de uso, almacenamiento y escalabilidad. Una instalación que no es de producción usa menos recursos y se utiliza principalmente para aprender y hacer demostraciones.
Cuando creas y configuras cuentas de servicio para Apigee hybrid, es importante que tengas en cuenta el tipo de instalación que quieres usar.
En las instalaciones de producción, te recomendamos que crees una cuenta de servicio independiente para cada componente híbrido de Apigee. Por ejemplo, cada componente (runtime, mart, metrics, mint, udca, etc.) tiene una cuenta de servicio específica.
En las instalaciones de entorno de no producción, puedes crear una sola cuenta de servicio que se aplique a todos los componentes.
Para obtener más información sobre las cuentas de servicio que usa Apigee y los roles que tienen asignados, consulta el artículo Cuentas de servicio y roles que usan los componentes híbridos.
Autenticar cuentas de servicio
Apigee hybrid admite los siguientes métodos para autenticar cuentas de servicio de Google:
- Secretos de Kubernetes
- Archivos de claves JSON de cuentas de servicio (en las pestañas de selección de la siguiente sección, se denominan "archivos JSON").
- Vault
- Workload Identity Federation para GKE (WIF para GKE en las pestañas de selección de la siguiente sección).
- Federación de identidades de cargas de trabajo en otras plataformas (en las pestañas de selección de la siguiente sección).
En la siguiente sección, elige el procedimiento para el tipo de autenticación que quieras usar.
Crear las cuentas de servicio
Apigee hybrid usa las siguientes cuentas de servicio:
Producción
Cuenta de servicio | Roles de gestión de identidades y accesos | Gráfico de Helm de Apigee |
---|---|---|
apigee-cassandra |
Administrador de objetos de Storage | apigee-datastore |
apigee-logger |
Escritor de registros | apigee-telemetry |
apigee-mart |
Agente de conexión de Apigee | apigee-org |
apigee-metrics |
Escritor de las métricas de supervisión | apigee-telemetry |
apigee-mint-task-scheduler (Obligatorio solo si usas Monetización para Apigee Hybrid) |
No se requiere ningún rol | apigee-org |
apigee-runtime |
No se requiere ningún rol | apigee-env |
apigee-synchronizer |
Administrador del sincronizador de Apigee Administrador de objetos de Storage |
apigee-env |
apigee-udca |
Agente de Analytics de Apigee | apigee-org apigee-env |
apigee-watcher |
Agente de entorno de ejecución de Apigee | apigee-org |
No producción
Cuenta de servicio | Roles de gestión de identidades y accesos | Gráfico de Helm de Apigee |
---|---|---|
apigee-non-prod |
Administrador de objetos de almacenamiento Editor de registros Agente de conexión de Apigee Editor de métricas de monitorización Administrador del sincronizador de Apigee Agente de analíticas de Apigee Agente de tiempo de ejecución de Apigee |
apigee-datastore apigee-telemetry apigee-org apigee-env |
La herramienta create-service-account
Apigee proporciona una herramienta,
create-service-account
, en el directorio apigee-operator/etc/tools
:
$APIGEE_HELM_CHARTS_HOME/ └── apigee-operator/ └── etc/ └── tools/ └── create-service-account
Esta herramienta crea las cuentas de servicio, asigna los roles de IAM a cada cuenta y descarga los archivos de certificado en formato JSON de cada cuenta.
Verifica que puedes ejecutar create-service-account
. Si acabas de descargar los gráficos, es posible que el archivo create-service-account
no esté en modo ejecutable. En el directorio APIGEE_HELM_CHARTS_HOME, ejecuta el siguiente comando:
$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account --help
Si la salida indica permission denied
, debes hacer que el archivo sea ejecutable. Por ejemplo, con chmod
en Linux, macOS o UNIX, o en el Explorador de Windows o con el comando icacls
en Windows. Por ejemplo:
chmod +x $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account
Crear las cuentas de servicio
Elige el procedimiento del método de autenticación de la cuenta de servicio que quieras usar en tu instalación. Para obtener más información, consulta Métodos de autenticación de cuentas de servicio en Apigee hybrid.
Secretos de Kubernetes
Para preparar los archivos de clave de la cuenta de servicio que se van a almacenar en secretos de Kubernetes, puedes usar la herramienta create-service-account
para crear los archivos de clave de la cuenta de servicio con la marca --dir
, que crea un directorio para los archivos de clave.
Producción
- Comprueba que se ha definido la variable de entorno
PROJECT_ID
.echo $PROJECT_ID
El
create-service-account tool uses the value of the
. Si no está definido, defínelo con el ID de tu proyecto de Google Cloud o añade la marcaPROJECT_ID
environment variable--project-id PROJECT_ID
al comandocreate-service-account
. -
Crea las cuentas de servicio con los siguientes comandos, donde
$APIGEE_HELM_CHARTS_HOME
es la ruta donde has descargado los gráficos de Helm de Apigee. Puede que se te pida que crees cada cuenta de servicio. Responde cony
.$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --env prod \ --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
- Comprueba que se hayan creado los archivos de la cuenta de servicio consultando el contenido del directorio
service-accounts
. La salida debería tener este aspecto:ls $APIGEE_HELM_CHARTS_HOME/service-accounts/
my-project-apigee-cassandra.json my-project-apigee-runtime.json my-project-apigee-logger.json my-project-apigee-synchronizer.json my-project-apigee-mart.json my-project-apigee-udca.json my-project-apigee-metrics.json my-project-apigee-watcher.json my-project-apigee-mint-task-scheduler.json
No producción
- Comprueba que se ha definido la variable de entorno
PROJECT_ID
.echo $PROJECT_ID
El
create-service-account tool uses the value of the
. Si no está definido, defínelo con el ID de tu proyecto de Google Cloud o añade la marcaPROJECT_ID
environment variable--project-id PROJECT_ID
al comandocreate-service-account
. -
Crea las cuentas de servicio con el siguiente comando, donde
$APIGEE_HELM_CHARTS_HOME
es la ruta en la que has descargado los gráficos de Helm de Apigee. Puede que se te pida que crees la cuenta de servicio. Responde cony
.$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --env non-prod \ --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
- Comprueba que se ha creado el archivo de cuenta de servicio consultando el contenido del directorio
service-accounts
. La salida debería tener este aspecto:ls $APIGEE_HELM_CHARTS_HOME/service-accounts/
my-project-apigee-non-prod.json
Archivos JSON
Como Helm no admite referencias a archivos que no estén en el directorio del gráfico, crearás cada archivo de certificado de cuenta de servicio en el directorio del gráfico del componente híbrido correspondiente.
En los pasos siguientes, elige si vas a configurar una instalación de producción o de no producción.
Producción
- Comprueba que se ha definido la variable de entorno
PROJECT_ID
.echo $PROJECT_ID
El
create-service-account tool uses the value of the
. Si no está definido, defínelo con el ID de tu proyecto de Google Cloud o añade la marcaPROJECT_ID
environment variable--project-id PROJECT_ID
a los comandoscreate-service-account
. -
Crea las cuentas de servicio con los siguientes comandos, donde
$APIGEE_HELM_CHARTS_HOME
es la ruta donde has descargado los gráficos de Helm de Apigee. Puede que se te pida que crees cada cuenta de servicio. Responde cony
.$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --profile apigee-cassandra \ --env prod \ --dir $APIGEE_HELM_CHARTS_HOME/apigee-datastore
$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --profile apigee-logger \ --env prod \ --dir $APIGEE_HELM_CHARTS_HOME/apigee-telemetry
$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --profile apigee-mart \ --env prod \ --dir $APIGEE_HELM_CHARTS_HOME/apigee-org
$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --profile apigee-metrics \ --env prod \ --dir $APIGEE_HELM_CHARTS_HOME/apigee-telemetry
$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --profile apigee-runtime \ --env prod \ --dir $APIGEE_HELM_CHARTS_HOME/apigee-env
$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --profile apigee-synchronizer \ --env prod \ --dir $APIGEE_HELM_CHARTS_HOME/apigee-env
$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --profile apigee-udca \ --env prod \ --dir $APIGEE_HELM_CHARTS_HOME/apigee-env
$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --profile apigee-udca \ --env prod \ --dir $APIGEE_HELM_CHARTS_HOME/apigee-org
$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --profile apigee-watcher \ --env prod \ --dir $APIGEE_HELM_CHARTS_HOME/apigee-org
Si vas a habilitar Monetización para Apigee Hybrid (Apigee Hybrid v1.15.1 y versiones posteriores):
$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --profile apigee-mint-task-scheduler \ --env prod \ --dir $APIGEE_HELM_CHARTS_HOME/apigee-org
- Copia el archivo JSON de
apigee-udca
en el directorio de gráficos deapigee-env
. Es necesario para las operaciones de ámbito de organización y de ámbito de entorno.cp $APIGEE_HELM_CHARTS_HOME/apigee-org/$PROJECT_ID-apigee-udca.json $APIGEE_HELM_CHARTS_HOME/apigee-env/
- Comprueba que los archivos de cuenta de servicio se han creado en los directorios correctos consultando el contenido de cada directorio de gráficos. La salida debería tener este aspecto:
ls ./apigee-datastore
Chart.yaml my-project-apigee-cassandra.json templates values.yamlls ./apigee-telemetry
Chart.yaml my-project-apigee-metrics.json values.yaml my-project-apigee-logger.json templatesls ./apigee-org
Chart.yaml my-project-apigee-udca.json my-project-apigee-mart.json my-project-apigee-watcher.json my-project-apigee-mint-task-scheduler.json values.yamlls ./apigee-env
Chart.yaml my-project-apigee-synchronizer.json templates my-project-apigee-runtime.json my-project-apigee-udca.json values.yaml
No producción
- Comprueba que se ha definido la variable de entorno
PROJECT_ID
.echo $PROJECT_ID
El
create-service-account tool uses the value of the
. Si no está definido, defínelo con el ID de tu proyecto de Google Cloud o añade la marcaPROJECT_ID
environment variable--project-id PROJECT_ID
a los comandoscreate-service-account
. -
Crea la cuenta de servicio con el siguiente comando, donde
$APIGEE_HELM_CHARTS_HOME
es la ruta donde has descargado los gráficos de Helm de Apigee. Puede que se te pida que crees cada cuenta de servicio. Responde cony
.$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --env non-prod \ --dir $APIGEE_HELM_CHARTS_HOME/apigee-datastore
- Verifica el nombre del archivo de cuenta de servicio creado en el directorio
apigee-datastore
:ls $APIGEE_HELM_CHARTS_HOME/apigee-datastore
Chart.yaml PROJECT_ID-apigee-non-prod.json templates values.yaml
- Copia el archivo de cuenta de servicio en los demás directorios de gráficos que necesiten hacer referencia a él:
cp $APIGEE_HELM_CHARTS_HOME/apigee-datastore/SA_FILE_NAME $APIGEE_HELM_CHARTS_HOME/apigee-telemetry/
cp $APIGEE_HELM_CHARTS_HOME/apigee-datastore/SA_FILE_NAME $APIGEE_HELM_CHARTS_HOME/apigee-org/
cp $APIGEE_HELM_CHARTS_HOME/apigee-datastore/SA_FILE_NAME $APIGEE_HELM_CHARTS_HOME/apigee-env/
Vault
Para preparar los archivos de clave de cuenta de servicio que se van a almacenar en Vault, puedes usar la herramienta create-service-account
para crear los archivos de clave de cuenta de servicio con la marca --dir
, que crea un directorio para los archivos de clave.
Producción
- Comprueba que se ha definido la variable de entorno
PROJECT_ID
.echo $PROJECT_ID
El
create-service-account tool uses the value of the
. Si no está definido, defínelo con el ID de tu proyecto de Google Cloud o añade la marcaPROJECT_ID
environment variable--project-id PROJECT_ID
al comandocreate-service-account
. -
Crea las cuentas de servicio con los siguientes comandos, donde
$APIGEE_HELM_CHARTS_HOME
es la ruta donde has descargado los gráficos de Helm de Apigee. Puede que se te pida que crees cada cuenta de servicio. Responde cony
.$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --env prod \ --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
- Comprueba que se hayan creado los archivos de la cuenta de servicio consultando el contenido del directorio
service-accounts
. La salida debería tener este aspecto:ls $APIGEE_HELM_CHARTS_HOME/service-accounts/
my-project-apigee-cassandra.json my-project-apigee-runtime.json my-project-apigee-logger.json my-project-apigee-synchronizer.json my-project-apigee-mart.json my-project-apigee-udca.json my-project-apigee-metrics.json my-project-apigee-watcher.json my-project-apigee-mint-task-scheduler.json
No producción
- Comprueba que se ha definido la variable de entorno
PROJECT_ID
.echo $PROJECT_ID
El
create-service-account tool uses the value of the
. Si no está definido, defínelo con el ID de tu proyecto de Google Cloud o añade la marcaPROJECT_ID
environment variable--project-id PROJECT_ID
al comandocreate-service-account
. -
Crea las cuentas de servicio con el siguiente comando, donde
$APIGEE_HELM_CHARTS_HOME
es la ruta en la que has descargado los gráficos de Helm de Apigee. Puede que se te pida que crees la cuenta de servicio. Responde cony
.$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --env non-prod \ --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
- Comprueba que se ha creado el archivo de cuenta de servicio consultando el contenido del directorio
service-accounts
. La salida debería tener este aspecto:ls $APIGEE_HELM_CHARTS_HOME/service-accounts/
my-project-apigee-non-prod.json
WIF para GKE
Crea las cuentas de servicio para tu instalación con los siguientes comandos:
Producción
- Comprueba que se ha definido la variable de entorno
PROJECT_ID
.echo $PROJECT_ID
El
create-service-account tool uses the value of the
. Si no está definido, defínelo con el ID de tu proyecto de Google Cloud o añade la marcaPROJECT_ID
environment variable--project-id PROJECT_ID
al comandocreate-service-account
. -
Crea las cuentas de servicio con los siguientes comandos, donde
$APIGEE_HELM_CHARTS_HOME
es la ruta donde has descargado los gráficos de Helm de Apigee. Puede que se te pida que crees cada cuenta de servicio. Responde cony
.$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --env prod \ --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
-
Verifica la creación de las cuentas de servicio de Google con el siguiente comando:
gcloud iam service-accounts list --project $PROJECT_ID
La salida debería ser similar a la siguiente:
DISPLAY NAME EMAIL DISABLED apigee-cassandra apigee-cassandra@my-project.iam.gserviceaccount.com False apigee-mart apigee-mart@my-project.iam.gserviceaccount.com False apigee-metrics apigee-metrics@my-project.iam.gserviceaccount.com False apigee-mint-task-scheduler apigee-mint-task-scheduler@my-project.iam.gserviceaccount.com False apigee-runtime apigee-runtime@my-project.iam.gserviceaccount.com False apigee-synchronizer apigee-synchronizer@my-project.iam.gserviceaccount.com False apigee-udca apigee-udca@my-project.iam.gserviceaccount.com False apigee-watcher apigee-watcher@my-project.iam.gserviceaccount.com False
No producción
- Comprueba que se ha definido la variable de entorno
PROJECT_ID
.echo $PROJECT_ID
El
create-service-account tool uses the value of the
. Si no está definido, defínelo con el ID de tu proyecto de Google Cloud o añade la marcaPROJECT_ID
environment variable--project-id PROJECT_ID
al comandocreate-service-account
. -
Crea las cuentas de servicio con el siguiente comando, donde
$APIGEE_HELM_CHARTS_HOME
es la ruta en la que has descargado los gráficos de Helm de Apigee. Puede que se te pida que crees la cuenta de servicio. Responde cony
.$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --env non-prod \ --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
-
Verifica la creación de las cuentas de servicio de Google con el siguiente comando:
gcloud iam service-accounts list --project $PROJECT_ID
La salida debería ser similar a la siguiente:
DISPLAY NAME EMAIL DISABLED apigee-non-prod apigee-non-prod@my-project.iam.gserviceaccount.com False
Opcional: No necesitarás los archivos de claves de la cuenta de servicio para Workload Identity Federation for GKE. Puedes eliminar el directorio service-accounts
cuando hayas terminado.
WIF en otras plataformas
Crea las cuentas de servicio para tu instalación con los siguientes comandos:
Producción
- Comprueba que se ha definido la variable de entorno
PROJECT_ID
.echo $PROJECT_ID
El
create-service-account tool uses the value of the
. Si no está definido, defínelo con el ID de tu proyecto de Google Cloud o añade la marcaPROJECT_ID
environment variable--project-id PROJECT_ID
al comandocreate-service-account
. -
Crea las cuentas de servicio con los siguientes comandos, donde
$APIGEE_HELM_CHARTS_HOME
es la ruta donde has descargado los gráficos de Helm de Apigee. Puede que se te pida que crees cada cuenta de servicio. Responde cony
.$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --env prod \ --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
-
Verifica la creación de las cuentas de servicio de Google con el siguiente comando:
gcloud iam service-accounts list --project $PROJECT_ID
La salida debería ser similar a la siguiente:
DISPLAY NAME EMAIL DISABLED apigee-cassandra apigee-cassandra@my-project.iam.gserviceaccount.com False apigee-mart apigee-mart@my-project.iam.gserviceaccount.com False apigee-metrics apigee-metrics@my-project.iam.gserviceaccount.com False apigee-mint-task-scheduler apigee-mint-task-scheduler@my-project.iam.gserviceaccount.com False apigee-runtime apigee-runtime@my-project.iam.gserviceaccount.com False apigee-synchronizer apigee-synchronizer@my-project.iam.gserviceaccount.com False apigee-udca apigee-udca@my-project.iam.gserviceaccount.com False apigee-watcher apigee-watcher@my-project.iam.gserviceaccount.com False
No producción
- Comprueba que se ha definido la variable de entorno
PROJECT_ID
.echo $PROJECT_ID
El
create-service-account tool uses the value of the
. Si no está definido, defínelo con el ID de tu proyecto de Google Cloud o añade la marcaPROJECT_ID
environment variable--project-id PROJECT_ID
al comandocreate-service-account
. -
Crea las cuentas de servicio con el siguiente comando, donde
$APIGEE_HELM_CHARTS_HOME
es la ruta en la que has descargado los gráficos de Helm de Apigee. Puede que se te pida que crees la cuenta de servicio. Responde cony
.$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --env non-prod \ --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
-
Verifica la creación de las cuentas de servicio de Google con el siguiente comando:
gcloud iam service-accounts list --project $PROJECT_ID
La salida debería ser similar a la siguiente:
DISPLAY NAME EMAIL DISABLED apigee-non-prod apigee-non-prod@my-project.iam.gserviceaccount.com False
Opcional: No necesitarás los archivos de claves de la cuenta de servicio para Workload Identity Federation for GKE. Puedes eliminar el directorio service-accounts
cuando hayas terminado.
Para obtener más información sobre las cuentas de servicio y la herramienta create-service-account
, consulta los siguientes artículos:
Ahora has creado cuentas de servicio y has asignado los roles que necesitan los componentes de Apigee hybrid. A continuación, crea los certificados TLS que necesita la puerta de enlace de entrada híbrida.