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, 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 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 tres métodos de autenticación de cuentas de servicio de Google:
Workload Identity en AKS, EKS o GKE
Para las instalaciones híbridas de Apigee en GKE, Google Cloud ofrece una opción llamada Workload Identity 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. Consulta Habilita Workload Identity en GKE o Habilita la federación de identidades para cargas de trabajo en AKS y EKS
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-runtime |
No se requiere una función | apigee-env |
apigee-synchronizer |
Administrador de Apigee Synchronizer | apigee-env |
apigee-udca |
Agente de Apigee Analytics | 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
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
- Copia el archivo JSON
apigee-udca
en el directorio del chartapigee-env
. Es necesaria para las operaciones con alcance de organización y de 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 PROJECT_ID-apigee-cassandra.json templates values.yamlls ./apigee-telemetry
Chart.yaml PROJECT_ID-apigee-logger.json PROJECT_ID-apigee-metrics.json templates values.yamlls ./apigee-org
Chart.yaml PROJECT_ID-apigee-udca.json templates PROJECT_ID-apigee-mart.json PROJECT_ID-apigee-watcher.json values.yamlls ./apigee-env
Chart.yaml PROJECT_ID-apigee-runtime.json PROJECT_ID-apigee-synchronizer.json my_project_id-apigee-udca.json templates 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/
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 los roles 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.