管理 Lakehouse Iceberg REST 目錄資料表 ACL

Lakehouse for Apache Iceberg 支援 Cloud Storage 中 Apache Iceberg 資料表的資料表層級存取控管,這些資料表使用 Lakehouse 執行階段目錄

Lakehouse 執行階段目錄會管理資料表的中繼資料,而身分與存取權管理 (IAM) 政策則會定義權限。gcloud CLI 提供取得及設定這些 IAM 政策所需的指令。

事前準備

  1. 確認專案已啟用計費功能 Google Cloud

  2. 啟用 BigLake API。

    啟用 API 時所需的角色

    如要啟用 API,您需要具備服務使用情形管理員 IAM 角色 (roles/serviceusage.serviceUsageAdmin),其中包含 serviceusage.services.enable 權限。瞭解如何授予角色

    啟用 API

  3. 安裝並初始化 Google Cloud SDK。
  4. 確認您有現有的 Apache Iceberg REST 目錄端點和命名空間。
  5. 確認您在指定目錄和命名空間中,已有 Lakehouse Iceberg 表格。

必要的角色

如要取得管理 Iceberg 表格存取控制清單 (ACL) 的權限,請要求管理員授予您下列 IAM 角色:

  • 所有項目: 專案的 BigLake 管理員 (roles/biglake.admin)

如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

您或許也能透過自訂角色或其他預先定義的角色,取得必要權限。

運作方式

IAM 政策會定義哪些主體對資源具有特定角色和權限。您可以取得及設定這些政策,藉此管理資源的存取權。

相關 IAM 角色

您可以對 Lakehouse 資源套用下列常見的 IAM 角色:

  • roles/biglake.admin:可全面控管 Lakehouse 資源。
  • roles/biglake.user:讓主體使用 Lakehouse 資源,包括讀取及寫入資料表資料。
  • roles/biglake.viewer:讓主體檢視 Lakehouse 資源及讀取資料表資料。

最佳做法

  • 最低權限:只授予使用者和服務帳戶必要權限。
  • 使用 Etag:使用 set-iam-policy 時,請務必在政策檔案中加入最近 get-iam-policy 呼叫的 etag,以免發生非預期的覆寫。
  • 稽核記錄:請務必啟用 Cloud 稽核記錄,追蹤 IAM 政策的變更。
  • 版本管控:將政策檔案儲存在版本管控系統中。

為資料表套用 ACL 角色

下節說明如何將 ACL 套用至資料表。

取得 IAM 政策

如要查看 Lakehouse Iceberg 資料表目前的 IAM 政策,請使用 gcloud biglake iceberg tables get-iam-policy 指令。

  1. 如要取得 IAM 政策,請執行下列指令:

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

    更改下列內容:

    • TABLE_NAME:目標 Lakehouse Iceberg 資料表的名稱。
    • CATALOG_NAME:Apache Iceberg REST 目錄端點的名稱。
    • NAMESPACE_NAME:目錄中的命名空間名稱。
    • PROJECT_ID:您的 Google Cloud專案 ID。
  2. 指令會以 YAML 格式輸出 IAM 政策,顯示目前的角色繫結和成員。

設定 IAM 政策

如要更新 Lakehouse Iceberg 資料表的 IAM 政策,請使用 gcloud biglake iceberg tables set-iam-policy 指令。這項指令會使用本機 JSON 或 YAML 檔案,其中包含您要套用的政策。

  1. 以 JSON 或 YAML 格式建立本機政策檔案。政策檔案必須包含繫結和 etagetag 值提供開放式並行控制,可防止覆寫變更。如要取得目前的 etag,請先執行 get-iam-policy 指令。

    以下範例顯示名為 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. 如要設定 IAM 政策,請執行下列指令:

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

    更改下列內容:

    • TABLE_NAME:目標 Lakehouse Iceberg 資料表的名稱。
    • POLICY_FILE:本機政策檔案的路徑。
    • CATALOG_NAME:Apache Iceberg REST 目錄端點的名稱。
    • NAMESPACE_NAME:目錄中的命名空間名稱。
    • PROJECT_ID:您的 Google Cloud 專案 ID。

後續步驟