Paso 4: Crea cuentas de servicio

En este paso se explica cómo crear las cuentas de servicio de Google Cloud que necesita Apigee hybrid para funcionar.

Información general

Apigee hybrid usa cuentas de servicio de Google Cloud para permitir que los componentes híbridos se comuniquen haciendo llamadas a las APIs autorizadas.

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, los tiempos de ejecución, los marts, las métricas y los 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.

Workload Identity en GKE

En las instalaciones híbridas de Apigee en GKE, Google Cloud ofrece una opción llamada Workload Identity para autenticar los componentes del tiempo de ejecución híbrido. 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.

Workload Identity solo está disponible en instalaciones de GKE.

Crear las cuentas de servicio

Sigue estos procedimientos para crear las cuentas de servicio de Google Cloud para tu instalación híbrida:

  • La herramienta create-service-account: si vas a instalar Apigee Hybrid en una plataforma que no sea GKE o si vas a instalarlo en GKE, pero no quieres usar la identidad de carga de trabajo, usa la herramienta create-service-account proporcionada por Apigee 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 con un solo comando. Sigue los procedimientos que se indican en
    Crear cuentas de servicio con create-service-account.
  • Google Cloud console o gcloud: si vas a instalar Apigee Hybrid en GKE y tienes previsto usar Workload Identity, usa Google Cloud console o gcloud para crear las cuentas de servicio sin descargar los archivos de certificado. Sigue los procedimientos que se indican en
    Crear cuentas de servicio en la Google Cloud console o con gcloud.

Crear cuentas de servicio con create-service-account

Usa la herramienta create-service-account en los siguientes casos:

  • Estás instalando en una plataforma que no es GKE
  • Vas a instalarlo en GKE, pero no tienes previsto usar Workload Identity.

Si no es así, ve a la sección Crear cuentas de servicio en la Google Cloud console o con gcloud.

  1. Comprueba que las variables de entorno HYBRID_FILES y PROJECT_ID estén definidas.

    PROJECT_ID debe tener el valor del ID de su proyecto de Google Cloud, ya que la herramienta 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
  2. Crea la cuenta de servicio con el siguiente comando:

    No producción

    Este comando crea una cuenta de servicio llamada apigee-non-prod para usarla en una instalación que no sea de producción y descarga el archivo de claves de 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

    Este comando crea todas las cuentas de servicio individuales para una instalación de producción y descarga los archivos de claves de las cuentas de servicio en el directorio $HYBRID_FILES/service-accounts.

    $HYBRID_FILES/tools/create-service-account --env prod --dir $HYBRID_FILES/service-accounts

    Si ves el siguiente mensaje, introduce 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 concreta, la herramienta la creará sin más peticiones.

    Sin embargo, si ves el siguiente mensaje y petición, introduce y para generar nuevas claves:

    [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.
  3. Verifica que la clave de 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 claves tienen como prefijo el nombre de tu proyecto de Google Cloud.
    ls $HYBRID_FILES/service-accounts

    El resultado debería ser similar al siguiente:

    project_id-apigee-non-prod.json

Crea cuentas de servicio en Google Cloud console o con gcloud.

Si tienes previsto usar Workload Identity en GKE para autenticar componentes de tiempo de ejecución híbrido, no es necesario que crees ni descargues archivos de certificado para las cuentas de servicio. Por lo tanto, no uses la herramienta create-service-account. En su lugar, crea las cuentas de servicio en Google Cloud console o con la API IAM en gcloud.

Si no es así, ve a la sección Crear cuentas de servicio con create-service-account.

Consola

Sigue las instrucciones que se indican en el artículo Crear cuentas de servicio para crear las siguientes cuentas de servicio y asignarles los siguientes roles:

No de producción

En instalaciones que no son de producción:

Nombre de la cuenta de servicio Roles de gestión de identidades y accesos
apigee-non-prod
  • Agente de Analytics de Apigee
  • Agente de conexión de Apigee
  • Agente de entorno de ejecución de Apigee
  • Administrador del sincronizador de Apigee
  • Escritor de registros
  • Escritor de las métricas de supervisión
  • Administrador de objetos de Storage

Producción

Para instalaciones de producción:

Instalaciones de producción
Nombre de la cuenta de servicio Roles de gestión de identidades y accesos
apigee-cassandra Administrador de objetos de Storage
apigee-logger Escritor de registros
apigee-mart Agente de conexión de Apigee
apigee-metrics Escritor de las métricas de supervisión
apigee-runtime No se requiere ningún rol
apigee-synchronizer Administrador del sincronizador de Apigee
apigee-udca Agente de Analytics de Apigee
apigee-watcher Agente de entorno de ejecución de Apigee

gcloud

Usa los siguientes comandos para crear las cuentas de servicio y asignar los roles de gestión de identidades y accesos.

No de producción

En instalaciones que no son de producción:

  1. Crea la apigee-non-prodcuenta de servicio:
    gcloud iam service-accounts create apigee-non-prod \
      --display-name="apigee-non-prod" \
      --project=$PROJECT_ID
  2. Asigna los roles de gestión de identidades y accesos 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"
  3. 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 el rol de gestión de identidades y accesos correspondiente.

  1. apigee-cassandra cuenta de servicio:
    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"
  2. apigee-logger cuenta de servicio:
    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"
  3. apigee-mart cuenta de servicio:
    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"
  4. apigee-metrics cuenta de servicio:
    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"
  5. apigee-runtime cuenta de servicio:
    gcloud iam service-accounts create apigee-runtime \
      --display-name="apigee-runtime" \
      --project=$PROJECT_ID
  6. apigee-synchronizer cuenta de servicio:
    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"
  7. apigee-udca cuenta de servicio:
    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"
  8. apigee-watcher cuenta de servicio:
    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 el artículo Crear cuentas de servicio.

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.

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