Etapa 8: ativar o acesso ao plano de controle

Para que o plano de ambiente de execução e o plano de controle se comuniquem, ative as permissões necessárias para o acesso do sincronizador e do editor de análises com a API updateControlPlaneAccess.

Receber um token de autorização

Para fazer as chamadas de API da Apigee descritas anteriormente neste tópico, é necessário ter um token de autorização que tenha o papel de administrador da organização da Apigee.

  1. Se você não for o proprietário do projeto do Google Cloud associado à organização da Apigee híbrida, verifique se sua conta de usuário do Google Cloud tem o papel roles/apigee.admin (Administrador da organização da Apigee). Verifique os papéis atribuídos a você com este comando:
    gcloud projects get-iam-policy ${PROJECT_ID}  \
      --flatten="bindings[].members" \
      --format='table(bindings.role)' \
      --filter="bindings.members:your_account_email"
    

    Exemplo:

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

    A saída deve incluir roles/apigee.admin.

  2. Se você não tiver roles/apigee.admin, adicione o papel de Administrador de organização da Apigee à sua conta de usuário. Use o seguinte comando para adicionar o papel à sua conta de usuário:
    gcloud projects add-iam-policy-binding ${PROJECT_ID} \
      --member user:your_account_email \
      --role roles/apigee.admin

    Exemplo:

    gcloud projects add-iam-policy-binding my-project \
      --member user:myusername@example.com \
      --role roles/apigee.admin
  3. Na linha de comando, receba as credenciais de autenticação de gcloud usando o comando a seguir:

    Linux / MacOS

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

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

    echo $TOKEN

    Isso exibirá 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 a seguir:

    echo %TOKEN%

    Isso exibirá seu token como uma string codificada.

Ativar acesso do sincronizador

Para ativar o acesso do sincronizador:

  1. Encontre o endereço de e-mail da conta de serviço à qual você está concedendo acesso de sincronia. Para ambientes de produção, ele precisa ser apigee-synchronizer. Para ambientes que não são de produção, ele precisa ser apigee-non-prod. Use o comando a seguir:

    Produção

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

    Não produção

    gcloud iam service-accounts list --project ${PROJECT_ID} --filter "apigee-non-prod"
  2. Chame a API updateControlPlaneAccess para ativar as permissões necessárias para o Sincronizador usando o 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\"]}"
    

    Em que:

    • ${ORG_NAME}: o nome da organização híbrida.
    • apigee-synchronizer@${ORG_NAME}.iam.gserviceaccount.com: o endereço de e-mail 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\"]}"
    

    Em que:

    • CONTROL_PLANE_LOCATION: o local dos dados do plano de controle caso a instalação híbrida use residência de dados. Esse é o local onde o conteúdo principal do cliente, como pacotes de proxy, é armazenado. Para uma lista, consulte Regiões disponíveis do plano de controle da API Apigee.
    • ${ORG_NAME}: o nome da organização híbrida.
    • apigee-synchronizer@${ORG_NAME}.iam.gserviceaccount.com: o endereço de e-mail da conta de serviço.
  3. Para verificar se a conta de serviço foi definida, use o seguinte comando para chamar a API a fim de conseguir 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"
        

    A saída será parecida com esta:

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

Ativar o acesso do publisher ao Google Analytics

Vários componentes do ambiente de execução híbrido da Apigee publicam registros de análise e depuração para fornecer informações para relatórios e depuração. Para ativar a publicação desses dados, conceda permissões adicionais às contas de serviço que executam esses componentes do Apigee para publicar dados diretamente no plano de controle.

Para ativar o acesso de editor do Google Analytics:

  1. Encontre o endereço de e-mail das contas de serviço a que você está concedendo acesso de editor do Google Analytics. Para ambientes de produção, eles precisam ser apigee-runtime, apigee-mart e apigee-mint-task-scheduler (se você estiver ativando a monetização para o Apigee híbrido). Para ambientes que não são de produção, ele precisa ser apigee-non-prod.

    Produção

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

    Não produção

    gcloud iam service-accounts list --project ${PROJECT_ID} --filter "apigee-non-prod"
  2. Defina permissões para as contas de serviço dos componentes de ambiente de execução, MART e programador de tarefas do mint (se você estiver ativando a Monetização para o híbrido da Apigee na v1.15.1 e versões mais recentes) para publicar dados no plano de controle com o seguinte comando:

    Sem residência de dados

    Chame a API updateControlPlaneAccess para ativar as permissões das contas de serviço do ambiente de execução e do 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 você estiver ativando a monetização para a Apigee híbrida, defina as permissões da conta de serviço do programador 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 e-mail 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 permissões das contas de serviço do ambiente de execução e do 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 você estiver ativando a monetização para a Apigee híbrida, defina as permissões da conta de serviço do programador 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\"]}"
    

    Em que:

    • CONTROL_PLANE_LOCATION é o local dos dados do plano de controle caso a instalação híbrida use residência de dados. Esse é o local onde o conteúdo principal do cliente, como pacotes de proxy, é armazenado. Para uma lista, consulte Regiões disponíveis do plano de controle da API Apigee.
    • Estes são os endereços de e-mail 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 será semelhante a esta:

    {
      "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. Verifique o estado da operação usando o identificador no campo name da resposta de atualização:

    Sem residência de dados

    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"

    Residência dos dados

    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"

    Ela será parecida com o exemplo a seguir:

    {
      "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. Verifique 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 $(gcloud auth print-access-token)"

    Residência dos dados

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

    Ela será parecida com o exemplo a seguir:

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

Você ativou a comunicação entre o ambiente de execução da Apigee híbrida e os planos de gerenciamento. Em seguida, instale o cert-manager para permitir que a Apigee híbrida interprete e gerencie certificados.

Próxima etapa

1 2 3 4 5 6 7 8 (PRÓXIMA) Etapa 9: instalar o cert-manager 10 11