Azure Synapse Analytics を使用してデータ レイクハウスをセキュリティで保護する

Azure Synapse Analytics
Azure Data Lake Storage
Azure Virtual Network
Power BI

この記事では、Azure Synapse を使用して安全なデータ レイクハウス ソリューションをビルドすることに関する設計プロセス、原則、テクノロジの選択について説明します。 セキュリティに関する考慮事項と主要な技術的な決定事項に重点を置きます。

Apache®、Apache Spark®、および炎のロゴは、Apache Software Foundation の米国およびその他の国における登録商標です。 これらのマークを使用することが、Apache Software Foundation による保証を意味するものではありません。

Architecture

次の図は、データ レイクハウスのソリューションのアーキテクチャを示します。 このアーキテクチャは、セキュリティ上の脅威を軽減するために、サービス間の相互作用をコントロールするように設計されています。 ソリューションは、機能とセキュリティの要件によって異なります。

Diagram that shows the detailed architecture.

このアーキテクチャの Visio ファイルをダウンロードします。

データフロー

次の図は、ソリューションのデータフローを示します。

Diagram that shows the data flow in the solution.

  1. データ ソースからデータ ランディング ゾーン (Azure Blob Storage か、Azure Files により提供されるファイル共有) にデータがアップロードされます。 このデータは、バッチ アップローダー プログラムまたはシステムによってアップロードされます。 Azure Event Hubs の Capture フィーチャーを使用して、ストリーミング データがキャプチャされて Blob Storage に保存されます。 データ ソースは複数の場合もあります。 たとえば、数種類のファクトリから操作データをアップロードできます。 Blob Storage やファイル共有などのストレージ リソースへのアクセスをセキュリティで保護することについては、「BLOB ストレージのセキュリティに関する推奨事項」と「Azure Files のデプロイの計画」を参照してください。
  2. データ ファイルが着信すると、Azure Data Factory がトリガーされて、データが処理され、コア データ ゾーン内のデータ レイクに保存されます。 Azure Data Lake 内のコア データ ゾーンにデータをアップロードすると、データ流出から保護されます。
  3. Azure Data Lake には、さまざまなソースから取得された生データが保存されます。 このデータは、ファイアウォール規則と仮想ネットワークによって保護されます。 パブリック インターネットからの接続の試行がすべてブロックされます。
  4. データ レイクにデータが着信した時点で Azure Synapse パイプラインがトリガーされるか、時間指定トリガーによってデータ処理ジョブが実行されます。 Azure Synapse での Apache Spark がアクティブになり、Spark ジョブまたはノートブックが実行されます。 また、データ レイクハウス内のデータ プロセス フローが調整されます。 Azure Synapse パイプラインで、データがブロンズ ゾーンからシルバー ゾーンに変換されてからゴールド ゾーンに変換されます。
  5. Spark ジョブまたはノートブックで、データ処理ジョブが実行されます。 Spark でデータ キュレーションまたは機械学習トレーニング ジョブも実行できます。 ゴールド ゾーン内の構造化データは、Delta Lake 形式で保存されます。
  6. サーバーレス SQL プールで、Delta Lake で保存されたデータを使用する外部テーブルが作成されます。 サーバーレス SQL プールは、強力で効率的な SQL クエリ エンジンを提供しており、旧来の SQL ユーザー アカウントまたは Microsoft Entra ユーザー アカウントをサポートできます。
  7. Power BI がサーバーレス SQL プールに接続してデータを視覚化します。 データ レイクハウス内のデータを使用して、レポートまたはダッシュボードが作成されます。
  8. データ アナリストまたはデータ科学者は、Azure Synapse Studio にログインして、次のことができます。
    • データをさらに補正する。
    • 分析してビジネス分析情報を取得する。
    • 機械学習モデルをトレーニングする。
  9. ビジネス アプリケーションが、サーバーレス SQL プールに接続し、そのデータを使用して他のビジネス操作要件をサポートします。
  10. Azure Pipelines で、ソリューションのビルド、テスト、デプロイが自動的に行われる CI/CD プロセスが実行されます。 これは、デプロイ プロセス中の人の介入を最小限に抑えるように設計されています。

