Passaggio 8: abilita l'accesso al control plane

Affinché il piano di runtime e il piano di controllo possano comunicare, devi abilitare le autorizzazioni richieste per l'accesso al sincronizzatore e al publisher di dati e analisi con l'API updateControlPlaneAccess.

Recuperare un token di autorizzazione

Per effettuare le chiamate API Apigee descritte più avanti in questo argomento, devi recuperare un token di autorizzazione con il ruolo Amministratore organizzazione Apigee.

  1. Se non sei il proprietario del progetto Google Cloud associato alla tua organizzazione Apigee hybrid, assicurati che il tuo account utente Google Cloud abbia il ruolo roles/apigee.admin (Amministratore organizzazione Apigee ). Puoi controllare i ruoli assegnati con questo comando:
    gcloud projects get-iam-policy ${PROJECT_ID}  \
      --flatten="bindings[].members" \
      --format='table(bindings.role)' \
      --filter="bindings.members:your_account_email"
    

    Ad esempio:

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

    L'output dovrebbe includere roles/apigee.admin.

  2. Se non hai roles/apigee.admin, aggiungi il ruolo Amministratore organizzazione Apigee al tuo account utente. Utilizza il seguente comando per aggiungere il ruolo al tuo account utente:
    gcloud projects add-iam-policy-binding ${PROJECT_ID} \
      --member user:your_account_email \
      --role roles/apigee.admin

    Ad esempio:

    gcloud projects add-iam-policy-binding my-project \
      --member user:myusername@example.com \
      --role roles/apigee.admin
  3. Nella riga di comando, recupera le credenziali di autenticazione gcloud utilizzando il seguente comando:

    Linux / macOS

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

    Per verificare che il token sia stato compilato, utilizza echo, come mostrato nell'esempio seguente:

    echo $TOKEN

    Il token dovrebbe essere visualizzato come una stringa codificata.

    Windows

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

    Per verificare che il token sia stato compilato, utilizza echo, come mostrato nell'esempio seguente:

    echo %TOKEN%

    Il token dovrebbe essere visualizzato come una stringa codificata.

Abilitare l'accesso al sincronizzatore

Per abilitare l'accesso al sincronizzatore:

  1. Recupera l'indirizzo email del account di servizio a cui stai concedendo l'accesso al sincronizzatore. Per gli ambienti di produzione, deve essere apigee-synchronizer. Per gli ambienti non di produzione, deve essere apigee-non-prod. Utilizza il seguente comando:

    Produzione

    gcloud iam service-accounts list --project ${PROJECT_ID} --filter "apigee-synchronizer"

    Non di produzione

    gcloud iam service-accounts list --project ${PROJECT_ID} --filter "apigee-non-prod"
  2. Chiama l' updateControlPlaneAccess API per abilitare le autorizzazioni richieste per il sincronizzatore utilizzando il seguente comando:

    Nessuna residenza dei dati

    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\"]}"
    

    Dove:

    • ${ORG_NAME}: il nome della tua organizzazione hybrid.
    • apigee-synchronizer@${ORG_NAME}.iam.gserviceaccount.com: l'indirizzo email del account di servizio.

    Residenza dei dati

    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\"]}"
    

    Dove:

    • CONTROL_PLANE_LOCATION: la località dei dati del control plane se l'installazione ibrida utilizza la residenza dei dati. Questa è la località in cui sono archiviati i contenuti principali dei clienti, come i bundle di proxy. Per un elenco, consulta Regioni del piano di controllo dell'API Apigee disponibili.
    • ${ORG_NAME}: il nome della tua organizzazione hybrid.
    • apigee-synchronizer@${ORG_NAME}.iam.gserviceaccount.com: l'indirizzo email del account di servizio.
  3. Per verificare che il account di servizio sia stato impostato, utilizza il seguente comando per chiamare l'API per ottenere un elenco di service account:

    Nessuna residenza dei dati

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

    Residenza dei dati

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

    L'output dovrebbe essere simile al seguente:

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

Abilitare l'accesso al publisher di dati e analisi

Diversi componenti del runtime Apigee hybrid pubblicano record di dati e analisi e di debug per fornire informazioni per la generazione di report e il debug. Per abilitare la pubblicazione di questi dati, devi concedere autorizzazioni aggiuntive ai service account che eseguono questi componenti Apigee per pubblicare i dati direttamente nel piano di controllo.

