Accéder aux points de terminaison gRPC pour Dataproc Metastore

Cette page explique comment accorder à un compte utilisateur Google Cloud ou à un compte de service l'accès à un service Dataproc Metastore qui utilise le protocole de point de terminaison gRPC.

À propos de l'attribution de rôles de métadonnées gRPC

Lorsque vous autorisez un compte à accéder à vos métadonnées, tenez compte des concepts suivants:

  • Le niveau d'accès à fournir Le niveau d'accès que vous accordez contrôle le niveau de métadonnées auquel un compte peut accéder. Par exemple, vous pouvez choisir de fournir un accès aux métadonnées stockées dans une base de données ou une table spécifique, ou d'accorder l'accès à l'ensemble de votre projet.
  • Compte principal qui nécessite un accès : Vous utilisez des comptes principaux (identités) IAM pour exécuter vos tâches. Par exemple, vous pouvez exécuter des tâches de cluster Dataproc avec des comptes utilisateur ou des comptes de service (généralement le compte de service de VM Dataproc).

    Pour en savoir plus sur les comptes que vous pouvez utiliser avec Dataproc Metastore, consultez la page Comptes de service Dataproc.

Selon le champ d'application de contrôle requis, attribuez à votre compte principal l'un des rôles IAM prédéfinis suivants:

  • Pour accorder un accès complet aux ressources de métadonnées Rôle de propriétaire de métadonnées (roles/metastore.metadataOwner)
  • Pour accorder un accès en lecture/écriture aux métadonnées: rôle Éditeur de métadonnées roles/metastore.metadataEditor.
  • Pour accorder un accès en lecture aux métadonnées: rôle Lecteur de métadonnées (roles/metastore.metadataViewer).

Avant de commencer

  • Activez Dataproc Metastore dans votre projet.
  • Créez un service de métastore qui utilise le protocole gRPC.
  • Comprenez les exigences de mise en réseau spécifiques à votre projet.

    • Exigences de gRPC et de cloud privé virtuel (VPC). Avec gRPC, vous n'avez pas besoin de configurer un VPC partagé ni de définir des configurations réseau supplémentaires. Par défaut, les points de terminaison gRPC sont accessibles depuis n'importe quel VPC.

    Il existe toutefois une exception. Si votre projet utilise un périmètre de service VPC-SC, les points de terminaison gRPC ne sont accessibles qu'à partir d'un VPC appartenant à des projets du périmètre. Pour en savoir plus, consultez la page VPC Service Controls avec Dataproc Metastore.

Rôles requis

Pour obtenir les autorisations dont vous avez besoin pour accorder à un compte principal l'accès aux métadonnées Dataproc Metastore, demandez à votre administrateur de vous attribuer les rôles IAM suivants sur votre projet, tout en suivant le principe du moindre privilège:

Pour en savoir plus sur l'attribution de rôles, consultez la section Gérer les accès.

Ces rôles prédéfinis contiennent les autorisations requises pour accorder à un compte principal l'accès aux métadonnées Dataproc Metastore. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :

Autorisations requises

Les autorisations suivantes sont requises pour accorder à un compte principal l'accès aux métadonnées Dataproc Metastore:

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

Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.

Pour en savoir plus sur les rôles et autorisations spécifiques de Dataproc Metastore, consultez la page Présentation de l'IAM pour Dataproc Metastore.

Accorder à un compte principal l'accès aux métadonnées

Vous pouvez accorder à un compte principal l'accès aux métadonnées au niveau du projet, du service, de la base de données ou de la table.

Accorder l'accès au niveau du projet

Pour accorder l'accès à toutes les métadonnées Dataproc Metastore au niveau du projet, vous devez attribuer un rôle de métadonnées à votre compte principal.

gcloud CLI

Pour attribuer des rôles de métadonnées à tous les services Dataproc Metastore dans un projet spécifié, exécutez la commande gcloud projects add-iam-policy-binding suivante:

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

Remplacez les éléments suivants :

  • PROJECT_ID: ID du projet Google Cloud auquel vous souhaitez accorder l'accès aux métadonnées.
  • PRINCIPAL: type et ID d'adresse e-mail (adresse e-mail) du compte principal.
    • Pour les comptes utilisateur: user:EMAIL_ID
    • Pour les comptes de service: serviceAccount:EMAIL_ID
    • Pour Google Groupes: group:EMAIL_ID
    • Pour les autres types de comptes principaux: Concepts liés à l'identité
  • METASTORE_ROLE: l'un des rôles suivants, en fonction du niveau d'accès que vous souhaitez accorder au compte principal: roles/metastore.metadataViewer, roles/metastore.metadataEditor ou roles/metastore.metadataOwner.