Components

このデータ レイクハウス ソリューションの主要なコンポーネントは次のとおりです。

代替

  • リアルタイムのデータ処理が必要な場合は、データ ランディング ゾーン上に個々のファイルを保存する代わりに、Apache 構造化ストリーミングを使用してデータ ストリームを Event Hubs から受信して処理できます。
  • データに複雑な構造体があり、複雑な SQL クエリが必要な場合は、サーバーレス SQL プールではなく専用 SQL プールに保存することを検討してください。
  • データに多数の階層データ構造 (大きな JSON 構造体など) が含まれている場合は、Azure Synapse Data Explorer 内に保存することもできます。

シナリオの詳細

Azure Synapse Analytics は、エンタープライズ データ ウェアハウス、リアルタイム データ分析、パイプライン、時系列データ処理、機械学習、データ ガバナンスをサポートする汎用性の高いデータ プラットフォームです。 これらの機能をサポートするために、次のような数種類のテクノロジが統合されています。

  • エンタープライズ データ ウェアハウス
  • サーバーレス SQL プール
  • Apache Spark
  • Pipelines
  • Data Explorer
  • 機械学習機能
  • Purview 統合データ ガバナンス

Diagram that shows Azure Synapse Analytics and its components, capabilities, and applications.

これらの機能により多くの可能性が広がりますが、安全に使用するために、多くの技術的な選択を行って、セキュリティで保護されたインフラストラクチャを構成します。

この記事では、Azure Synapse を使用して安全なデータ レイクハウス ソリューションをビルドすることに関する設計プロセス、原則、テクノロジの選択について説明します。 セキュリティに関する考慮事項と主要な技術的な決定事項に重点を置きます。 このソリューションでは、次の Azure サービスを使用します。

目標は、エンタープライズでの使用向けに安全でコスト効率の高いデータ レイクハウス プラットフォームをビルドし、複数のテクノロジをシームレスかつ安全に連携させるためのガイダンスを提供することです。

考えられるユース ケース

データ レイクハウスは、データ レイクの省コスト、拡大縮小、柔軟性のフィーチャーと、データ ウェアハウスのデータやトランザクションの管理機能を結合した最新のデータ管理アーキテクチャです。 データ レイクハウスは、膨大な量のデータを処理し、ビジネス インテリジェンスと機械学習のシナリオをサポートすることができます。 また、さまざまなデータ構造やデータ ソースからのデータを処理することもできます。 詳しくは、「レイクハウス Databricks とは」をご覧ください。

この記事で説明するソリューションの一般的なユース ケースを次に示します。

  • モノのインターネット (IoT) の利用統計情報の解析
  • スマート ファクトリの自動化 (製造業用)
  • 消費者の活動と行動の追跡 (小売業用)
  • セキュリティ インシデントとイベントの管理
  • アプリケーション ログとアプリケーション ビヘイビアーのモニター
  • 半構造化データの処理とビジネス解析

概要設計

このソリューションでは、アーキテクチャでのセキュリティの設計と実装の実践に重点を置いています。 データ レイクハウス パターンの実装に使用される主要なサービスには、サーバーレス SQL プール、Azure Synapse での Apache Spark、Azure Synapse パイプライン、Data Lake Storage、Power BI があります。

ソリューション設計アーキテクチャの概略図を次に示します。

Diagram that shows high-level data lakehouse solution design architecture.

セキュリティの焦点の選択

Threat Modeling Tool を使用してセキュリティの設計が開始されました。 このツールは、次の点で役立ちました。

  • 潜在的なリスクについてシステムの利害関係者と通信する。
  • システム内の信頼境界を定義する。

脅威モデリングの結果に基づいて、次のセキュリティの区分が最優先事項にされました。

  • ID およびアクセスの制御
  • ネットワーク保護
  • DevOps セキュリティ

これらの最優先事項により特定された主要なセキュリティ上のリスクを軽減してシステムを保護するように、セキュリティのフィーチャーやインフラストラクチャの変更が設計されました。

