Aceda aos pontos finais gRPC do Dataproc Metastore

Esta página explica como conceder a uma Google Cloud conta de utilizador ou a uma conta de serviço acesso a um serviço Dataproc Metastore que usa o protocolo de ponto final gRPC.

Acerca da concessão de funções de metadados gRPC

Quando concede a uma conta acesso aos seus metadados, tenha em consideração os seguintes conceitos:

  • O nível de acesso a conceder. O nível de acesso que concede controla a quantidade de metadados a que uma conta pode aceder. Por exemplo, pode optar por conceder acesso a metadados armazenados numa base de dados específica, numa tabela específica ou pode conceder acesso a todo o seu projeto.
  • O principal que requer acesso. Usa os principais do IAM (identidades) para executar os seus trabalhos. Por exemplo, pode executar tarefas de cluster do Dataproc com contas de utilizador ou contas de serviço (normalmente, a conta de serviço da VM do Dataproc).

    Para mais informações sobre as contas que pode usar com o Dataproc Metastore, consulte o artigo Contas de serviço do Dataproc.

Consoante o âmbito do controlo necessário, conceda ao seu principal uma das seguintes funções de IAM predefinidas:

  • Para conceder acesso total aos recursos de metadados. Função de proprietário dos metadados (roles/metastore.metadataOwner)
  • Para conceder acesso de leitura/escrita aos metadados: função de editor de metadados roles/metastore.metadataEditor)
  • Para conceder acesso de leitura aos metadados: função de leitor de metadados (roles/metastore.metadataViewer)

Antes de começar

  • Ative o Dataproc Metastore no seu projeto.
  • Crie um serviço de metastore que use o protocolo gRPC.
  • Compreenda os requisitos de rede específicos do seu projeto.

    • Requisitos do gRPC e da nuvem virtual privada (VPC). Se estiver a usar o gRPC, não tem de configurar uma VPC partilhada nem definir configurações de rede adicionais. Por predefinição, é possível aceder aos pontos finais gRPC a partir de qualquer VPC.

    No entanto, existe uma exceção. Se o seu projeto estiver a usar um perímetro de serviço do VPC-SC, só é possível alcançar os pontos finais gRPC a partir de uma VPC pertencente a projetos no perímetro. Para mais informações, consulte o artigo VPC Service Controls com o Dataproc Metastore.

Funções necessárias

Para obter as autorizações de que precisa para conceder a um principal acesso aos metadados do Dataproc Metastore, peça ao seu administrador que lhe conceda as seguintes funções do IAM no seu projeto, seguindo o princípio do menor privilégio:

Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.

Estas funções predefinidas contêm as autorizações necessárias para conceder a um principal acesso aos metadados do Dataproc Metastore. Para ver as autorizações exatas que são necessárias, expanda a secção Autorizações necessárias:

Autorizações necessárias

São necessárias as seguintes autorizações para conceder a um principal acesso aos metadados do Dataproc Metastore:

  • resourcemanager.projects.get
  • resourcemanager.projects.getIamPolicy
  • resourcemanager.projects.setIamPolicy

Também pode conseguir estas autorizações com funções personalizadas ou outras funções predefinidas.

Para mais informações sobre as funções e as autorizações específicas do Dataproc Metastore, consulte a vista geral do IAM do Dataproc Metastore.

Conceda a uma conta principal acesso a metadados

Pode conceder a uma conta principal acesso aos metadados ao nível do projeto, do serviço, da base de dados ou da tabela.

Conceda acesso ao nível do projeto

Para conceder acesso a todos os metadados do Dataproc Metastore ao nível do projeto, tem de conceder uma função de metadados à sua conta principal.

CLI gcloud

Para conceder funções de metadados a todos os serviços de Metastore do Dataproc num projeto especificado, execute o seguinte comando gcloud projects add-iam-policy-binding:

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member=PRINCIPAL \
    --role=METASTORE_ROLE

Substitua o seguinte:

  • PROJECT_ID: o Google Cloud ID do projeto ao qual quer conceder acesso aos metadados.
  • PRINCIPAL: o tipo e o ID de email (endereço de email) do principal.
    • Para contas de utilizador: user:EMAIL_ID
    • Para contas de serviço: serviceAccount:EMAIL_ID
    • Para o Grupos Google: group:EMAIL_ID
    • Para outros tipos de diretor: identificadores de diretores
  • METASTORE_ROLE: uma das seguintes funções, consoante o âmbito de acesso que quer conceder ao principal: roles/metastore.metadataViewer, roles/metastore.metadataEditor ou roles/metastore.metadataOwner.

Conceda acesso ao nível do serviço

Para conceder acesso a todos os metadados do Dataproc Metastore ao nível do serviço, tem de conceder uma função de metadados à sua conta principal.

CLI gcloud

