Acessar endpoints do gRPC para o metastore do Dataproc

Nesta página, explicamos como conceder uma conta de usuário do Google Cloud ou uma conta de serviço acesso a um serviço do Dataproc Metastore que usa o endpoint gRPC protocolo.

Sobre a concessão de papéis de metadados gRPC

Ao conceder a uma conta acesso aos seus metadados, considere o seguinte conceitos importantes:

  • O nível de acesso a ser fornecido. O nível de acesso concedido aos controles quantos metadados uma conta pode acessar. Por exemplo, você pode escolher conceder acesso a metadados armazenados em um banco de dados ou uma tabela específicos, ou pode conceder acesso a todo o projeto.
  • O principal que requer acesso. Você usa os principais do IAM (identidades) para executar os jobs. Por exemplo, é possível executar jobs de cluster do Dataproc com contas de usuário ou de serviço (geralmente o serviço de VM do Dataproc padrão).

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

Dependendo do escopo de controle necessário, conceda ao principal um dos seguintes papéis predefinidos do IAM:

  • Conceder acesso total aos recursos de metadados. Papel de proprietário de metadados (roles/metastore.metadataOwner)
  • Para conceder acesso de leitura e gravação aos metadados: papel de Editor de metadados roles/metastore.metadataEditor)
  • Para conceder acesso de leitura aos metadados: papel Leitor de metadados (roles/metastore.metadataViewer)

Antes de começar

Papéis necessários

Para ter as permissões necessárias para conceder a um principal acesso aos metadados do Dataproc Metastore, peça ao administrador para conceder a você papéis do IAM a seguir no projeto, seguindo o princípio de privilégio mínimo:

Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Esses papéis predefinidos têm as permissões necessárias para conceder ao principal acesso aos metadados do metastore do Dataproc. Para conferir as permissões exatas necessárias, expanda a seção Permissões necessárias:

Permissões necessárias

As seguintes permissões são necessárias para conceder a um principal acesso aos metadados do metastore do Dataproc:

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

Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.

Para mais informações sobre papéis e permissões específicos do metastore do Dataproc, consulte Visão geral do IAM do metastore do Dataproc.

Conceder a uma conta principal acesso aos metadados

É possível conceder a uma conta principal acesso aos metadados no nível do projeto. nível de serviço, nível de banco de dados ou nível de tabela.

Conceder acesso no nível do projeto

Para conceder acesso a todos os metadados do Dataproc Metastore no projeto você precisa conceder um papel de metadados à sua conta principal.

CLI da gcloud

Para conceder papéis de metadados a todos os serviços do metastore do Dataproc em um projeto especificado, execute o seguinte gcloud projects add-iam-policy-binding comando:

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

Substitua:

  • PROJECT_ID: o ID do projeto do Google Cloud ao qual você quer conceder acesso aos metadados.
  • PRINCIPAL: o tipo e o ID de e-mail (endereço de e-mail) do principal.
    • Para contas de usuário: user:EMAIL_ID
    • Para contas de serviço: serviceAccount:EMAIL_ID
    • Para Grupos do Google: group:EMAIL_ID
    • Para outros tipos principais: Conceitos relacionados à identidade
  • METASTORE_ROLE: um dos papéis a seguir, dependendo do escopo de acesso que você quer conceder ao principal: roles/metastore.metadataViewer, roles/metastore.metadataEditor ou roles/metastore.metadataOwner.

Conceder acesso no nível de serviço

Conceda acesso a todos os metadados do metastore do Dataproc no serviço você precisa conceder um papel de metadados à sua conta principal.

CLI da gcloud

Para conceder papéis de metadados na granularidade de uma única Serviço metastore do Dataproc Metastore, execute o seguinte gcloud metastore services add-iam-policy-binding comando:

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

Substitua:

  • SERVICE_ID: o ID ou identificador totalmente qualificado do serviço Metastore do Dataproc.
  • LOCATION: a região do metastore do Dataproc a que você está concedendo acesso.
  • PRINCIPAL: o tipo e o ID de e-mail (endereço de e-mail) da conta principal:
    • Para contas de usuário: user:EMAIL_ID
    • Para contas de serviço: serviceAccount:EMAIL_ID
    • Para os Grupos do Google: group:EMAIL_ID
    • Para outros tipos de principais: Conceitos relacionados à identidade
  • METASTORE_ROLE: um dos papéis a seguir, dependendo do escopo de acesso que você quer conceder ao principal: roles/metastore.metadataViewer, roles/metastore.metadataEditor ou roles/metastore.metadataOwner.

Conceder acesso no nível do banco de dados

Para conceder acesso a todos os metadados do metastore do Dataproc em um você precisa adicionar um papel de metadados à sua conta principal.

CLI da gcloud

Para conceder papéis de metadados com a granularidade de um banco de dados específico, 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:

  • DATABASE_ID: o ID do banco de dados a que você está concedendo acesso aos metadados. Você consegue esse ID no esquema do seu banco de dados.
  • PROJECT: o ID do projeto do Google Cloud que contém o Serviço do metastore do Dataproc ao qual você está concedendo acesso aos metadados.
  • LOCATION: a região do serviço Metastore do Dataproc a que você está concedendo acesso.
  • SERVICE_ID: o ID ou identificador totalmente qualificado do serviço Metastore do Dataproc.
  • PRINCIPAL: o tipo e o ID de e-mail (endereço de e-mail) da conta principal:
    • Para contas de usuário: user:EMAIL_ID
    • Para contas de serviço: serviceAccount:EMAIL_ID
    • Para Grupos do Google: group:EMAIL_ID
    • Para outros tipos principais: Conceitos relacionados à identidade
  • METASTORE_ROLE: um dos papéis a seguir, dependendo do escopo de acesso que você quer conceder ao principal: roles/metastore.metadataViewer, roles/metastore.metadataEditor ou roles/metastore.metadataOwner.

Conceder acesso no nível da tabela

Para conceder acesso a todos os metadados do Dataproc Metastore em uma tabela específica, conceda um papel de metadados à sua conta principal.

CLI da gcloud

Para conceder papéis de metadados na granularidade 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:

  • TABLE_ID: o ID da tabela a que você está concedendo acesso. Você recebe esse ID do esquema do banco de dados.
  • DATABASE_ID: o ID do banco de dados que contém a tabela a que você está concedendo acesso aos metadados. Você consegue esse ID no esquema do seu banco de dados.
  • PROJECT: o ID do projeto do Google Cloud que contém o serviço do Dataproc Metastore a que você está concedendo acesso aos metadados.
  • LOCATION: a região do serviço Metastore do Dataproc a que você está concedendo acesso aos metadados.
  • SERVICE_ID: o ID ou identificador totalmente qualificado do serviço Metastore do Dataproc.
  • PRINCIPAL: o tipo e o ID de e-mail (endereço de e-mail) da conta principal:
    • Para contas de usuário: user:EMAIL_ID
    • Para contas de serviço: serviceAccount:EMAIL_ID
    • Para Grupos do Google: group:EMAIL_ID
  • METASTORE_ROLE: um dos papéis a seguir, dependendo do escopo de acesso que você 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, você pode conectar o Metastore do Dataproc a um cluster do Dataproc. Seu cluster usa o serviço Metastore do Dataproc como seu metastore Hive.

A seguir