検査して考慮する必要があることの詳細については、次を参照してください。

ネットワークと資産の保護計画

クラウド導入フレームワークの主要なセキュリティ原則の 1 つにゼロ トラストの原則があります。この原則では、コンポーネントまたはシステムに関するセキュリティを設計する際に、組織内のその他のリソースが侵害されることを想定して、攻撃者がアクセスを拡大するリスクを軽減します。

脅威モデリングの結果に基づいて、このソリューションではゼロ トラストのマイクロセグメント化デプロイの推奨事項を採用し、複数のセキュリティ境界を定義します。 データ資産や重要なコンポーネントを保護するためにセキュリティ境界の実装に使用される主要なテクノロジは、Azure Virtual NetworkAzure Synapse でのデータ流出の防止です。

Azure Synapse は数種類のテクノロジで構成されているため、次のことを行う必要があります。

  • プロジェクトで使用される Synapse と関連サービスのコンポーネントを特定する

    Azure Synapse は、多種多様なデータ処理のニーズに対応できる汎用性の高いデータ プラットフォームです。 まず、プロジェクトで使用する Azure Synapse 内のコンポーネントを決定して、これらのコンポーネントを保護する方法を計画できるようにする必要があります。 また、これらの Azure Synapse コンポーネントと通信するその他のサービスも決定する必要があります。

    データ レイクハウス アーキテクチャ内の主要なコンポーネントは次のとおりです。

    • Azure Synapse サーバーレス SQL
    • Azure Synapse での Apache Spark
    • Azure Synapse パイプライン
    • Data Lake Storage
    • Azure DevOps
  • コンポーネント間の正当な通信ビヘイビアーを定義する

    コンポーネント間で許可される通信ビヘイビアーを定義する必要があります。 たとえば、Spark エンジンと専用の SQL インスタンスとの間で直接通信するか、それとも Azure Synapse Data Integration パイプラインや Data Lake Storage などのプロキシを介して通信するかを定義します。

    ゼロ トラストの原則に基づいて、相互作用の必要がビジネス上ない場合には、通信をブロックします。 たとえば、不明なテナント内の Spark エンジンが直接 Data Lake Storage と通信できないようにブロックします。

  • 定義した通信ビヘイビアーを実施するための適切なセキュリティ ソリューションを選択する

    Azure では、定義したサービス通信ビヘイビアーを実施できるセキュリティ テクノロジが複数あります。 たとえば、Data Lake Storage で、IP アドレス許可リストを使用してデータ レイクへのアクセスをコントロールすることもできますが、どの仮想ネットワーク、Azure サービス、リソース インスタンスを許可するか選択することもできます。 保護方法が異なると、提供されるセキュリティ保護も異なります。 ビジネス上のニーズと環境の制限事項に基づいて選択します。 このソリューションで使用される構成については、次のセクションで説明します。

  • 重要なリソースに対する脅威の検出と高度な防御を実装する

    重要なリソースの場合、脅威の検出と高度な防御を実装することをお勧めします。 このサービスは脅威を特定してアラートをトリガーするのに役立つので、システムからユーザーにセキュリティ違反について通知できます。

ネットワークと資産の保護を向上させるには、次の手法を検討してください。

  • データ パイプラインに関するセキュリティ ゾーンを提供するために境界ネットワークをデプロイする

    データ パイプライン ワークロードで外部データやデータ ランディング ゾーンへのアクセスが必要な場合は、境界ネットワークを実装し、抽出、変換、読み込み (ETL) パイプライを使用して分離することをお勧めします。

  • すべてのストレージ アカウントについて Defender for Cloud を有効にする

    Defender for Cloud は、ストレージ アカウントへの異常で有害な可能性のあるアクセスまたは悪用の試行を検出すると、セキュリティ アラートをトリガーします。 詳細については、「Azure Defender for Storage を構成する」を参照してください。

  • 悪意のある削除や構成変更を防ぐために、ストレージ アカウントをロックする

    詳細については、「Azure Resource Manager のロックをストレージ アカウントに適用する」を参照してください。

