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

  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 PROJECT_ID al comando 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 \
      --env prod \
      --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
  3. 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

  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 PROJECT_ID al comando create-service-account.

  2. 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 con y.
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --env non-prod \
      --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
  3. 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

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

    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
    
  3. Copia el archivo JSON de apigee-udca en el directorio de gráficos de apigee-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/
  4. 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.yaml
    
    ls ./apigee-telemetry
    Chart.yaml                     my-project-apigee-metrics.json  values.yaml
    my-project-apigee-logger.json  templates
    
    ls ./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.yaml
    
    ls ./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

  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 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  PROJECT_ID-apigee-non-prod.json  templates  values.yaml
  4. 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

  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 PROJECT_ID al comando 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 \
      --env prod \
      --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
  3. 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

  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 PROJECT_ID al comando create-service-account.

  2. 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 con y.
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --env non-prod \
      --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
  3. 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

  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 PROJECT_ID al comando 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 \
      --env prod \
      --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
  3. 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

  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 PROJECT_ID al comando create-service-account.

  2. 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 con y.
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --env non-prod \
      --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
  3. 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

  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 PROJECT_ID al comando 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 \
      --env prod \
      --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
  3. 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

  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 PROJECT_ID al comando create-service-account.

  2. 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 con y.
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --env non-prod \
      --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
  3. 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.

Paso siguiente

1 2 3 4 Paso 5: Configura la autenticación de la cuenta de servicio 6 7 8 9 10 11