ステップ4: AzureのAPI統合をポータルのプロキシサービスにリンクする¶
When an external function is called, Snowflake sends an HTTP POST command to the proxy service (i.e. Azure API Management service), which relays the POST to the remote service (i.e. Azure Function). A service principal in your Azure AD tenant allows Snowflake to authenticate with Azure AD when calling the API Management service in your tenant.
このトピックでは、前のステップで作成した API 統合をAzure API Managementサービスにリンクするサービスプリンシパルを作成するための手順について説明します。手順は、Azure Portalを使用するか ARM テンプレートを使用するかにかかわりなく同じです。
For more information about service principals, see the Microsoft documentation: Applications and service principals.
このトピックの内容:
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テナンシーへのアクセス権がすでに付与されている場合は、Snowflakeウェブサイトが表示されます。このサイトは、 SNOWFLAKE THE CLOUD DATA PLATFORM のように表示されます。表示されたら、残りのタスクをスキップして、 ステップ5: SnowflakeでAzure用の外部関数を作成する に進みます。
Snowflakeにまだアクセスが許可されていない場合は、Microsoft Permissions requested ページが表示され、引き続き次のタスクに進む必要があります。
Accept ボタンをクリックします。これにより、Snowflakeアカウント用に作成されたAzureサービスプリンシパルは、 AD テナント内の任意のリソースでアクセストークンを取得できます。
この時点で、Snowflakeを表示するサービスプリンシパルをテナントに作成し終えました。
ただし、セキュリティを強化するために、許可されたクライアントだけがAzure Functionにアクセスできるようにする必要があります。アクセス制御の手順は、作成プロセスの最後のステップで提供します。