ネットワークと資産が保護されるアーキテクチャ

次の表では、このソリューション用に選択された、定義済みの通信ビヘイビアーとセキュリティ テクノロジについて説明します。 「ネットワークと資産の保護計画」で説明されている方法に基づいて選択されました。

ソース (クライアント) ターゲット (サービス) 動作 構成 Notes
インターネット Data Lake Storage すべて拒否する ファイアウォール規則 - 既定値は拒否 既定値: 'Deny' ファイアウォール規則 - 既定値は拒否
Azure Synapse パイプライン/Spark Data Lake Storage 許可 (インスタンス) 仮想ネットワーク - マネージド プライベート エンドポイント (Data Lake Storage)
Synapse SQL Data Lake Storage 許可 (インスタンス) ファイアウォール規則 - リソース インスタンス (Synapse SQL) Synapse SQL がマネージド ID を使用して Data Lake Storage にアクセスする必要があります
Azure Pipelines エージェント Data Lake Storage 許可 (インスタンス) ファイアウォール規則 - 選択した仮想ネットワーク
サービス エンドポイント - Storage
統合テスト用
バイパス: 'AzureServices' (ファイアウォール規則)
インターネット Synapse ワークスペース すべて拒否する ファイアウォール規則
Azure Pipelines エージェント Synapse ワークスペース 許可 (インスタンス) 仮想ネットワーク - プライベート エンドポイント 3 つのプライベート エンドポイント (Dev、サーバーレス SQL、専用 SQL) が必要
Synapse マネージド仮想ネットワーク インターネットまたは未承認の Azure テナント すべて拒否する 仮想ネットワーク - Synapse データ流出防止
Synapse パイプライン/Spark Key Vault 許可 (インスタンス) 仮想ネットワーク - マネージド プライベート エンドポイント (Key Vault) 既定値: 'Deny'
Azure Pipelines エージェント Key Vault 許可 (インスタンス) ファイアウォール規則 - 選択した仮想ネットワーク
* サービス エンドポイント - Key Vault
バイパス: 'AzureServices' (ファイアウォール規則)
Azure Functions Synapse サーバーレス SQL 許可 (インスタンス) 仮想ネットワーク - プライベート エンドポイント (Synapse サーバーレス SQL)
Synapse パイプライン/Spark Azure Monitor 許可 (インスタンス) 仮想ネットワーク - プライベート エンドポイント (Azure Monitor)

たとえば、このプランでは次の作業を行うこともできます。

  • マネージド仮想ネットワークを使用して Azure Synapse ワークスペースを作成する。
  • Azure Synapse ワークスペースでのデータ流出の防止を使用して、Azure Synapse ワークスペースからのからのデータ エグレスをセキュリティで保護する。
  • Azure Synapse ワークスペースに対して承認された Microsoft Entra テナントのリストを管理する。
  • 選択した仮想ネットワークからストレージ アカウントへのトラフィックを許可し、このネットワークのみアクセスし、公衆ネットワーク アクセスを無効にするように、ネットワーク規則を構成する。
  • マネージド プライベート エンドポイントを使用して、Azure Synapse で管理されている仮想ネットワークをデータ レイクに接続する。
  • リソース インスタンスを使用して、Azure Synapse SQL をデータ レイクに安全に接続する。

考慮事項

これらの考慮事項は、ワークロードの品質向上に使用できる一連の基本原則である Azure Well-Architected Framework の要素を組み込んでいます。 詳細については、「Microsoft Azure Well-Architected Framework」を参照してください。

セキュリティ

Well-Architected フレームワークのセキュリティの重要な要素については、「セキュリティ」を参照してください。

ID とアクセスの制御