Para conceder funções de metadados ao nível de granularidade de um único serviço de metastore do Dataproc Metastore, execute o seguinte comando gcloud metastore services add-iam-policy-binding:

gcloud metastore services add-iam-policy-binding SERVICE_ID \
  --location=LOCATION \
  --member=PRINCIPAL \
  --role=METASTORE_ROLE

Substitua o seguinte:

  • SERVICE_ID: o ID ou o identificador totalmente qualificado do seu serviço Dataproc Metastore.
  • LOCATION: a região do Dataproc Metastore à qual está a conceder acesso.
  • PRINCIPAL: o tipo e o ID do email (endereço de email) da conta principal:
    • Para contas de utilizador: user:EMAIL_ID
    • Para contas de serviço: serviceAccount:EMAIL_ID
    • Para o Grupos Google: group:EMAIL_ID
    • Para outros tipos de diretor: identificadores de diretores
  • METASTORE_ROLE: uma das seguintes funções, consoante o âmbito de acesso que quer conceder ao principal: roles/metastore.metadataViewer, roles/metastore.metadataEditor ou roles/metastore.metadataOwner.

Conceda acesso ao nível da base de dados

Para conceder acesso a todos os metadados do Metastore do Dataproc numa base de dados específica, tem de adicionar uma função de metadados à sua conta principal.

CLI gcloud

Para conceder funções de metadados ao nível de detalhe de uma base de dados específica, execute o seguinte comando gcloud metastore services databases add-iam-policy-binding:

gcloud metastore services databases add-iam-policy-binding DATABASE_ID \
  --project=PROJECT \
  --location=LOCATION \
  --service=SERVICE_ID \
  --member=PRINCIPAL \
  --role=METASTORE_ROLE

Substitua o seguinte:

  • DATABASE_ID: o ID da base de dados à qual está a conceder acesso aos metadados. Obtém este ID do esquema da base de dados.
  • PROJECT: O ID do projeto que contém o serviço Dataproc Metastore ao qual está a conceder acesso aos metadados. Google Cloud
  • LOCATION: a região do serviço Dataproc Metastore ao qual está a conceder acesso.
  • SERVICE_ID: o ID ou o identificador totalmente qualificado do seu serviço Dataproc Metastore.
  • PRINCIPAL: o tipo e o ID do email (endereço de email) da conta principal:
    • Para contas de utilizador: user:EMAIL_ID
    • Para contas de serviço: serviceAccount:EMAIL_ID
    • Para o Grupos Google: group:EMAIL_ID
    • Para outros tipos de diretor: identificadores de diretores
  • METASTORE_ROLE: uma das seguintes funções, consoante o âmbito de acesso que quer conceder ao principal: roles/metastore.metadataViewer, roles/metastore.metadataEditor ou roles/metastore.metadataOwner.

Conceda acesso ao nível da tabela

Para conceder acesso a todos os metadados do Dataproc Metastore numa tabela específica, tem de conceder uma função de metadados à sua conta principal.

CLI gcloud

Para conceder funções de metadados ao nível de detalhe de uma tabela, execute o seguinte comando gcloud metastore services databases tables add-iam-policy-binding:

gcloud metastore services databases tables add-iam-policy-binding TABLE_ID \
  --database=DATABASE_ID \
  --project=PROJECT \
  --location=LOCATION \
  --service=SERVICE_ID \
  --member=PRINCIPAL \
  --role=METASTORE_ROLE

Substitua o seguinte:

  • TABLE_ID: o ID da tabela à qual está a conceder acesso. Obtém este ID do esquema da base de dados.
  • DATABASE_ID: o ID da base de dados que contém a tabela à qual está a conceder acesso aos metadados. Obtém este ID do esquema da base de dados.
  • PROJECT: O ID do projeto Google Cloud que contém o serviço Dataproc Metastore ao qual está a conceder acesso aos metadados.
  • LOCATION: a região do serviço Dataproc Metastore ao qual está a conceder acesso aos metadados.
  • SERVICE_ID: o ID ou o identificador totalmente qualificado do seu serviço Dataproc Metastore.
  • PRINCIPAL: o tipo e o ID do email (endereço de email) da conta principal:
    • Para contas de utilizador: user:EMAIL_ID
    • Para contas de serviço: serviceAccount:EMAIL_ID
    • Para o Grupos Google: group:EMAIL_ID
  • METASTORE_ROLE: uma das seguintes funções, consoante o âmbito do acesso que quer conceder ao principal: roles/metastore.metadataViewer, roles/metastore.metadataEditor ou roles/metastore.metadataOwner.

Depois de conceder acesso aos seus metadados

Depois de conceder as funções necessárias às suas contas de serviço, pode associar o Dataproc Metastore a um cluster do Dataproc. Em seguida, o cluster usa o serviço Dataproc Metastore como o respetivo Hive Metastore.

O que se segue?