Gérer les LCA REST Iceberg Lakehouse

Lakehouse pour Apache Iceberg est compatible avec le contrôle des accès au niveau du catalogue, de l'espace de noms et de la table pour les tables Apache Iceberg dans Cloud Storage qui utilisent le catalogue d'exécution Lakehouse.

Le catalogue du runtime Lakehouse gère les métadonnées, tandis que les stratégies IAM (Identity and Access Management) définissent les autorisations. Vous pouvez utiliser la consoleGoogle Cloud ou la CLI gcloud pour obtenir et définir ces stratégies IAM.

Avant de commencer

  1. Vérifiez que la facturation est activée pour votre projet Google Cloud .

  2. Activez l'API BigLake.

    Rôles requis pour activer les API

    Pour activer les API, vous devez disposer de l'autorisation serviceusage.services.enable. Si vous avez créé le projet, vous disposez probablement déjà de cette autorisation grâce au rôle Propriétaire (roles/owner). Sinon, vous pouvez obtenir cette autorisation grâce au rôle Administrateur Service Usage (roles/serviceusage.serviceUsageAdmin). Découvrez comment attribuer des rôles.

    Activer l'API

  3. Installez et initialisez le Google Cloud SDK.
  4. Vérifiez que vous disposez d'un point de terminaison et d'un espace de noms de catalogue REST Apache Iceberg existants.
  5. Vérifiez que vous disposez d'une table Lakehouse Iceberg existante dans le catalogue et l'espace de noms spécifiés.

Rôles requis

Pour obtenir les autorisations nécessaires pour gérer les listes de contrôle d'accès (ACL) pour les catalogues, les espaces de noms et les tables Iceberg, demandez à votre administrateur de vous accorder les rôles IAM suivants :

Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

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

Fonctionnement

Les stratégies IAM définissent les comptes principaux qui disposent de rôles et d'autorisations spécifiques pour une ressource. Vous pouvez gérer l'accès à vos ressources en obtenant et en définissant ces règles.

Champ d'application des rôles IAM

Vous pouvez attribuer des rôles IAM à différents niveaux de la hiérarchie des ressources :

  • Au niveau du projet : accorde l'accès à toutes les ressources Lakehouse du projet.
  • Niveau du catalogue : accorde l'accès aux ressources appartenant au catalogue spécifié.
  • Niveau de l'espace de noms : accorde l'accès aux ressources appartenant à l'espace de noms spécifié.
  • Au niveau de la table : n'accorde l'accès qu'à la table spécifiée.

Rôles IAM pertinents

La liste suivante présente certains des rôles IAM courants que vous pouvez appliquer aux ressources Lakehouse. Pour obtenir la liste complète des rôles disponibles et des autorisations associées, consultez Rôles IAM Lakehouse.

  • roles/biglake.admin : fournit un accès complet à toutes les ressources Lakehouse.
  • roles/biglake.editor : fournit un accès en lecture et en écriture à toutes les ressources Lakehouse.
  • roles/biglake.viewer : fournit un accès en lecture seule à toutes les ressources Lakehouse.
  • roles/biglake.metadataViewer : fournit un accès en lecture seule aux métadonnées de toutes les ressources Lakehouse.

Bonnes pratiques

  • Moindre privilège : n'accordez aux utilisateurs et aux comptes de service que les autorisations nécessaires.
  • Utiliser les ETag : incluez toujours le etag d'un appel get-iam-policy récent dans votre fichier de règles lorsque vous utilisez set-iam-policy pour éviter les écrasements involontaires.
  • Journaux d'audit : assurez-vous que Cloud Audit Logs est activé pour suivre les modifications apportées aux stratégies IAM.
  • Contrôle des versions : stockez vos fichiers de règles dans un système de contrôle des versions.

Appliquer des rôles LCA aux catalogues

La section suivante vous explique comment appliquer des LCA aux catalogues.

gcloud

Obtenir la stratégie IAM

Pour afficher la stratégie IAM actuelle sur un catalogue Iceberg Lakehouse, utilisez la commande gcloud alpha biglake iceberg catalogs get-iam-policy.

  1. Pour obtenir la stratégie IAM, exécutez la commande suivante :

    gcloud alpha biglake iceberg catalogs get-iam-policy CATALOG_NAME \
        --project=PROJECT_ID
    

    Remplacez les éléments suivants :

    • CATALOG_NAME : nom du point de terminaison du catalogue REST Apache Iceberg.
    • PROJECT_ID : ID de votre projet Google Cloud.
  2. La commande génère la stratégie IAM au format YAML, qui affiche les liaisons de rôle et les membres actuels.