システムには複数のコンポーネントがあります。 各コンポーネントに必要な ID およびアクセス管理 (IAM) の構成は異なります。 効率的なユーザー エクスペリエンスを実現するために、これらの構成が共同作業する必要があります。 したがって、ID とアクセスの制御を実装する際に、次の設計ガイダンスが使用されます。

  • さまざまなアクセスの制御レイヤーに対して ID ソリューションを選択する

    • システムには 4 種類の ID ソリューションがあります。
      • SQL アカウント (SQL Server)
      • サービス プリンシパル (Microsoft Entra ID)
      • マネージド ID (Microsoft Entra ID)
      • ユーザー アカウント (Microsoft Entra ID)
    • システムには 4 種類のアクセスの制御レイヤーがあります。
      • アプリケーション アクセス レイヤー: AP の役割に関する ID ソリューションを選択します。
      • Azure Synapse DB/テーブル アクセス レイヤー: データベース内の役割に関する ID ソリューションを選択します。
      • Azure Synapse 外部リソース アクセス レイヤー: 外部リソースにアクセスするための ID ソリューションを選択します。
      • Data Lake Storage アクセス レイヤー: ストレージ内のファイル アクセスをコントロールするための ID ソリューションを選択します。

    Diagram that shows Azure Synapse Analytics and its capabilities.

    アクセスの制御レイヤーごとに適切な ID ソリューションを選択することは、ID とアクセスの制御の重要な部分です。 Azure Well-Architected フレームワークのセキュリティ設計原則では、ネイティブのコントロールを使用してシンプルにするよう心掛けることが勧められています。 したがって、このソリューションでは、アプリケーションと Azure Synapse DB のアクセス レイヤーでエンド ユーザーの Microsoft Entra ユーザー アカウントを使用します。 これを使用すると、ネイティブのファーストパーティ IAM ソリューションを活用して、きめ細かなアクセスの制御が提供されます。 Azure Synapse 外部リソース アクセス レイヤーと Data Lake アクセス レイヤーでは、Azure Synapse のマネージド ID を使用して認可プロセスを簡略化します。

  • 最小限の特権アクセスを検討する

    ゼロ トラストの基本原則では、重要なリソースへの Just-In-Time で必要最小限なアクセスを提供することが提案されています。 将来セキュリティを強化するには、Microsoft Entra Privileged Identity Management (PIM) に関するページを参照してください。

  • リンク サービスを保護する

    リンク サービスは、サービスが外部リソースに接続するのに必要な接続情報を定義します。 リンク サービスの構成をセキュリティで保護することは重要です。

セキュリティ スコアの評価と脅威の検出

このソリューションでは、システムのセキュリティ状態を把握するために、Microsoft Defender for Cloud を使用して、インフラストラクチャのセキュリティを評価してセキュリティの問題を検出します。 Microsoft Defender for Cloud は、セキュリティ体制管理と脅威保護のためのツールです。 Azure やハイブリッドなどのクラウド プラットフォームで実行されているワークロードを保護できます。

Diagram that shows Azure Synapse and its capabilities.

初めて Azure portal で Defender for Cloud ページにアクセスする際に、すべての Azure サブスクリプションに対して Defender for Cloud の無料プランが自動的に有効になります。 Cloud のセキュリティ態勢の評価と提案を入手するために、このプランを有効にすることを強くお勧めします。 Microsoft Defender for Cloud で、サブスクリプションに関するセキュリティ スコアといくつかのセキュリティ強化のガイダンスが提供されます。

Diagram that shows Azure Synapse and its capabilities.

ソリューションに高度なセキュリティ管理機能と脅威の検出機能 (不審なアクティビティの検出やアラートなど) が必要な場合は、リソースごとに個別にクラウド ワークロード保護を有効にすることができます。

コストの最適化

Well-Architected フレームワークのコスト最適化の重要な要素については、「コストの最適化」を参照してください。

データ レイクハウス ソリューションの主要なベネフィットは、省コストとスケーラブルなアーキテクチャです。 ソリューション内のほとんどのコンポーネントでは、消費ベースの課金が使用され、自動スケーリングが行われます。 このソリューションでは、すべてのデータが Data Lake Storage に保存されます。 クエリを実行したりデータを処理したりしない場合は、データの保存料金のみ発生します。

