チュートリアル:Snowflake を構成し、自動ユーザー プロビジョニングに対応させる

このチュートリアルでは、Snowflake に対するユーザーとグループのプロビジョニングおよびプロビジョニング解除を自動的に実行するように Microsoft Entra ID を構成するために、Snowflake と Microsoft Entra ID で実行する手順を示します。 このサービスが実行する内容、しくみ、よく寄せられる質問の重要な詳細については、Microsoft Entra ID での SaaS アプリ ユーザー プロビジョニングの自動化に関する記事を参照してください。

サポートされる機能

  • Snowflake でユーザーを作成する
  • アクセスが不要になったユーザーを Snowflake で削除する
  • Microsoft Entra ID と Snowflake の間でユーザー属性の同期を維持します。
  • Snowflake でグループとグループ メンバーシップをプロビジョニングする
  • Snowflake へのシングル サインオンを許可する (推奨)

前提条件

このチュートリアルで説明するシナリオでは、次の前提条件目があることを前提としています。

手順 1:プロビジョニングのデプロイを計画する

  1. プロビジョニング サービスのしくみを確認します。
  2. プロビジョニングの対象となるユーザーを決定します。
  3. Microsoft Entra ID と Snowflake の間でマップするデータを決定します。

手順 2: Microsoft Entra ID を使ったプロビジョニングをサポートするように Snowflake を構成する

Microsoft Entra ID を使った自動ユーザー プロビジョニング用に Snowflake を構成する前に、Snowflake でクロスドメイン ID 管理システム (SCIM) プロビジョニングを有効にする必要があります。

  1. 管理者として Snowflake にサインインし、Snowflake ワークシート インターフェイスまたは SnowSQL から次を実行します。

    use role accountadmin;
    
     create role if not exists aad_provisioner;
     grant create user on account to role aad_provisioner;
     grant create role on account to role aad_provisioner;
    grant role aad_provisioner to role accountadmin;
     create or replace security integration aad_provisioning
         type = scim
         scim_client = 'azure'
         run_as_role = 'AAD_PROVISIONER';
     select system$generate_scim_access_token('AAD_PROVISIONING');
    
  2. ACCOUNTADMIN ロールを使用します。

    SCIM アクセス トークンが強調表示された、Snowflake UI のワークシートのスクリーンショット。

  3. カスタム ロール AAD_PROVISIONER を作成します。 Microsoft Entra ID によって作成された Snowflake のすべてのユーザーとロールは、スコープが絞り込まれた AAD_PROVISIONER ロールによって所有されます。

    カスタム ロールを示すスクリーンショット。

  4. ACCOUNTADMIN ロールで、AAD_PROVISIONER カスタム ロールを使用してセキュリティ統合を作成します。

    セキュリティ統合を示すスクリーンショット。

  5. 認証トークンを作成してクリップボードにコピーし、後で使用できるように安全に保存します。 SCIM REST API 要求ごとにこのトークンを使用し、要求ヘッダーに配置します。 アクセス トークンは 6 か月後に期限切れになり、このステートメントで新しいアクセス トークンを生成できます。

    トークンの生成を示すスクリーンショット。

Microsoft Entra アプリケーション ギャラリーから Snowflake を追加して、Snowflake へのプロビジョニングの管理を開始します。 シングル サインオン (SSO) のために Snowflake を以前に設定している場合は、同じアプリケーションを使用できます。 ただし、最初に統合をテストするときは、別のアプリを作成することをお勧めします。 ギャラリーからアプリケーションを追加する方法の詳細をご覧ください

手順 4:プロビジョニングの対象となるユーザーを定義する

Microsoft Entra プロビジョニング サービスを使うと、アプリケーションへの割り当てや、ユーザーまたはグループの属性に基づいてプロビジョニングされるユーザーのスコープを設定できます。 割り当てに基づいてアプリにプロビジョニングされるユーザーのスコープを設定する場合は、こちらの手順を使用してユーザーとグループをアプリケーションに割り当てることができます。 ユーザーまたはグループの属性のみに基づいてプロビジョニングされるユーザーのスコープを設定する場合は、スコープ フィルターを使用できます。

次のヒントに留意してください。

  • Snowflake にユーザーとグループを割り当てるときは、既定のアクセス以外のロールを選択する必要があります。 既定のアクセス ロールを持つユーザーは、プロビジョニングから除外され、プロビジョニング ログで実質的に資格がないとマークされます。 アプリケーションで使用できる唯一のロールが既定のアクセス ロールである場合は、アプリケーション マニフェストを更新してロールを追加することができます。

  • 追加のロールが必要な場合は、アプリケーション マニフェストを更新して新しいロールを追加できます。

手順 5:Snowflake への自動ユーザー プロビジョニングを構成する

このセクションでは、Snowflake でユーザーとグループを作成、更新、無効化するように Microsoft Entra プロビジョニング サービスを構成する手順について説明します。 Microsoft Entra ID では、ユーザーとグループの割り当てに基づいて構成を行うことができます。

