Paso 7: Habilita el acceso al plano de control

Para que el plano de ejecución y el plano de control se comuniquen, debes habilitar los permisos necesarios para el acceso del publicador de estadísticas y del sincronizador con la API de updateControlPlaneAccess.

Obtén un token de autorización

Para realizar las llamadas a la API de Apigee que se describen más adelante en este tema, debes obtener un token de autorización que tenga la función de administrador de la organización de Apigee.

  1. Si no eres el propietario del proyecto de Google Cloud asociado a tu organización híbrida de Apigee, asegúrate de que tu cuenta de usuario de GCP tenga la función roles/apigee.admin (Administrador de la organización de Apigee). Puedes verificar las funciones que se te asignaron con este comando:
    gcloud projects get-iam-policy ${PROJECT_ID}  \
      --flatten="bindings[].members" \
      --format='table(bindings.role)' \
      --filter="bindings.members:your_account_email"
    

    Por ejemplo:

    gcloud projects get-iam-policy my-project  \
      --flatten="bindings[].members" \
      --format='table(bindings.role)' \
      --filter="bindings.members:myusername@example.com"

    El resultado debe incluir roles/apigee.admin.

  2. Si no tienes roles/apigee.admin, agrega el rol administrador de la organización de Apigee a tu cuenta de usuario. Usa el siguiente comando para agregar el rol a tu cuenta de usuario:
    gcloud projects add-iam-policy-binding ${PROJECT_ID} \
      --member user:your_account_email \
      --role roles/apigee.admin

    Por ejemplo:

    gcloud projects add-iam-policy-binding my-project \
      --member user:myusername@example.com \
      --role roles/apigee.admin
  3. En la línea de comandos, obtén tus credenciales de autenticación de gcloud con el siguiente comando:

    Linux/MacOS

    export TOKEN=$(gcloud auth print-access-token)

    Para verificar que tu token se haya propagado, usa echo, como se muestra en el siguiente ejemplo:

    echo $TOKEN

    Se debería mostrar tu token como una string codificada.

    Windows

    for /f "tokens=*" %a in ('gcloud auth print-access-token') do set TOKEN=%a

    Para verificar que tu token se haya propagado, usa echo, como se muestra en el siguiente ejemplo:

    echo %TOKEN%

    Se debería mostrar tu token como una string codificada.

Habilita el acceso del sincronizador