Accorder l'accès au niveau du service

Pour accorder l'accès à toutes les métadonnées Dataproc Metastore au niveau du service, vous devez attribuer un rôle de métadonnées à votre compte principal.

gcloud CLI

Pour attribuer des rôles de métadonnées au niveau de précision d'un seul service de métastore Dataproc Metastore, exécutez la commande gcloud metastore services add-iam-policy-binding suivante:

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

Remplacez les éléments suivants :

  • SERVICE_ID: ID ou identifiant complet de votre service Dataproc Metastore.
  • LOCATION: région de Dataproc Metastore à laquelle vous accordez l'accès.
  • PRINCIPAL: type et ID d'adresse e-mail (adresse e-mail) du compte principal :
    • Pour les comptes utilisateur: user:EMAIL_ID
    • Pour les comptes de service: serviceAccount:EMAIL_ID
    • Pour Google Groupes: group:EMAIL_ID
    • Pour les autres types de comptes principaux: Concepts liés à l'identité
  • METASTORE_ROLE: l'un des rôles suivants, en fonction du niveau d'accès que vous souhaitez accorder au compte principal: roles/metastore.metadataViewer, roles/metastore.metadataEditor ou roles/metastore.metadataOwner.

Accorder l'accès au niveau de la base de données

Pour accorder l'accès à toutes les métadonnées Dataproc Metastore d'une base de données spécifique, vous devez ajouter un rôle de métadonnées à votre compte principal.

gcloud CLI

Pour attribuer des rôles de métadonnées au niveau de précision d'une base de données spécifique, exécutez la commande gcloud metastore services databases add-iam-policy-binding suivante:

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

Remplacez les éléments suivants :

  • DATABASE_ID: ID de la base de données à laquelle vous accordez l'accès aux métadonnées. Vous obtenez cet ID dans le schéma de votre base de données.
  • PROJECT: ID de projet Google Cloud contenant le service Dataproc Metastore auquel vous accordez l'accès aux métadonnées.
  • LOCATION: région du service Dataproc Metastore auquel vous accordez l'accès.
  • SERVICE_ID: ID ou identifiant complet de votre service Dataproc Metastore.
  • PRINCIPAL: type et ID d'adresse e-mail (adresse e-mail) du compte principal :
    • Pour les comptes utilisateur: user:EMAIL_ID
    • Pour les comptes de service: serviceAccount:EMAIL_ID
    • Pour Google Groupes: group:EMAIL_ID
    • Pour les autres types de comptes principaux: Concepts liés à l'identité
  • METASTORE_ROLE: l'un des rôles suivants, en fonction du niveau d'accès que vous souhaitez accorder au compte principal: roles/metastore.metadataViewer, roles/metastore.metadataEditor ou roles/metastore.metadataOwner.

Accorder l'accès au niveau de la table

Pour accorder l'accès à toutes les métadonnées Dataproc Metastore dans une table spécifique, vous devez attribuer un rôle de métadonnées à votre compte principal.

gcloud CLI

Pour attribuer des rôles de métadonnées au niveau d'une table, exécutez la commande gcloud metastore services databases tables add-iam-policy-binding suivante:

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

Remplacez les éléments suivants :

  • TABLE_ID: ID de la table à laquelle vous accordez l'accès. Vous obtenez cet ID dans le schéma de votre base de données.
  • DATABASE_ID: ID de la base de données contenant la table à laquelle vous accordez l'accès aux métadonnées. Vous obtenez cet ID dans le schéma de votre base de données.
  • PROJECT: ID de projet Google Cloud contenant le service Dataproc Metastore auquel vous accordez l'accès aux métadonnées.
  • LOCATION: région du service Dataproc Metastore auquel vous accordez l'accès aux métadonnées.
  • SERVICE_ID: ID ou identifiant complet de votre service Dataproc Metastore.
  • PRINCIPAL: type et ID d'adresse e-mail (adresse e-mail) du compte principal :
    • Pour les comptes utilisateur: user:EMAIL_ID
    • Pour les comptes de service: serviceAccount:EMAIL_ID
    • Pour Google Groupes: group:EMAIL_ID
  • METASTORE_ROLE: l'un des rôles suivants, en fonction du niveau d'accès que vous souhaitez accorder au compte principal: roles/metastore.metadataViewer, roles/metastore.metadataEditor ou roles/metastore.metadataOwner.

Après avoir accordé l'accès à vos métadonnées

Après avoir attribué les rôles requis à vos comptes de service, vous pouvez connecter Dataproc Metastore à un cluster Dataproc. Votre cluster utilise ensuite le service Dataproc Metastore comme métastore Hive.

Étapes suivantes