Escolher o protocolo de endpoint

O serviço Metastore do Dataproc fornece acesso de cliente aos metadados do metastore armazenados usando um protocolo de endpoint.

Escolha o protocolo de endpoint para o serviço Metastore do Dataproc de acordo com suas preferências de comunicação. É possível escolher entre o Apache Thrift ou o gRPC.

O Thrift é o protocolo de endpoint legado e, portanto, é a opção padrão. O gRPC é mais seguro e permite usar integrações federadas com outros produtos do Google Cloud.

Configuração de rede do gRPC

Você não precisa configurar a VPC compartilhada nem definir configurações de rede para serviços baseados em gRPC, já que o endpoint gRPC pode ser acessado de qualquer VPC. A exceção ocorre quando o projeto que contém o serviço está em um perímetro de serviço do VPC-SC. Nesse caso, o endpoint pode ser alcançado de qualquer VPC pertencente a projetos no perímetro.

Escolher o protocolo de endpoint para um serviço novo e atual do metastore do Dataproc

Escolha o protocolo de endpoint do seu serviço do metastore do Dataproc ao criá-lo ou atualizá-lo usando o Console do Google Cloud.

Escolha o protocolo de endpoint para um novo serviço

Para escolher o protocolo de endpoint para um novo serviço, faça o seguinte:

Console

  1. No console, abra a página do metastore do Dataproc:

    Abra o metastore do Dataproc no console

  2. Na parte superior da página Metastore do Dataproc, clique no botão Criar. A página Criar serviço é aberta.

  3. Configure o serviço como quiser.

  4. Em Endpoint protocol, selecione Thrift ou gRPC. O Thrift é o protocolo de endpoint padrão.

  5. Clique em Enviar.

gcloud

  1. Execute o seguinte comando gcloud beta metastore services create:

    gcloud beta metastore services create SERVICE \
       --endpoint-protocol=ENDPOINT_PROTOCOL ; default="thrift"
    

    Substitua:

    • SERVICE: um nome para o novo serviço
    • ENDPOINT_PROTOCOL: o protocolo a ser usado para o endpoint do serviço do metastore. É possível especificar thrift ou grpc.
  2. Verifique se a criação foi bem-sucedida.

Escolher o protocolo de endpoint para um serviço atual

Para escolher o protocolo de endpoint para um serviço atual, faça o seguinte:

Console

  1. No console, abra a página do metastore do Dataproc:

    Abra o metastore do Dataproc no console

  2. Na página Metastore do Dataproc, clique no nome do serviço que você quer atualizar. A página Detalhes do serviço desse serviço é aberta.

  3. Na guia Configuração, clique no botão Editar. A página Editar serviço é aberta.

  4. Na seção Protocolo de endpoint, atualize sua seleção entre Thrift ou gRPC.

  5. Clique no botão Enviar para atualizar o serviço.

gcloud

  1. Execute o seguinte comando gcloud beta metastore services update:

    gcloud beta metastore services update SERVICE \
       --endpoint-protocol=ENDPOINT_PROTOCOL
    

    Substitua:

    • SERVICE: o nome do serviço;
    • ENDPOINT_PROTOCOL: o protocolo a ser usado para o endpoint do serviço do metastore. É possível especificar thrift ou grpc.
  2. Verifique se a atualização foi concluída.

Após escolher o protocolo de endpoint

Para serviços ativados para gRPC, o acesso aos metadados armazenados é protegido pelas permissões do IAM em bancos de dados e tabelas. Os papéis são:

  • roles/metastore.metadataViewer: acesso somente leitura a metadados e políticas de IAM de metadados
  • roles/metastore.metadataEditor: acesso de leitura/gravação aos metadados e acesso somente leitura às políticas do IAM de metadados
  • roles/metastore.metadataOwner: acesso de leitura/gravação aos metadados e acesso de leitura/gravação às políticas do IAM de metadados

Defina a política do IAM para conceder acesso aos recursos. Use setIamPolicy e getIamPolicies para conceder permissões metastore.databases e metastore.tables.

Definir política de IAM para conceder papéis de metadados

As instruções a seguir demonstram como conceder papéis de metadados no nível do banco de dados e da tabela.

gcloud

  • Para acesso no nível do banco de dados:

    Execute o seguinte comando gcloud metastore services databases para conceder papéis de metadados no nível do banco de dados:

    gcloud beta metastore services databases add-iam-policy-binding --project PROJECT --location LOCATION --service SERVICE_ID DATABASE_ID --role roles/metastore.metadataViewer --member="EMAIL_ID"
    
  • Para acesso em nível de tabela:

    Execute o seguinte comando gcloud metastore services databases tables para conceder papéis de metadados no nível da tabela:

    gcloud beta metastore services databases tables add-iam-policy-binding --project PROJECT --location LOCATION --service SERVICE_ID --database DATABASE_ID TABLE_ID --role roles/metastore.metadataViewer --member="EMAIL_ID"
    

A seguir