Passo 7: ative o acesso ao plano de controlo

Para que o plano de tempo de execução e o plano de controlo comuniquem, tem de ativar as autorizações necessárias para o acesso do publicador de sincronização e de estatísticas com a API updateControlPlaneAccess.

Obtenha um token de autorização

Para fazer as chamadas API Apigee descritas mais adiante neste tópico, tem de obter um token de autorização que tenha a função de administrador da organização do Apigee.

  1. Se não for o proprietário do projeto do Google Cloud associado à sua organização do Apigee hybrid, certifique-se de que a sua conta de utilizador do Google Cloud tem a função roles/apigee.admin (administrador da organização do Apigee). Pode verificar as funções que lhe foram atribuídas com este comando:
    gcloud projects get-iam-policy $PROJECT_ID  \
      --flatten="bindings[].members" \
      --format='table(bindings.role)' \
      --filter="bindings.members:your_account_email"
    

    Por exemplo:

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

    O resultado deve incluir roles/apigee.admin.

  2. Se não tiver roles/apigee.admin, adicione a função Apigee Organization Admin à sua conta de utilizador. Use o seguinte comando para adicionar a função à sua conta de utilizador:
    gcloud projects add-iam-policy-binding $PROJECT_ID \
      --member user:your_account_email \
      --role roles/apigee.admin

    Por exemplo:

    gcloud projects add-iam-policy-binding my-project \
      --member user:myusername@example.com \
      --role roles/apigee.admin
  3. Na linha de comando, obtenha as suas credenciais de gcloudautenticação através do seguinte comando:

    Linux / MacOS

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

    Para verificar se o token foi preenchido, use echo, como mostra o exemplo seguinte:

    echo $TOKEN

    Esta ação deve apresentar o seu token como uma string codificada.

    Windows

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

    Para verificar se o token foi preenchido, use echo, como mostra o exemplo seguinte:

    echo %TOKEN%

    Esta ação deve apresentar o seu token como uma string codificada.

Ative o acesso do sincronizador

Para ativar o acesso do sincronizador:

  1. Obtenha o endereço de email da conta de serviço à qual está a conceder acesso de sincronizador. Para ambientes de não produção (conforme sugerido neste tutorial), deve ser apigee-non-prod. Para ambientes de produção, deve ser apigee-synchronizer. Use o seguinte comando:
    gcloud iam service-accounts list --project $PROJECT_ID --filter "apigee-synchronizer"
  2. Chame a API updateControlPlaneAccess para ativar as autorizações necessárias para o sincronizador através do seguinte comando:

    Sem residência de dados

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

    Onde:

    • $ORG_NAME: o nome da sua organização híbrida.
    • apigee-synchronizer@$ORG_NAME.iam.gserviceaccount.com: o endereço de email da conta de serviço.

    Residência dos dados

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

    Onde:

    • CONTROL_PLANE_LOCATION: a localização dos dados do plano de controlo se a sua instalação híbrida usar a residência de dados. Esta é a localização onde o conteúdo principal do cliente, como pacotes de proxy, é armazenado. Para ver uma lista, consulte o artigo Regiões do plano de controlo da API Apigee disponíveis.
    • $ORG_NAME: o nome da sua organização híbrida.
    • apigee-synchronizer@$ORG_NAME.iam.gserviceaccount.com: o endereço de email da conta de serviço.
  3. Para verificar se a conta de serviço foi definida, use o seguinte comando para chamar a API para obter uma lista de contas de serviço:

    Sem residência de dados

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

    Residência dos dados

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

    O resultado deve ser semelhante ao seguinte:

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

Ative o acesso de publicador do Analytics

Vários componentes de tempo de execução híbrido do Apigee publicam registos de estatísticas e depuração para fornecer informações para relatórios e depuração. Para ativar a publicação destes dados, tem de conceder autorizações adicionais às contas de serviço que executam estes componentes do Apigee para publicar dados diretamente no plano de controlo.

Para ativar o acesso de publicadores às estatísticas:

  1. Obtenha o endereço de email da conta de serviço à qual está a conceder acesso de publicador do Analytics. Para ambientes de não produção (conforme sugerido neste tutorial), deve ser apigee-non-prod. Para ambientes de produção, deve ser apigee-runtime.
  2. Defina autorizações para as contas de serviço dos componentes de tempo de execução, MART e agendador de tarefas de emissão (se estiver a ativar a rentabilização para o Apigee hybrid na versão v1.14.3 e posterior) para publicar dados no plano de controlo com o seguinte comando:

    Sem residência de dados

    Chame a API updateControlPlaneAccess para ativar as autorizações para as contas de serviço de tempo de execução 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 estiver a ativar a rentabilização para o Apigee hybrid, defina as autorizações para a conta de serviço do agendador de tarefas do 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\"]}"
    

    Em que os seguintes são os endereços de email das contas de serviço:

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

    Residência dos dados

    Chame a API updateControlPlaneAccess para ativar as autorizações para as contas de serviço de tempo de execução 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 estiver a ativar a rentabilização para o Apigee hybrid, defina as autorizações para a conta de serviço do agendador de tarefas do 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\"]}"
    

    Onde:

    • CONTROL_PLANE_LOCATION é a localização dos dados do plano de controlo se a sua instalação híbrida usar a residência de dados. Esta é a localização onde o conteúdo principal do cliente, como pacotes de proxy, é armazenado. Para ver uma lista, consulte o artigo Regiões do plano de controlo da API Apigee disponíveis.
    • Seguem-se os endereços de email das contas de serviço:

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

    A resposta deve ser semelhante à seguinte:

    {
      "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": "IN_PROGRESS"
      }
    }
    

    Em que: OPERATION_ID é o UUID da operação, por exemplo, 8316aa78-c137-4733-92ec-cc0d2d92fd29.

  3. Guarde o ID da operação numa variável de ambiente para usar na verificação do estado da operação.

    Sintaxe

    export OPERATION_ID=OPERATION_ID

    Exemplo

    export OPERATION_ID=8316aa78-c137-4733-92ec-cc0d2d92fd29
  4. Valide o estado da operação através do identificador no campo name da resposta de atualização:

    Sem residência de dados

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

    Residência dos dados

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

    A resposta deve ter o seguinte aspeto:

    {
      "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"
      }
    }
    
  5. Valide a configuração de ControlPlaneAccess da organização:

    Sem residência de dados

    curl "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess" \
    -H "Authorization: Bearer $TOKEN"

    Residência dos dados

    curl "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess" \
    -H "Authorization: Bearer $TOKEN"

    A resposta deve ter o seguinte aspeto:

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

Ativou os planos de gestão e de tempo de execução do Apigee Hybrid para comunicarem. Em seguida, instale o cert-manager para permitir que o Apigee hybrid interprete e faça a gestão dos certificados.

Passo seguinte

1 2 3 4 5 6 7 (NEXT) Passo 8: instale o cert-manager 9 10 11