Microsoft Entra ID で Snowflake の自動ユーザー プロビジョニングを構成するには、次の操作を実行します。

  1. クラウド アプリケーション管理者以上として Microsoft Entra 管理センターにサインインします。

  2. [ID]>[アプリケーション]>[エンタープライズ アプリケーション] の順に移動します。

    [エンタープライズ アプリケーション] ペインのスクリーンショット。

  3. アプリケーションの一覧で、 [Snowflake] を選択します。

    アプリケーションの一覧を示すスクリーンショット。

  4. [プロビジョニング] タブを選択します。

    [プロビジョニング] オプションが強調表示された [管理] オプションのスクリーンショット。

  5. [プロビジョニング モード][自動] に設定します。

    [自動] オプションが強調表示された [プロビジョニング モード] ドロップダウン リストのスクリーンショット。

  6. [管理者資格情報] セクションの [テナント URL] ボックスと [シークレット トークン] ボックスに、先ほど取得した SCIM 2.0 ベース URL と認証トークンをそれぞれ入力します。

    注意

    Snowflake SCIM エンドポイントは、/scim/v2/ が追加された Snowflake アカウント URL で構成されます。 たとえば、Snowflake アカウント名が acme で、Snowflake アカウントが east-us-2 Azure リージョンにある場合、テナント URL の値は https://acme.east-us-2.azure.snowflakecomputing.com/scim/v2 になります。

    Microsoft Entra ID から Snowflake へ接続できることを確認するために、[テスト接続] を選びます。 接続に失敗した場合は、お使いの Snowflake アカウントに管理者アクセス許可があることを確認してから、もう一度試します。

    テナント URL およびシークレット トークンのボックスと、[テスト接続] ボタンを示すスクリーンショット。

  7. プロビジョニングのエラー通知を受け取るユーザーまたはグループのメール アドレスを [通知用メール] フィールドに入力し、 [エラーが発生したときにメール通知を送信します] チェック ボックスをオンにします。

    通知用メールのボックスを示すスクリーンショット。

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

  9. [マッピング] セクションで、[Synchronize Microsoft Entra users to Snowflake] (Microsoft Entra ユーザーを Snowflake に同期する) を選びます。

  10. [属性マッピング] セクションで、Microsoft Entra ID から Snowflake に同期されるユーザー属性を確認します。 [照合] プロパティとして選択されている属性は、更新処理で Snowflake のユーザー アカウントとの照合に使用されます。 [保存] ボタンをクリックして変更をコミットします。

    属性 Type
    active Boolean
    displayName String
    emails[type eq "work"].value String
    userName String
    name.givenName String
    name.familyName String
    externalId String

    注意

    Snowflake では、SCIM プロビジョニング中にカスタム拡張機能ユーザー属性がサポートされました。

    • DEFAULT_ROLE
    • DEFAULT_WAREHOUSE
    • DEFAULT_SECONDARY_ROLES
    • SNOWFLAKE NAME AND LOGIN_NAME FIELDS TO BE DIFFERENT

    Microsoft Entra SCIM ユーザーのプロビジョニングで Snowflake カスタム拡張機能属性を設定する方法についてはこちらで説明されています。

  11. [マッピング] セクションで、[Synchronize Microsoft Entra groups to Snowflake] (Microsoft Entra グループを Snowflake に同期する) を選びます。

  12. [属性マッピング] セクションで、Microsoft Entra ID から Snowflake に同期されるグループ属性を確認します。 [照合] プロパティとして選択されている属性は、更新処理で Snowflake のグループとの照合に使用されます。 [保存] ボタンをクリックして変更をコミットします。

    属性 Type
    displayName String
    members リファレンス
  13. スコープ フィルターを構成するには、スコープ フィルターのチュートリアルの手順を参照してください。

  14. Snowflake に対して Microsoft Entra プロビジョニング サービスを有効にするには、[設定] セクションで [プロビジョニングの状態][オン] に変更します。

    [プロビジョニングの状態] が [オン] に設定されていることを示すスクリーンショット。

  15. [設定] セクションの [スコープ] で目的の値を選択して、Snowflake にプロビジョニングするユーザーとグループを定義します。

    このオプションが使用できない場合は、 [管理者資格情報] で必要なフィールドを構成して、 [保存] を選択し、ページを最新の情報に更新します。

    プロビジョニングのスコープの選択肢を示すスクリーンショット。

  16. プロビジョニングの準備ができたら、 [保存] を選択します。

    プロビジョニング構成を保存するためのボタンのスクリーンショット。

この操作により、 [設定] セクションの [スコープ] で定義したすべてのユーザーとグループの初期同期が開始されます。 初期同期は、後続の同期よりも実行に時間がかかります。 Microsoft Entra プロビジョニング サービスが実行されている限り、後続の同期は約 40 分ごとに発生します。

手順 6:デプロイを監視する

プロビジョニングを構成したら、次のリソースを使用してデプロイを監視します。

  • プロビジョニング ログを使用して、正常にプロビジョニングされたユーザーと失敗したユーザーを特定します。
  • 進行状況バーを確認して、プロビジョニング サイクルの状態と完了までの時間を確認します。
  • プロビジョニング構成が異常な状態になったと考えられる場合、アプリケーションは検疫されます。 検疫状態の詳細をご覧ください

コネクタの制限事項

Snowflake で生成される SCIM トークンの有効期間は 6 か月です。 プロビジョニングの同期を引き続き機能させるには、有効期限が切れる前にこれらのトークンを更新する必要があることに注意してください。

トラブルシューティングのヒント

現在、Microsoft Entra プロビジョニング サービスは特定の IP 範囲で動作します。 必要に応じて、他の IP 範囲を制限し、これらの特定の IP 範囲をアプリケーションの許可リストに追加できます。 この手法により、Microsoft Entra プロビジョニング サービスからアプリケーションへのトラフィック フローが可能になります。

ログの変更

  • 2020 年 7 月 21 日: (アクティブな属性を使用して) すべてのユーザーに対して論理的な削除を有効化。
  • 2022 年 10 月 12 日: Snowflake SCIM 構成を更新しました。

その他のリソース

次のステップ