このソリューションの価格は、次の主要なリソースの使用量に応じて異なります。

  • Azure Synapse サーバーレス SQL: 消費ベースの課金が使用され、使用した分だけお支払いいただけます。
  • Azure Synapse での Apache Spark: 消費ベースの課金が使用され、使用した分だけお支払いいただけます。
  • Azure Synapse パイプライン: 消費ベースの課金が使用され、使用した分だけお支払いいただけます。
  • Azure Data Lake: 消費ベースの課金が使用され、使用した分だけお支払いいただけます。
  • Power BI: コストは、購入したライセンスに基づきます。
  • Private Link: 消費ベースの課金が使用され、使用した分だけお支払いいただけます。

セキュリティ保護のソリューションによって、コスト モードが異なります。 ビジネス上のニーズとソリューションのコストに基づいてセキュリティ ソリューションを選択する必要があります。

ソリューションのコストを見積もるには、Azure 料金計算ツールを使用できます。

オペレーショナル エクセレンス

Well-Architected フレームワークのオペレーショナル エクセレンスの重要な要素については、「オペレーショナル エクセレンス」を参照してください。

CI/CD サービス用に仮想ネットワーク対応のセルフホステッド パイプライン エージェントを使用する

既定の Azure DevOps パイプライン エージェントは、非常に広い IP アドレスの範囲を使用するため、仮想ネットワーク通信をサポートしていません。 このソリューションでは、DevOps プロセスとソリューション内のその他のサービスとの間で円滑に通信できるように、仮想ネットワーク内に Azure DevOps セルフホステッド エージェントを実装します。 CI/CD サービスを実行するための接続文字列とシークレットは、独立したキー コンテナーに保存されます。 デプロイ プロセス中に、セルフホステッド エージェントはコア データ ゾーン内のこのキー コンテナーにアクセスして、リソース構成とシークレットを更新します。 詳細については、「別々のキー コンテナーを使用する」を参照してください。 またこのソリューションでは、VM スケール セットを使用して、ワークロードに基づいて DevOps エンジンにより自動的にスケールアップされたりスケールダウンされたりできるようにします。

Diagram that shows Azure Synapse Analytics and its capabilities.

CI/CD パイプライン内にインフラストラクチャ セキュリティ スキャンとセキュリティ スモーク テストを実装する

コードとしてのインフラストラクチャ (IaC) ファイルをスキャンするためのスタティック分析ツールは、セキュリティやコンプライアンスの問題につながる可能性がある構成の誤りを検出して防止するのに役立ちます。 セキュリティ スモーク テストを使用すると、不可欠なシステム セキュリティ対策が正常に有効にされ、デプロイの失敗から保護されます。

  • スタティック分析ツールを使用して、コードとしてのインフラストラクチャ (IaC) テンプレートをスキャンし、セキュリティやコンプライアンスの問題につながる可能性がある構成の誤りを検出して防止してください。 CheckovTerrascan などのツールを使用して、セキュリティ上のリスクを検出して防止してください。
  • CD パイプラインでデプロイの失敗が正しく処理されていることを確認してください。 セキュリティ フィーチャーに関連するデプロイの失敗は、重大な失敗として扱う必要があります。 パイプラインで、失敗したアクションが再試行されるか、デプロイが保持される必要があります。
  • セキュリティ スモーク テストを実行して、デプロイ パイプライン内のセキュリティ対策を検証してください。 デプロイ済みリソースの構成状態の検証や重要なセキュリティ シナリオを調べるテスト ケースなどのセキュリティ スモーク テストで、セキュリティ設計が期待どおりに動作していることを確認できます。

共同作成者

この記事は、Microsoft によって保守されています。 当初の寄稿者は以下のとおりです。

プリンシパル作成者:

  • Herman Wu | シニア ソフトウェア エンジニア

その他の共同作成者:

  • Ian Chen | プリンシパル ソフトウェア エンジニアのリーダー
  • Jose Contreras | プリンシパル ソフトウェア エンジニア
  • Roy Chan | プリンシパル ソフトウェア エンジニアのマネージャー

次のステップ