Etapa 7: ativar o acesso ao plano de controle

Para que o plano de execução e o plano de controle se comuniquem, é necessário ativar as permissões necessárias para o acesso do Synchronizer e do editor de análise 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 que não são de produção (como sugerido neste tutorial), ele precisa ser apigee-non-prod. Para ambientes de produção, ele precisa ser apigee-synchronizer. Use o comando a seguir:
    gcloud iam service-accounts list --project ${PROJECT_ID} --filter "apigee-synchronizer"
  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 permitir a publicação desses dados, você precisa conceder permissões adicionais às contas de serviço que executam esses componentes da Apigee para publicar dados diretamente na camada de controle.

Para ativar o acesso do editor ao Google Analytics:

  1. Defina permissões para a conta de serviço do ambiente de execução para publicar dados no plano de controle com o seguinte comando:

    Sem residência de dados

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

    Residência dos dados

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

    A resposta será assim:

    {
      "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. Verifique o estado da operação usando o parâmetro de nome 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/8316aa78-c137-4733-92ec-cc0d2d92fd29"

    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/8316aa78-c137-4733-92ec-cc0d2d92fd29"

    Ela será parecida com o exemplo a seguir:

    {
      "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. 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-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 (A SEGUIR) Etapa 8: instalar o cert-manager 9 10 11