Para habilitar el acceso del sincronizador, haz lo siguiente:

  1. Obtenga la dirección de correo electrónico de la cuenta de servicio a la que le otorga acceso de sincronizador. Para entornos que no son de producción (como se sugiere en este instructivo), debe ser apigee-non-prod. Para los entornos de producción, debe ser apigee-synchronizer. Usa el siguiente comando:
    gcloud iam service-accounts list --project ${PROJECT_ID} --filter "apigee-synchronizer"
  2. Llama a la API de updateControlPlaneAccess para habilitar los permisos requeridos de Synchronizer con el siguiente comando:

    Sin residencia de datos

    curl -X PATCH -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type:application/json" \
      "https://apigee.googleapis.com/v1/organizations/${ORG_NAME}/controlPlaneAccess?update_mask=synchronizer_identities" \
      -d "{\"synchronizer_identities\": [\"serviceAccount:apigee-synchronizer@${ORG_NAME}.iam.gserviceaccount.com\"]}"
    

    Aquí:

    • ${ORG_NAME}: Es el nombre de tu organización híbrida.
    • apigee-synchronizer${ORG_NAME}.iam.gserviceaccount.com: Es la dirección de correo electrónico de la cuenta de servicio.

    Residencia de los datos

    curl -X PATCH -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type:application/json" \
      "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/${ORG_NAME}/controlPlaneAccess?update_mask=synchronizer_identities" \
      -d "{\"synchronizer_identities\": [\"serviceAccount:apigee-synchronizer@${ORG_NAME}.iam.gserviceaccount.com\"]}"
    

    Aquí:

    • CONTROL_PLANE_LOCATION: La ubicación de los datos del plano de control si la instalación híbrida usa la residencia de datos. Esta es la ubicación donde se almacena el contenido principal del cliente, como los paquetes de proxy. Para obtener una lista, consulta Regiones del plano de control de la API de Apigee disponibles
    • ${ORG_NAME}: El nombre de tu organización híbrida
    • apigee-synchronizer@${ORG_NAME}.iam.gserviceaccount.com: La dirección de correo electrónico de la cuenta de servicio
  3. Para verificar que se haya configurado la cuenta de servicio, usa el siguiente comando para llamar a la API y obtener una lista de cuentas de servicio:

    Sin residencia de datos

    curl -X GET -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type:application/json" \
      "https://apigee.googleapis.com/v1/organizations/${ORG_NAME}/controlPlaneAccess"
        

    Residencia de los datos

    curl -X GET -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type:application/json" \
      "https://CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/${ORG_NAME}/controlPlaneAccess"
        

    El resultado debería ser similar al siguiente:

    {
      "synchronizerIdentities": [
        "serviceAccount:apigee-synchronizer@YOUR_ORG_NAME.iam.gserviceaccount.com"
      ]
    }

Habilita el acceso del publicador de estadísticas

Varios componentes del entorno de ejecución híbrido de Apigee publican registros de estadísticas y depuración para proporcionar información para la generación de informes y la depuración. Para habilitar la publicación de estos datos, debes otorgar permisos adicionales a las cuentas de servicio que ejecutan estos componentes de Apigee para publicar datos directamente en el plano de control.

Para habilitar el acceso del publicador a las estadísticas, sigue estos pasos:

  1. Establece permisos para que la cuenta de servicio del entorno de ejecución publique datos en el plano de control con el siguiente comando:

    Sin residencia de datos

    curl -X  PATCH -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type:application/json" \
      "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess?update_mask=analytics_publisher_identities" \
      -d "{\"analytics_publisher_identities\": [\"serviceAccount:apigee-runtime@$ORG_NAME.iam.gserviceaccount.com\"]}"

    Residencia de los datos

    curl -X  PATCH -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type:application/json" \
      "https://CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess?update_mask=analytics_publisher_identities" \
      -d "{\"analytics_publisher_identities\": [\"serviceAccount:apigee-runtime@$ORG_NAME.iam.gserviceaccount.com\"]}"

    La respuesta debería ser similar a la siguiente:

    {
      "name": "organizations/YOUR_ORG_NAME/operations/8316aa78-c137-4733-92ec-cc0d2d92fd29",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.apigee.v1.OperationMetadata",
        "operationType": "UPDATE",
        "targetResourceName": "organizations/YOUR_ORG_NAME/controlPlaneAccess",
        "state": "IN_PROGRESS"
      }
    }
    
  2. Verifica el estado de la operación con el parámetro de nombre de la respuesta de actualización:

    Sin residencia de datos

    curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)"  \
      -H "Content-Type:application/json"  \
      "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/operations/8316aa78-c137-4733-92ec-cc0d2d92fd29"

    Residencia de los datos

    curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)"  \
      -H "Content-Type:application/json"  \
      "https://CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$ORG_NAME/operations/8316aa78-c137-4733-92ec-cc0d2d92fd29"

    La respuesta debería ser como la siguiente:

    {
      "name": "organizations/YOUR_ORG_NAME/operations/8316aa78-c137-4733-92ec-cc0d2d92fd29",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.apigee.v1.OperationMetadata",
        "operationType": "UPDATE",
        "targetResourceName": "organizations/YOUR_ORG_NAME/controlPlaneAccess",
        "state": "FINISHED"
      },
      "done": true,
      "response": {
        "@type": "type.googleapis.com/google.cloud.apigee.v1.ControlPlaneAccess",
        "name": "organizations/YOUR_ORG_NAME/controlPlaneAccess"
      }
    }
    
  3. Verifica la configuración de ControlPlaneAccess de la organización:

    Sin residencia de datos

    curl "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess" \
    -H "Authorization: Bearer $(gcloud auth print-access-token)"

    Residencia de los datos

    curl "https://CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess" \
    -H "Authorization: Bearer $(gcloud auth print-access-token)"

    La respuesta debería ser como la siguiente:

    {
      "synchronizerIdentities": [
        "serviceAccount:apigee-synchronizer@YOUR_ORG_NAME.iam.gserviceaccount.com"
      ],
      "analyticsPublisherIdentities": [
        "serviceAccount:apigee-runtime@YOUR_ORG_NAME.iam.gserviceaccount.com"
      ]
    }
    

Ya habilitaste el plano de ejecución y los de administración de Apigee Hybrid para comunicarse. A continuación, instala cert-manager para permitir que Apigee Hybrid interprete y administre certificados.

Próximo paso

1 2 3 4 5 6 7 (SIGUIENTE) Paso 8: Instala cert-manager 9 10 11