認証情報のベンディングを有効にする

既存の Apache Iceberg REST カタログで認証情報ベンディング モードを有効にすると、 Lakehouse for Apache Icebergは、承認されたクエリエンジンまたはワークロードに有効期間の短いスコープダウンされたストレージ トークンをベンディングするように構成されます。

Lakehouse ランタイム カタログ内では、この認証方法により、ユーザーまたはクエリ ランタイムが基盤となる Cloud Storage バケットに対する直接的な読み取り / 書き込み権限を保持する必要がなくなります。

始める前に

  1. Lakehouse ランタイム カタログについてを読んで、Lakehouse ランタイム カタログの仕組みとサービスの制限事項を理解してください。
  2. アカウントにログインします。 Google Cloud を初めて使用する場合は、 アカウントを作成して、実際のシナリオで Google プロダクトのパフォーマンスを評価してください。 Google Cloud新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。

    In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

    Verify that billing is enabled for your Google Cloud project.

    Enable the BigLake API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

    In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

    Verify that billing is enabled for your Google Cloud project.

    Enable the BigLake API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

必要なロール

認証情報ベンディングを有効にするために必要な権限を取得するには、次の IAM ロールを付与するよう管理者に依頼してください。

  • すべて:
  • 自動プロビジョニングされた Apache Iceberg REST カタログ サービス アカウント: Storage オブジェクト ユーザー (roles/storage.objectUser) 関連するすべての Cloud Storage バケットに対する。認証情報ベンディングを有効にしたら、関連するすべてのストレージ バケットに対する Storage オブジェクト ユーザー ロール(roles/storage.objectUser)を、カタログの自動プロビジョニングされた Apache Iceberg REST カタログ サービス アカウントに明示的に付与します。

ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

必要な権限は、カスタム ロールや他の事前定義 ロールから取得することもできます。

認証情報ベンディングを有効にする

Apache Iceberg REST カタログの認証方法が エンドユーザー認証情報に設定されている場合は、認証情報ベンディング モードに切り替えることができます。

コンソール

  1. コンソールで、[Lakehouse] ページを開きます。 Google Cloud

[Lakehouse] に移動

  1. 更新するカタログの行で、 [その他のカタログ アクション > 認証情報を編集] を選択します。

  2. 認証ダイアログで [認証情報ベンディング モード] を選択します。 自動プロビジョニングされた Apache Iceberg REST カタログ サービス アカウントには、関連するすべての Cloud Storage バケットに対する明示的なストレージ オブジェクト ユーザー ロール(roles/storage.objectUser)が必要です。デフォルトでは、アクセス権はありません。このロールがないと、ベンディングされた認証情報のスコープが不足し、ストレージの書き込みを実行できません。

  3. [保存] を選択します。

      Your catalog is updated and the **Catalog details** page opens.
    
  4. [認証方法] で [バケットの権限を設定] を選択します。

  5. ダイアログで [確認] を選択します。

これにより、カタログのサービス アカウントに、関連するすべてのストレージ バケットに対する Storage オブジェクト ユーザー ロール(roles/storage.objectUser)が付与されていることが確認されます。

gcloud

gcloud biglake iceberg catalogs update コマンドを使用します。

gcloud biglake iceberg catalogs update \
    CATALOG_NAME \
    --project PROJECT_ID \
    --credential-mode vended-credentials

次のように置き換えます。

  • CATALOG_NAME: カタログの名前。Lakehouse カタログの場合、これはカスタム カタログ名です。Cloud Storage バケット カタログの場合、これは REST カタログで使用される Cloud Storage バケット ID と一致します。 この名前は、BigQuery からこれらのテーブルをクエリするときにカタログ識別子としても使用されます
  • PROJECT_ID: 実際の Google Cloud プロジェクト ID。

    認証情報ベンディングを有効にしたら、関連するすべてのストレージ バケットに対するストレージ オブジェクト ユーザー ロール(roles/storage.objectUser)を、カタログの自動プロビジョニングされた Apache Iceberg REST カタログ サービス アカウントに明示的に付与します。

REST

REST API を使用して認証情報ベンディング モードを有効にするには、PATCH リクエスト を UpdateIcebergCatalog エンドポイントに行います。

PATCH /iceberg/v1/restcatalog/extensions/projects/PROJECT_ID/catalogs/CATALOG_ID?updateMask=icebergCatalog.credential_mode

リクエストの本文には、credential_modeVENDED_CREDENTIALS に設定された IcebergCatalog JSON ペイロードを含める必要があります。

次のように置き換えます。

  • PROJECT_ID: 実際の Google Cloud プロジェクト ID。
  • CATALOG_ID: Lakehouse ランタイム カタログの ID。