Définir la stratégie IAM

Pour mettre à jour la stratégie IAM d'un catalogue Lakehouse Iceberg, utilisez la commande gcloud alpha biglake iceberg catalogs set-iam-policy. Cette commande utilise un fichier JSON ou YAML local contenant la stratégie que vous souhaitez appliquer.

  1. Créez un fichier de règles local au format JSON ou YAML. Le fichier de règles doit contenir les liaisons et un etag. La valeur etag permet d'effectuer un contrôle de simultanéité positive pour éviter d'écraser les modifications. Pour obtenir le etag actuel, exécutez d'abord la commande get-iam-policy.

    L'exemple suivant montre un fichier de règles nommé policy.json :

    {
      "bindings": [
        {
          "role": "roles/biglake.viewer",
          "members": [
            "user:test-user@example.com"
          ]
        },
        {
          "role": "roles/biglake.editor",
          "members": [
            "user:someone@example.com"
          ]
        }
      ],
      "etag": "BwYXa9UuR8w=",
      "version": 3
    }
    
  2. Pour définir la stratégie IAM, exécutez la commande suivante :

    gcloud alpha biglake iceberg catalogs set-iam-policy CATALOG_NAME POLICY_FILE \
        --project=PROJECT_ID
    

    Remplacez les éléments suivants :

    • CATALOG_NAME : nom du point de terminaison du catalogue REST Apache Iceberg.
    • POLICY_FILE : chemin d'accès à votre fichier de règles local.
    • PROJECT_ID : ID de votre projet Google Cloud .

Appliquer des rôles de LCA aux espaces de noms

La section suivante vous explique comment appliquer des LCA aux espaces de noms.

La console Google Cloud n'affiche ni ne gère les stratégies IAM héritées.

Console

  1. Dans la console Google Cloud , ouvrez la page Lakehouse.

    Accéder à Lakehouse

  2. Sélectionnez un catalogue existant ou créez-en un si vous n'en avez pas.

  3. Dans le tableau Détails de l'espace de noms, sélectionnez un espace de noms et développez les options du menu ().

  4. Cliquez sur Gérer les autorisations.

    La boîte de dialogue Autorisations de partage s'affiche.

  5. Cliquez sur Ajouter un compte principal.

  6. Dans le champ Nouveaux comptes principaux, saisissez le compte principal auquel vous souhaitez attribuer des rôles.

  7. Dans Sélectionner un rôle, choisissez un rôle à attribuer au compte principal.

  8. Cliquez sur Enregistrer.

  9. Cliquez sur Fermer.

gcloud

Obtenir la stratégie IAM

Pour afficher la stratégie IAM actuelle sur un espace de noms Iceberg Lakehouse, utilisez la commande gcloud alpha biglake iceberg namespaces get-iam-policy.

  1. Pour obtenir la stratégie IAM, exécutez la commande suivante :

    gcloud alpha biglake iceberg namespaces get-iam-policy NAMESPACE_NAME \
        --catalog=CATALOG_NAME \
        --project=PROJECT_ID
    

    Remplacez les éléments suivants :

    • NAMESPACE_NAME : nom de l'espace de noms cible dans le catalogue.
    • CATALOG_NAME : nom du point de terminaison du catalogue REST Apache Iceberg.
    • PROJECT_ID : ID de votre projet Google Cloud.
  2. La commande génère la stratégie IAM au format YAML, qui affiche les liaisons de rôle et les membres actuels.

Définir la stratégie IAM

Pour mettre à jour la stratégie IAM sur un espace de noms Lakehouse Iceberg, utilisez la commande gcloud alpha biglake iceberg namespaces set-iam-policy. Cette commande utilise un fichier JSON ou YAML local contenant la stratégie que vous souhaitez appliquer.

  1. Créez un fichier de règles local au format JSON ou YAML. Le fichier de règles doit contenir les liaisons et un etag. La valeur etag permet d'effectuer un contrôle de simultanéité positive pour éviter d'écraser les modifications. Pour obtenir le etag actuel, exécutez d'abord la commande get-iam-policy.

    L'exemple suivant montre un fichier de règles nommé policy.json :

    {
      "bindings": [
        {
          "role": "roles/biglake.viewer",
          "members": [
            "user:test-user@example.com"
          ]
        },
        {
          "role": "roles/biglake.editor",
          "members": [
            "user:someone@example.com"
          ]
        }
      ],
      "etag": "BwYXa9UuR8w=",
      "version": 3
    }
    
  2. Pour définir la stratégie IAM, exécutez la commande suivante :

    gcloud alpha biglake iceberg namespaces set-iam-policy NAMESPACE_NAME POLICY_FILE \
        --catalog=CATALOG_NAME \
        --project=PROJECT_ID
    

    Remplacez les éléments suivants :

    • NAMESPACE_NAME : nom de l'espace de noms cible dans le catalogue.
    • POLICY_FILE : chemin d'accès à votre fichier de règles local.
    • CATALOG_NAME : nom du point de terminaison du catalogue REST Apache Iceberg.
    • PROJECT_ID : ID de votre projet Google Cloud .

