ステップ4: AzureのAPI統合をポータルのプロキシサービスにリンクする¶
外部関数が呼び出されると、Snowflakeは HTTP POST コマンドをプロキシサービス(つまり、Azure API Managementサービス)に送信し、プロキシサービスは POST をリモートサービス(つまり、Azure Functions)に中継します。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テナンシーへのアクセス権がすでに付与されている場合は、Snowflakeウェブサイトが表示されます。このサイトは、 SNOWFLAKE THE CLOUD DATA PLATFORM のように表示されます。表示されたら、残りのタスクをスキップして、 ステップ5: SnowflakeでAzure用の外部関数を作成する に進みます。
Snowflakeにまだアクセスが許可されていない場合は、Microsoft Permissions requested ページが表示され、引き続き次のタスクに進む必要があります。
Accept ボタンをクリックします。これにより、Snowflakeアカウント用に作成されたAzureサービスプリンシパルは、 AD テナント内の任意のリソースでアクセストークンを取得できます。
この時点で、Snowflakeを表示するサービスプリンシパルをテナントに作成し終えました。
ただし、セキュリティを強化するために、許可されたクライアントだけがAzure Functionにアクセスできるようにする必要があります。アクセス制御の手順は、作成プロセスの最後のステップで提供します。