En este paso, se explica cómo crear las cuentas de servicio de Google Cloud necesarias para que Apigee Hybrid funcione.
Descripción general
Apigee Hybrid usa cuentas de servicio de Google Cloud para permitir que los componentes híbridos se comuniquen mediante llamadas a la API autorizadas.
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, udca, etcétera, obtienen su propia cuenta de servicio.
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 las funciones que se les asignan, consulta Cuentas de servicio y funciones que usan los componentes híbridos.
Workload Identity en GKE
Para las instalaciones híbridas de Apigee en GKE, Google Cloud ofrece una opción llamada identidad de carga de trabajo para autenticar los componentes del entorno de ejecución híbrido. Esta opción no usa archivos de certificado descargados para autenticar las cuentas de servicio, sino que asocia las cuentas de servicio de Google Cloud que creas en este paso con las cuentas de servicio de Kubernetes en el clúster de Kubernetes.
Workload Identity solo está disponible en las instalaciones de GKE.
Crea las cuentas de servicio
Usa los siguientes procedimientos a fin de crear las cuentas de servicio de Google Cloud para tu instalación híbrida:
- La herramienta de
create-service-account
: Si instalas Apigee Hybrid en una plataforma que no sea GKE o si instalas en GKE, pero no deseas usar Workload Identity, usa la herramienta que proporciona Apigee,create-service-account
, para crear las cuentas de servicio, asignar los roles a las cuentas de servicio, y crear y descargar los archivos de claves de la cuenta de servicio en un solo comando. Sigue los procedimientos que se indican en
Crea cuentas de servicio concreate-service-account
. - Consola de Google Cloud o
gcloud
: Si instalas Apigee Hybrid en GKE y planeas usar Workload Identity, usa la consola de Google Cloud ogcloud
para crear cuentas de servicio sin descargar los archivos del certificado. Sigue los procedimientos que se describen en
Crea cuentas de servicio en la consola de Google Cloud o congcloud
.
Crea cuentas de servicio mediante create-service-account
Usa la herramienta de create-service-account
en las siguientes circunstancias:
- Instalas en una plataforma que no es de GKE
- Instalas en GKE, pero no planeas usar Workload Identity.
De lo contrario, ve a Crea cuentas de servicio en la consola de Google Cloud o con gcloud
.
- Asegúrate de que las variables de entorno HYBRID_FILES y PROJECT_ID estén configuradas.
PROJECT_ID debe configurarse como tu ID del proyecto de Google Cloud, porque la herramienta de
create-service-account
lee la variable de entorno PROJECT_ID para crear las cuentas de servicio en el proyecto correcto.echo $HYBRID_FILES
echo $PROJECT_ID
- Crea la cuenta de servicio con el siguiente comando:
No producción
Con este comando, se crea una sola cuenta de servicio llamada
apigee-non-prod
para usarla en una instalación que no es de producción y se descarga el archivo de claves para la cuenta de servicio en el directorio$HYBRID_FILES/service-accounts
.$HYBRID_FILES/tools/create-service-account --env non-prod --dir $HYBRID_FILES/service-accounts
Producción
Con este comando, se crean todas las cuentas de servicio individuales para una instalación de producción y se descargan los archivos de claves para las cuentas de servicio en el directorio
$HYBRID_FILES/service-accounts
.$HYBRID_FILES/tools/create-service-account --env prod --dir $HYBRID_FILES/service-accounts
Cuando veas el siguiente mensaje, ingresa y:
[INFO]: gcloud configured project ID is project_id. Enter: y to proceed with creating service account in project: project_id Enter: n to abort.
Si es la primera vez que creas una cuenta de servicio en particular, la herramienta la creará sin más mensajes.
Sin embargo, si ves el siguiente mensaje e instrucción, ingresa y para generar claves nuevas:
[INFO]: Service account apigee-non-prod@project_id.iam.gserviceaccount.com already exists. ... [INFO]: The service account might have keys associated with it. It is recommended to use existing keys. Press: y to generate new keys.(this does not deactivate existing keys) Press: n to skip generating new keys.
-
Verifica que la clave de la cuenta de servicio se haya creado con el siguiente comando. Eres responsable de almacenar estas claves privadas de forma segura. Los nombres de los archivos de la clave tienen el prefijo del nombre de tu proyecto de Google Cloud.
ls $HYBRID_FILES/service-accounts
El resultado debería ser similar a lo siguiente:
project_id-apigee-non-prod.json
- Para obtener más información sobre
create-service-account
y todas sus opciones, consultacreate-service-account
- Para obtener información sobre los conceptos relacionados de Google Cloud, consulta Crea y administra cuentas de servicio y Crea y administra claves de cuentas de servicio.
Crea cuentas de servicio en la consola de Google Cloud o con gcloud
Si planeas usar Workload Identity en GKE para autenticar los componentes del entorno de ejecución híbrido, no necesitas crear y descargar archivos de certificado para las cuentas de servicio. Por lo tanto, no uses la herramienta de create-service-account
. En su lugar, crea las cuentas de servicio en la consola de Google Cloud o con la API de IAM en gcloud
.
De lo contrario, ve a Crea cuentas de servicio mediante create-service-account
.
Consola
Sigue las instrucciones que se encuentran en Crea cuentas de servicio para crear las siguientes cuentas de servicio y asignarles los siguientes roles:
No producción
Para instalaciones que no son de producción:
Nombre de la cuenta de servicio | Roles de IAM |
---|---|
apigee-non-prod |
|
Producción
Para instalaciones de producción:
Instalaciones de producción | |
---|---|
Nombre de la cuenta de servicio | Roles de IAM |
apigee-cassandra |
Administrador de objetos de Storage |
apigee-logger |
Escritor de registros |
apigee-mart |
Agente de Apigee Connect |
apigee-metrics |
Escritor de métricas de Monitoring |
apigee-runtime |
No se requiere una función |
apigee-synchronizer |
Administrador de Apigee Synchronizer |
apigee-udca |
Agente de Apigee Analytics |
apigee-watcher |
Agente del entorno de ejecución de Apigee |
gcloud
Usa los siguientes comandos para crear las cuentas de servicio y asignar los roles de IAM.
No producción
Para instalaciones que no son de producción:
- Crea la cuenta de servicio
apigee-non-prod
:gcloud iam service-accounts create apigee-non-prod \ --display-name="apigee-non-prod" \ --project=$PROJECT_ID
- Otorga roles de IAM a la cuenta de servicio:
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-non-prod@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/storage.objectAdmin"
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-non-prod@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/logging.logWriter"
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-non-prod@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/apigeeconnect.Agent"
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-non-prod@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/monitoring.metricWriter"
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-non-prod@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/apigee.synchronizerManager"
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-non-prod@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/apigee.analyticsAgent"
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-non-prod@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/apigee.runtimeAgent"
- Verifica las vinculaciones de roles:
gcloud projects get-iam-policy ${PROJECT_ID} \ --flatten="bindings[].members" \ --format='table(bindings.role)' \ --filter="bindings.members:apigee-non-prod@$PROJECT_ID.iam.gserviceaccount.com"
Producción
Para instalaciones de producción:
Usa los siguientes comandos para crear cada cuenta de servicio y asignarle la función de IAM correspondiente.
- Cuenta de servicio
apigee-cassandra
:gcloud iam service-accounts create apigee-cassandra \ --display-name="apigee-cassandra" \ --project=$PROJECT_ID
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-cassandra@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/storage.objectAdmin"
- Cuenta de servicio
apigee-logger
:gcloud iam service-accounts create apigee-logger \ --display-name="apigee-logger" \ --project=$PROJECT_ID
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-logger@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/logging.logWriter"
- Cuenta de servicio
apigee-mart
:gcloud iam service-accounts create apigee-mart \ --display-name="apigee-mart" \ --project=$PROJECT_ID
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-mart@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/apigeeconnect.Agent"
- Cuenta de servicio
apigee-metrics
:gcloud iam service-accounts create apigee-metrics \ --display-name="apigee-metrics" \ --project=$PROJECT_ID
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-metrics@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/monitoring.metricWriter"
- Cuenta de servicio
apigee-runtime
:gcloud iam service-accounts create apigee-runtime \ --display-name="apigee-runtime" \ --project=$PROJECT_ID
- Cuenta de servicio
apigee-synchronizer
:gcloud iam service-accounts create apigee-synchronizer \ --display-name="apigee-synchronizer" \ --project=$PROJECT_ID
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-synchronizer@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/apigee.synchronizerManager"
- Cuenta de servicio
apigee-udca
:gcloud iam service-accounts create apigee-udca \ --display-name="apigee-udca" \ --project=$PROJECT_ID
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-udca@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/apigee.analyticsAgent"
- Cuenta de servicio
apigee-watcher
:gcloud iam service-accounts create apigee-watcher \ --display-name="apigee-watcher" \ --project=$PROJECT_ID
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-watcher@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/apigee.runtimeAgent"
Para obtener más información sobre cómo crear cuentas de servicio con gcloud
, consulta Crea cuentas de servicio.
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.
Próximo paso
1 2 3 4 (SIGUIENTE) Paso 5: Crea certificados TLS 6 7 8 9 10 11