Appliquer des rôles LCA aux tables

La section suivante vous explique comment appliquer des LCA aux tables.

La console Google Cloud n'affiche ni ne gère les stratégies IAM héritées.

Console

  1. Dans la console Google Cloud , ouvrez la page Lakehouse.

    Accéder à Lakehouse

  2. Sélectionnez un catalogue existant ou créez-en un si vous n'en avez pas.

  3. Dans le tableau Détails de l'espace de noms, cliquez sur le nom de l'espace de noms contenant votre table.

  4. Sur la page Détails de la table, sélectionnez une table et développez les options du menu .

  5. Cliquez sur Gérer les autorisations.

    La boîte de dialogue Autorisations de partage s'affiche.

  6. Cliquez sur Ajouter un compte principal.

  7. Dans le champ Nouveaux comptes principaux, saisissez le compte principal auquel vous souhaitez attribuer des rôles.

  8. Dans Sélectionner un rôle, choisissez un rôle à attribuer au compte principal.

  9. Cliquez sur Enregistrer.

  10. Cliquez sur Fermer.

gcloud

Obtenir la stratégie IAM

Pour afficher la stratégie IAM actuelle sur une table Iceberg Lakehouse, utilisez la commande gcloud biglake iceberg tables get-iam-policy.

  1. Pour obtenir la stratégie IAM, exécutez la commande suivante :

    gcloud biglake iceberg tables get-iam-policy TABLE_NAME \
        --catalog=CATALOG_NAME \
        --namespace=NAMESPACE_NAME \
        --project=PROJECT_ID
    

    Remplacez les éléments suivants :

    • TABLE_NAME : nom de la table Iceberg Lakehouse cible.
    • CATALOG_NAME : nom du point de terminaison du catalogue REST Apache Iceberg.
    • NAMESPACE_NAME : nom de l'espace de noms dans le catalogue.
    • PROJECT_ID : ID de votre projet Google Cloud.
  2. La commande génère la stratégie IAM au format YAML, qui affiche les liaisons de rôle et les membres actuels.

Définir la stratégie IAM

Pour mettre à jour la stratégie IAM d'une table Iceberg Lakehouse, utilisez la commande gcloud biglake iceberg tables set-iam-policy. Cette commande utilise un fichier JSON ou YAML local contenant la stratégie que vous souhaitez appliquer.

  1. Créez un fichier de règles local au format JSON ou YAML. Le fichier de règles doit contenir les liaisons et un etag. La valeur etag permet d'effectuer un contrôle de simultanéité positive pour éviter d'écraser les modifications. Pour obtenir le etag actuel, exécutez d'abord la commande get-iam-policy.

    L'exemple suivant montre un fichier de règles nommé policy.json :

    {
      "bindings": [
        {
          "role": "roles/biglake.viewer",
          "members": [
            "user:test-user@example.com"
          ]
        },
        {
          "role": "roles/biglake.editor",
          "members": [
            "user:someone@example.com"
          ]
        }
      ],
      "etag": "BwYXa9UuR8w=",
      "version": 3
    }
    
  2. Pour définir la stratégie IAM, exécutez la commande suivante :

    gcloud biglake iceberg tables set-iam-policy TABLE_NAME POLICY_FILE \
        --catalog=CATALOG_NAME \
        --namespace=NAMESPACE_NAME \
        --project=PROJECT_ID
    

    Remplacez les éléments suivants :

    • TABLE_NAME : nom de la table Iceberg Lakehouse cible.
    • POLICY_FILE : chemin d'accès à votre fichier de règles local.
    • CATALOG_NAME : nom du point de terminaison du catalogue REST Apache Iceberg.
    • NAMESPACE_NAME : nom de l'espace de noms dans le catalogue.
    • PROJECT_ID : ID de votre projet Google Cloud .

Étapes suivantes