ステップ4: AzureのAPI統合をポータルのプロキシサービスにリンクする¶
外部関数が呼び出されると、SnowflakeはHTTP POSTコマンドをプロキシサービス(つまり、Azure Function)に送信し、プロキシサービスはPOSTをリモートサービス(つまり、Azure API Managementサービス)に中継します。Azure AD テナントのサービスプリンシパルは、テナントでAPI Managementサービスを呼び出すときに、SnowflakeがAzure ADで認証できるようにします。
このトピックでは、前の手順で作成したAPI統合をAzure API Managementサービスにリンクするサービスプリンシパルを作成する手順について説明します。Azure PortalまたはARMテンプレートのどちらを使用しているかに関係なく、手順は同じです。
サービスプリンシパルの詳細については、Microsoftoのドキュメント: アプリオブジェクトとサービスプリンシパル をご参照ください。
このトピックの内容:
API統合のアプリ名と同意URLを取得する¶
サービスプリンシパルを作成する前に、API統合に関するいくつかの情報が必要です。
Snowflakeのウェブインターフェイスにログインします(まだログインしていない場合)。
前のステップで作成した API 統合の DESCRIBE INTEGRATION コマンドを実行します。
describe api integration <integration_name>;
DESCRIBE の結果、
追跡ワークシートの対応するフィールドのアプリ名を(AZURE_MULTI_TENANT_APP_NAME列から)記録します。
追跡ワークシートの対応するフィールドの同意URLを(AZURE_CONSENT_URL列からの)記録します。
URLは、次のようになります。
https://login.microsoftonline.com/<tenant_id>/oauth2/authorize?client_id=<snowflake_application_id>&response_type=code
SnowflakeにAzure Tenancyへのアクセスを許可します。¶
SnowflakeにAzure Tenancyへのアクセスを許可するには、上記で記録したAZURE_CONSENT_URLが必要です。
URLをブラウザに貼り付けます。ブラウザーでこのURLにアクセスすると、Azureはテナント内のSnowflakeを表すサービスプリンシパルを自動的に作成します。
Snowflakeのサービスプリンシパルを作成する必要があるのは、テナントごとに1回だけであることに注意してください。Snowflakeにアクセスが許可された後は、再度アクセスを許可する必要はありません。言い換えると、Azure用に作成する新しい外部関数ごとに再度アクセスを許可する必要はありません。
SnowflakeがすでにAzure Tenancyへのアクセスを許可されている場合は、Snowflakeウェブサイトが表示されます。このサイトは、 SNOWFLAKE THE CLOUD DATA PLATFORM のように表示されます。この後、残りのタスクをスキップして ステップ5: SnowflakeでAzure用の外部関数を作成する に進むことができます。
Snowflakeにまだアクセスが許可されていない場合は、Microsoft Permissions requested ページが表示され、引き続き次のタスクに進む必要があります。
Accept ボタンをクリックします。これにより、Snowflakeアカウント用に作成されたAzureサービスプリンシパルは、 AD テナント内の任意のリソースでアクセストークンを取得できます。
この時点で、Snowflakeを表示するサービスプリンシパルをテナントに作成し終えました。
ただし、セキュリティを強化するには、承認されたクライアントのみがAzure Functionにアクセスできるようにする必要があります。アクセスを制御するための手順は、作成プロセスの最終ステップで提供されます。