Paso 4: Crea cuentas de servicio

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.

Entornos de producción y de no producción

En esta guía se hace referencia a las instalaciones de producción ("Prod") y no de producción ("Non-prod"). Una instalación de producción se ajusta para ofrecer una mayor capacidad de uso, almacenamiento y escalabilidad. Una instalación de no 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, los tiempos de ejecución, los mercados, las métricas y las UDCA, entre otros, tienen su propia cuenta de servicio.

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 tres métodos para autenticar cuentas de servicio de Google:

Workload Identity en AKS, EKS o GKE

En las instalaciones de Apigee Hybrid en GKE, Google Cloud ofrece una opción llamada Workload Identity para autenticar los componentes del tiempo de ejecución de Hybrid. Esta opción no usa archivos de certificado descargados para autenticar las cuentas de servicio. En su lugar, asocia las cuentas de servicio de Google Cloud que creas en este paso con las cuentas de servicio de Kubernetes del clúster de Kubernetes. Consulta Habilitar Workload Identity en GKE o Habilitar la federación de identidades de cargas de trabajo en AKS y EKS.

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-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 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 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

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

  1. Comprueba que se ha definido la variable de entorno PROJECT_ID.
    echo $PROJECT_ID

    El create-service-account tool uses the value of thePROJECT_ID environment variable . Si no está definido, defínelo con el ID de tu proyecto de Google Cloud o añade la marca --project-id my_project_id a los comandos create-service-account.

  2. 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 con y.
    $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
  3. Comprueba que los archivos de cuenta de servicio se hayan 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_id-apigee-cassandra.json  templates  values.yaml
    
    ls ./apigee-telemetry
    Chart.yaml  my_project_id-apigee-logger.json  my_project_id-apigee-metrics.json  templates  values.yaml
    
    ls ./apigee-org
    Chart.yaml                      my_project_id-apigee-udca.json     templates
    my_project_id-apigee-mart.json  my_project_id-apigee-watcher.json  values.yaml
    
    ls ./apigee-env
    Chart.yaml  my_project_id-apigee-runtime.json  my_project_id-apigee-synchronizer.json my_project_id-apigee-udca.json templates  values.yaml
    

No producción

  1. Comprueba que se ha definido la variable de entorno PROJECT_ID.
    echo $PROJECT_ID

    El create-service-account tool uses the value of thePROJECT_ID environment variable . Si no está definido, defínelo con el ID de tu proyecto de Google Cloud o añade la marca --project-id my_project_id a los comandos create-service-account.

  2. 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 con y.
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --env non-prod \
      --dir $APIGEE_HELM_CHARTS_HOME/apigee-datastore
  3. Verifica el nombre del archivo de cuenta de servicio creado en el directorio apigee-datastore:
    ls $APIGEE_HELM_CHARTS_HOME/apigee-datastore
    Chart.yaml  my_project_id-apigee-non-prod.json  templates  values.yaml
  4. Copia el archivo de la 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/

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.

Paso siguiente

1 2 3 4 (SIGUIENTE) Paso 5: Crea certificados TLS 6 7 8 9 10 11 12