Per abilitare l'accesso al publisher di dati e analisi:

  1. Recupera l'indirizzo email dei service account a cui stai concedendo l'accesso al publisher di dati e analisi. Per gli ambienti di produzione, devono essere apigee-runtime, apigee-mart e apigee-mint-task-scheduler (se stai abilitando la monetizzazione per Apigee hybrid). Per gli ambienti non di produzione, deve essere apigee-non-prod.

    Produzione

    gcloud iam service-accounts list --project ${PROJECT_ID} --filter "apigee-runtime OR apigee-mart OR apigee-mint-task-scheduler"

    Non di produzione

    gcloud iam service-accounts list --project ${PROJECT_ID} --filter "apigee-non-prod"
  2. Imposta le autorizzazioni per i service account per i componenti di runtime, MART e pianificatore di attività Mint (se stai abilitando la monetizzazione per Apigee hybrid su v1.15.1 e versioni successive) per pubblicare i dati nel piano di controllo con il seguente comando:

    Nessuna residenza dei dati

    Chiama l'API updateControlPlaneAccess per abilitare le autorizzazioni per i service account di runtime e MART:

    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-mart@$ORG_NAME.iam.gserviceaccount.com\",\"serviceAccount:apigee-runtime@$ORG_NAME.iam.gserviceaccount.com\"]}"
    

    Se stai abilitando la monetizzazione per Apigee hybrid, imposta le autorizzazioni per il account di servizio del pianificatore di attività Mint:

    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-mart@$ORG_NAME.iam.gserviceaccount.com\",\"serviceAccount:apigee-runtime@$ORG_NAME.iam.gserviceaccount.com\",\"serviceAccount:apigee-mint-task-scheduler@$ORG_NAME.iam.gserviceaccount.com\"]}"
    

    Dove i seguenti sono gli indirizzi email dei service account:

    • apigee-mart@${ORG_NAME}.iam.gserviceaccount.com
    • apigee-mint-task-scheduler@${ORG_NAME}.iam.gserviceaccount.com
    • apigee-runtime@${ORG_NAME}.iam.gserviceaccount.com

    Residenza dei dati

    Chiama l'API updateControlPlaneAccess per abilitare le autorizzazioni per i service account di runtime e MART:

    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-mart@$ORG_NAME.iam.gserviceaccount.com\",\"serviceAccount:apigee-runtime@$ORG_NAME.iam.gserviceaccount.com\"]}"
    

    Se stai abilitando la monetizzazione per Apigee hybrid, imposta le autorizzazioni per il account di servizio del pianificatore di attività Mint:

    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-mart@$ORG_NAME.iam.gserviceaccount.com\",\"serviceAccount:apigee-runtime@$ORG_NAME.iam.gserviceaccount.com\",\"serviceAccount:apigee-mint-task-scheduler@$ORG_NAME.iam.gserviceaccount.com\"]}"
    

    Dove:

    • CONTROL_PLANE_LOCATION è la località dei dati del piano di controllo se l'installazione hybrid utilizza la residenza dei dati. Questa è la località in cui sono archiviati i contenuti principali dei clienti, come i bundle di proxy. Per un elenco, consulta Regioni del piano di controllo dell'API Apigee disponibili.
    • Di seguito sono riportati gli indirizzi email dei service account:

      • apigee-mart@${ORG_NAME}.iam.gserviceaccount.com
      • apigee-mint-task-scheduler@${ORG_NAME}.iam.gserviceaccount.com
      • apigee-runtime@${ORG_NAME}.iam.gserviceaccount.com

    La risposta dovrebbe essere simile alla seguente:

    {
      "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"
      }
    }
    
  3. Verifica lo stato dell'operazione utilizzando l'identificatore nel campo name della risposta di aggiornamento:

    Nessuna residenza dei dati

    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/$OPERATION_ID"

    Residenza dei dati

    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/$OPERATION_ID"

    La risposta dovrebbe essere simile alla seguente:

    {
      "name": "organizations/YOUR_ORG_NAME/operations/$OPERATION_ID",
      "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"
      }
    }
    
  4. Verifica la configurazione ControlPlaneAccess dell'organizzazione:

    Nessuna residenza dei dati

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

    Residenza dei dati

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

    La risposta dovrebbe essere simile alla seguente:

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

Ora hai abilitato la comunicazione tra i piani di runtime e di gestione di Apigee hybrid. Poi, installa cert-manager per consentire ad Apigee hybrid di interpretare e gestire certificati.

Passaggio successivo

1 2 3 4 5 6 7 8 (NEXT) Step 9: Install cert-manager 10 11