Gérer les LCA des tables du catalogue REST Iceberg Lakehouse

Lakehouse pour Apache Iceberg est compatible avec le contrôle des accès au niveau des tables pour les tables Apache Iceberg dans Cloud Storage qui utilisent le �catalogue du runtime Lakehouse.

Le catalogue du runtime Lakehouse gère les métadonnées des tables, tandis que les stratégies Identity and Access Management (IAM) définissent les autorisations. L'CLI gcloud fournit les commandes nécessaires 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 avez besoin du rôle IAM Administrateur Service Usage (roles/serviceusage.serviceUsageAdmin), qui contient l'autorisation serviceusage.services.enable. Découvrez comment attribuer des rôles.

    Activer l'API

  3. Installez et initialisez 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 tables Iceberg, demandez à votre administrateur de vous accorder les rôles IAM suivants :

  • Tous : Administrateur BigLake (roles/biglake.admin) activé pour le projet

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.

Rôles IAM pertinents

Vous pouvez appliquer les rôles IAM courants suivants aux ressources Lakehouse :

  • roles/biglake.admin : fournit un contrôle total sur les ressources Lakehouse.
  • roles/biglake.user : permet aux comptes principaux d'utiliser les ressources Lakehouse, y compris de lire et d'écrire des données de table.
  • roles/biglake.viewer : permet aux principaux d'afficher les ressources Lakehouse et de lire les données des tables.

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 tables

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

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 stratégie local au format JSON ou YAML. Ce fichier doit contenir les liaisons et un etag. La valeur etag fournit un contrôle de simultanéité optimiste pour éviter l'écrasement des 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.user",
          "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