Paso 4: Crear cuentas de servicio

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.

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

  1. 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 thePROJECT_ID environment variable . Si no está definida, defínela con el ID de tu proyecto de Google Cloud o agrega la marca --project-id PROJECT_ID a los comandos create-service-account.

  2. 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 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. Copia el archivo JSON apigee-udca en el directorio del chart apigee-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/
  4. 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.yaml
    
    ls ./apigee-telemetry
    Chart.yaml  PROJECT_ID-apigee-logger.json  PROJECT_ID-apigee-metrics.json  templates  values.yaml
    
    ls ./apigee-org
    Chart.yaml                      PROJECT_ID-apigee-udca.json     templates
    PROJECT_ID-apigee-mart.json  PROJECT_ID-apigee-watcher.json  values.yaml
    
    ls ./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

  1. 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 thePROJECT_ID environment variable . Si no está definida, defínela con el ID de tu proyecto de Google Cloud o agrega la marca --project-id PROJECT_ID a los comandos create-service-account.

  2. 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 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 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
  4. 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.json $APIGEE_HELM_CHARTS_HOME/apigee-telemetry/
    cp $APIGEE_HELM_CHARTS_HOME/apigee-datastore/SA_FILE_NAME.json $APIGEE_HELM_CHARTS_HOME/apigee-org/
    cp $APIGEE_HELM_CHARTS_HOME/apigee-datastore/SA_FILE_NAME.json $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.

Próximo paso

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