Descripción general
En este paso, se explica cómo crear las cuentas de servicio de Google Cloud necesarias para que Apigee Hybrid funcione y se les asignen los roles de IAM adecuados.
En este procedimiento, se usan las siguientes dos variables de entorno definidas en el Paso 2: Descarga los gráficos de Helm para Apigee. Estas variables son opcionales. Si no las definiste, sustituye la ruta de acceso del directorio adecuada para cada variable en las muestras de código.
$APIGEE_HELM_CHARTS_HOME
: Es el directorio en el que descargaste los charts de Helm para Apigee, que se definen en el Paso 2: Descarga los charts de Helm para Apigee.$PROJECT_ID
: El ID de tu proyecto de Google Cloud, definido en la Parte 1: Configuración del proyecto y la organización -- Paso 1: Habilita las APIs.
Comparación entre los entornos de producción y los de no producción
En esta guía, se hace referencia a instalaciones de producción (“Prod.”) y No producción (“No prod.”). Una instalación de producción se ajusta para aumentar la capacidad de uso, el almacenamiento y la escalabilidad. Una instalación que no es de producción usa menos recursos y se usa principalmente con el fin de aprender y demostrar.
Cuando creas y configuras cuentas de servicio para Apigee Hybrid, es importante tener en cuenta el tipo de instalación al que te orientas.
En el caso de las instalaciones de producción, recomendamos crear una cuenta de servicio independiente para cada componente de Apigee Hybrid. Por ejemplo, el entorno de ejecución, mart, las métricas, mint, udca, etcétera, cada componente tiene una cuenta de servicio dedicada.
En el caso de las instalaciones que no son de 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 se les asignan, consulta Cuentas de servicio y funciones que usan los componentes híbridos.
Autentica cuentas de servicio
Apigee hybrid admite los siguientes métodos de autenticación de cuentas de servicio de Google:
- Secretos de Kubernetes
- Archivos de claves JSON de cuentas de servicio ("archivos JSON" en las pestañas de selección de la siguiente sección)
- Vault
- Federación de identidades para cargas de trabajo para GKE (“WIF para GKE” en las pestañas de selección de la siguiente sección)
- Federación de identidades para cargas de trabajo en otras plataformas ("WIF 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 planeas usar.
Crea las cuentas de servicio
Apigee Hybrid usa las siguientes cuentas de servicio:
Producción
Cuenta de servicio | Roles de IAM | Gráfico de Helm para Apigee |
---|---|---|
apigee-cassandra |
Administrador de objetos de Storage | apigee-datastore |
apigee-logger |
Escritor de registros | apigee-telemetry |
apigee-mart |
Agente de Apigee Connect | apigee-org |
apigee-metrics |
Escritor de métricas de Monitoring | apigee-telemetry |
apigee-mint-task-scheduler (Obligatorio solo si usas la Monetización de Apigee Hybrid) |
No se requiere una función | apigee-org |
apigee-runtime |
No se requiere una función | apigee-env |
apigee-synchronizer |
Administrador de objetos de almacenamiento Administrador de Apigee Synchronizer |
apigee-env |
apigee-udca |
Agente de estadísticas de Apigee | apigee-org apigee-env |
apigee-watcher |
Agente del entorno de ejecución de Apigee | apigee-org |
No producción
Cuenta de servicio | Roles de IAM | Gráfico de Helm para Apigee |
---|---|---|
apigee-non-prod |
Administrador de objetos de almacenamiento Escritor de registros Agente de Apigee Connect Escritor de métricas de Monitoring Administrador de Apigee Synchronizer Apigee Agente de estadísticas Agente del entorno 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 para cada cuenta.
Verifica que puedas ejecutar create-service-account
. Si acabas de descargar los gráficos, es posible que el archivo create-service-account
no esté en un modo ejecutable. En tu directorio APIGEE_HELM_CHARTS_HOME, ejecuta el siguiente comando:
$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/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 $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account
Crea las cuentas de servicio
Elige el procedimiento para el método de autenticación de la cuenta de servicio que planeas 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 claves de la cuenta de servicio para almacenarlos en objetos Secret de Kubernetes, puedes usar la herramienta create-service-account
para crear los archivos de claves de la cuenta de servicio con la marca --dir
para crear un directorio para los archivos de claves.
Producción
- Asegúrate de que la variable de entorno
PROJECT_ID
esté definida.echo $PROJECT_ID
El tipo
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 agrega la marcaPROJECT_ID
environment variable--project-id PROJECT_ID
al comandocreate-service-account
. -
Crea las cuentas de servicio con los siguientes comandos, en los que
$APIGEE_HELM_CHARTS_HOME
es la ruta en la que descargaste los gráficos de Helm para Apigee. Es posible que se te solicite crear 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
- Para verificar que se crearon los archivos de la cuenta de servicio, revisa el contenido del directorio
service-accounts
. Deberías obtener un resultado similar al siguiente: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
- Asegúrate de que la variable de entorno
PROJECT_ID
esté definida.echo $PROJECT_ID
El tipo
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 agrega la marcaPROJECT_ID
environment variable--project-id PROJECT_ID
al comandocreate-service-account
. -
Crea las cuentas de servicio con el siguiente comando, en el que
$APIGEE_HELM_CHARTS_HOME
es la ruta de acceso en la que descargaste los gráficos de Helm para Apigee. Es posible que se te solicite crear 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 que se haya creado el archivo de la cuenta de servicio. Para ello, revisa el contenido del directorio
service-accounts
. Deberías obtener un resultado similar al siguiente:ls $APIGEE_HELM_CHARTS_HOME/service-accounts/
my-project-apigee-non-prod.json
Archivos JSON
Debido a que Helm no admite archivos de referencia fuera del directorio del gráfico, crearás cada archivo de certificado de cuenta de servicio en el directorio del gráfico para el componente híbrido correspondiente.
En los pasos siguientes, elige si configurarás una instalación de producción o de no producción.
Producción
- Asegúrate de que la variable de entorno
PROJECT_ID
esté definida.echo $PROJECT_ID
El tipo
create-service-account tool uses the value of the
. Si no está definida, defínela con el ID de tu proyecto de Google Cloud o agrega la marcaPROJECT_ID
environment variable--project-id PROJECT_ID
a los comandoscreate-service-account
. -
Crea las cuentas de servicio con los siguientes comandos, en los que
$APIGEE_HELM_CHARTS_HOME
es la ruta en la que descargaste los gráficos de Helm para Apigee. Es posible que se te solicite crear 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 habilitas la monetización para Apigee Hybrid (Apigee Hybrid v1.15.1 y versiones posteriores), haz lo siguiente:
$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
apigee-udca
en el directorio del chartapigee-env
. Se necesita para las operaciones a nivel de la organización y del entorno.cp $APIGEE_HELM_CHARTS_HOME/apigee-org/$PROJECT_ID-apigee-udca.json $APIGEE_HELM_CHARTS_HOME/apigee-env/
- Para verificar que los archivos de la cuenta de servicio se hayan creado en los directorios correctos, verifica el contenido del directorio de cada gráfico. Deberías obtener un resultado similar al siguiente:
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
- Asegúrate de que la variable de entorno
PROJECT_ID
esté definida.echo $PROJECT_ID
El tipo
create-service-account tool uses the value of the
. Si no está definida, defínela con el ID de tu proyecto de Google Cloud o agrega la marcaPROJECT_ID
environment variable--project-id PROJECT_ID
a los comandoscreate-service-account
. -
Crea la cuenta de servicio con el siguiente comando, en el que
$APIGEE_HELM_CHARTS_HOME
es la ruta de acceso en la que descargaste los gráficos de Helm para Apigee. Es posible que se te solicite crear 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 la 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 la cuenta de servicio en los otros directorios del gráfico que deberán 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 claves de la cuenta de servicio que se almacenarán en Vault, puedes usar la herramienta create-service-account
para crear los archivos de claves de la cuenta de servicio con la marca --dir
y crear un directorio para los archivos de claves.
Producción
- Asegúrate de que la variable de entorno
PROJECT_ID
esté definida.echo $PROJECT_ID
El tipo
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 agrega la marcaPROJECT_ID
environment variable--project-id PROJECT_ID
al comandocreate-service-account
. -
Crea las cuentas de servicio con los siguientes comandos, en los que
$APIGEE_HELM_CHARTS_HOME
es la ruta en la que descargaste los gráficos de Helm para Apigee. Es posible que se te solicite crear 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
- Para verificar que los archivos de la cuenta de servicio se hayan creado, verifica el contenido del directorio
service-accounts
. Deberías obtener un resultado similar al siguiente: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
- Asegúrate de que la variable de entorno
PROJECT_ID
esté definida.echo $PROJECT_ID
El tipo
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 agrega la marcaPROJECT_ID
environment variable--project-id PROJECT_ID
al comandocreate-service-account
. -
Crea las cuentas de servicio con el siguiente comando, en el que
$APIGEE_HELM_CHARTS_HOME
es la ruta de acceso en la que descargaste los gráficos de Helm para Apigee. Es posible que se te solicite crear 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
- Para verificar que se haya creado el archivo de la cuenta de servicio, revisa el contenido del directorio
service-accounts
. Deberías obtener un resultado similar al siguiente: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
- Asegúrate de que la variable de entorno
PROJECT_ID
esté definida.echo $PROJECT_ID
El tipo
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 agrega la marcaPROJECT_ID
environment variable--project-id PROJECT_ID
al comandocreate-service-account
. -
Crea las cuentas de servicio con los siguientes comandos, en los que
$APIGEE_HELM_CHARTS_HOME
es la ruta en la que descargaste los gráficos de Helm para Apigee. Es posible que se te solicite crear 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
El resultado debería ser similar al 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
- Asegúrate de que la variable de entorno
PROJECT_ID
esté definida.echo $PROJECT_ID
El tipo
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 agrega la marcaPROJECT_ID
environment variable--project-id PROJECT_ID
al comandocreate-service-account
. -
Crea las cuentas de servicio con el siguiente comando, en el que
$APIGEE_HELM_CHARTS_HOME
es la ruta de acceso en la que descargaste los gráficos de Helm para Apigee. Es posible que se te solicite crear 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
El resultado debería ser similar al 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 borrar el directorio service-accounts
cuando termines.
WIF en otras plataformas
Crea las cuentas de servicio para tu instalación con los siguientes comandos:
Producción
- Asegúrate de que la variable de entorno
PROJECT_ID
esté definida.echo $PROJECT_ID
El tipo
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 agrega la marcaPROJECT_ID
environment variable--project-id PROJECT_ID
al comandocreate-service-account
. -
Crea las cuentas de servicio con los siguientes comandos, en los que
$APIGEE_HELM_CHARTS_HOME
es la ruta en la que descargaste los gráficos de Helm para Apigee. Es posible que se te solicite crear 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
El resultado debería ser similar al 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
- Asegúrate de que la variable de entorno
PROJECT_ID
esté definida.echo $PROJECT_ID
El tipo
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 agrega la marcaPROJECT_ID
environment variable--project-id PROJECT_ID
al comandocreate-service-account
. -
Crea las cuentas de servicio con el siguiente comando, en el que
$APIGEE_HELM_CHARTS_HOME
es la ruta de acceso en la que descargaste los gráficos de Helm para Apigee. Es posible que se te solicite crear 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
El resultado debería ser similar al 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 borrar el directorio service-accounts
cuando termines.
Para obtener más información sobre las cuentas de servicio y la herramienta de create-service-account
, consulta lo siguiente:
Ya creaste cuentas de servicio y asignaste las funciones que necesitan los componentes híbridos de Apigee. A continuación, crea los certificados TLS que requiere la puerta de enlace de entrada híbrida.