ステップ3: Snowflakeで GCP 用の API 統合を作成する

このトピックでは、プロキシサービス(つまり、Google Cloud API Gateway)と連携するためにSnowflakeで API 統合オブジェクトを作成する手順について説明します。

このトピックの内容:

API統合オブジェクトの作成

CREATE API INTEGRATION コマンドを使用して、API統合オブジェクトを作成します。

  1. Snowflakeのウェブインターフェイスにログインします(まだログインしていない場合)。

  2. インターフェイスの Worksheets Worksheet tab ページに移動します。

  3. USE ROLEコマンドを実行して、ACCOUNTADMINロールまたはCREATE INTEGRATION権限を持つロールを使用します。例:

    use role has_accountadmin_privileges;
    
  4. CREATE API INTEGRATIONステートメントを入力します。ステートメントは次のようになります。

    create or replace api integration <integration_name>
        api_provider = google_api_gateway
        google_audience = '<google_audience_claim>'
        api_allowed_prefixes = ('<url>')
        enabled = true;
    

    ステートメントで以下を確認します:

    1. <統合名> を一意の統合名に置き換えます(たとえば、 my_api_integration_name)。名前は、 オブジェクト識別子 のルールに従う必要があります。

      さらに、追跡ワークシートの「API Integration Name」フィールドに統合名を記録します。作成プロセスの後半でCREATE EXTERNAL FUNCTIONコマンドを実行するときに、名前が必要になります。

    2. google_audience の場合、 <Google オーディエンスクレーム> を追跡ワークシートの「Managed Service Identifier」フィールドの値に置き換えます。

      認証中に、SnowflakeはJWT(JSONウェブトークン)をGoogleに渡します。JWTには、Snowflakeが google_audience フィールドの値に設定する「aud」(「オーディエンス」)クレームが含まれています。

      Googleでの認証の詳細については、Googleサービスアカウント 認証のドキュメント をご参照ください。

    3. api_allowed_prefixes の場合、 <url> を追跡ワークシートの「Gateway Base URL」フィールドの値に置き換えます。

      このフィールドでは、このAPI統合を適用できるURLsを制限できます。Gateway Base URLよりも制限の厳しい値を使用できます。

  5. まだ実行していない場合は、入力したCREATE API INTEGRATIONステートメントを実行します。

API統合のAPI_GCP_SERVICE_ACCOUNT情報を記録します

  1. DESCRIBE INTEGRATION コマンドを実行します。例:

    describe integration my_api_integration_name;
    
  2. 追跡ワークシートの「API_GCP_SERVICE_ACCOUNT」フィールドに API_GCP_SERVICE_ACCOUNT の値を記録します。