Azure Synapse Analytics のセキュリティに関するホワイト ペーパー: アクセス制御

注意

この記事は、"Azure Synapse Analytics のセキュリティに関するホワイト ペーパー" シリーズの記事に含まれています。 このシリーズの概要については、Azure Synapse Analytics のセキュリティに関するホワイト ペーパーを参照してください。

データをモデル化して格納する方法に応じて、データ ガバナンスとアクセス制御では、開発者とセキュリティ管理者が、堅牢なセキュリティ基盤を実装するために、さまざまなアプローチや手法の組み合わせを使用する必要があります。

Azure Synapse は、どのユーザーがどのデータにアクセスできるかを制御するためのさまざまな機能をサポートしています。 これらの機能は、次を含む一連の高度なアクセス制御機能に基づいて構築されています。

オブジェクト レベルのセキュリティ

専用の SQL プール内のすべてのオブジェクトに、プリンシパルに付与可能なアクセス許可が関連付けられています。 ユーザーとサービス アカウントのコンテキストでは、これが、個々のテーブル、ビュー、ストアド プロシージャ、および関数をセキュリティで保護する方法です。 SELECT などのオブジェクトのアクセス許可は、ユーザー アカウント (SQL ログイン、Microsoft Entra ユーザーまたはグループ) とデータベース ロールに付与できます。これは、データベース管理者に柔軟性を提供します。 さらに、テーブルとビューに付与されたアクセス許可は、列レベルのセキュリティ、行レベルのセキュリティ、動的データ マスクなどのその他のアクセス制御メカニズム (後述) と組み合わせることができます。

Azure Synapse では、すべてのアクセス許可がデータベース レベルのユーザーとロールに付与されます。 加えて、ワークスペース レベルで組み込み Synapse 管理者 RBAC ロールが付与されたユーザーには、自動的に、すべての専用の SQL プールへの完全なアクセス権が付与されます。

Azure Synapse での SQL テーブルの保護に加えて、専用の SQL プール (以前の SQL DW)、サーバーレス SQL プール、および Spark テーブルもセキュリティで保護できます。 既定で、ワークスペースに接続されているデータ レイクのストレージ BLOB データ共同作成者ロールに割り当てられたユーザーは、ノートブックでコードを対話的に実行するときに、すべての Spark 作成テーブルに対する READ、WRITE、および EXECUTE のアクセス許可が付与されます。 これは、Microsoft Entra パススルーと呼ばれており、ワークスペースに接続されているすべてのデータ レイクに適用されます。 ただし、同じユーザーがパイプラインを介して同じノートブックを実行する場合は、ワークスペースのマネージド サービス ID (MSI) が認証に使用されます。 そのため、パイプラインがワークスペース MSI を正常に実行するには、アクセス先のデータ レイクのストレージ BLOB データ共同作成者ロールにも属している必要があります。

行レベルのセキュリティ

行レベルのセキュリティを使用すると、セキュリティ管理者は、クエリを実行しているユーザー (またはプロセス) のプロファイルに基づいて、特定のテーブル行へのきめ細かいアクセスを確立して制御できます。 プロファイルまたはユーザーの特性で、グループ メンバーシップまたは実行コンテキストが言及される場合があります。 行レベルのセキュリティは、ユーザーが同じテーブルからデータを照会する際の無許可アクセスを阻止するのに役立ちますが、さまざまなデータのサブセットを表示する必要があります。

注意

行レベルのセキュリティは、Azure Synapse および専用の SQL プール (以前の SQL DW) でサポートされますが、Apache Spark プールとサーバーレス SQL プールではサポートされません。

列レベルのセキュリティ

列レベルのセキュリティを使用すると、セキュリティ管理者は、テーブル内の機密性の高い列にアクセス可能な人物を制限するアクセス許可を設定できます。 これは、データベース レベルで設定され、データ モデルまたはアプリケーション層の設計を変更することなく実装できます。

Note

列レベルのセキュリティは、Azure Synapse、サーバーレス SQL プール ビュー、専用 SQL プール (旧称 SQL DW) でサポートされていますが、サーバーレス SQL プールの外部テーブルと Apache Spark プールではサポートされていません。 サーバーレス SQL プールの外部テーブルの場合は、外部テーブルの上にビューを作成することで、回避できます。

動的データ マスク

動的データ マスクを使用すると、セキュリティ管理者は、非特権ユーザーに対する読み取り時にマスクすることで、機密データの露出を制限できます。 管理者が照合時にデータを表示する方法を決定できるようにすることで、機密データへの不正アクセスを防ぐのに役立ちます。 認証されたユーザーの ID と SQL プール内のグループ割り当てに基づいて、クエリはマスクされたデータまたはマスクされていないデータのどちらかを返します。 マスクは、データにテーブルから直接アクセスするか、ビューまたはストアド プロシージャを使用してアクセスするかに関係なく、常に適用されます。

注意

動的データ マスクは、Azure Synapse および専用の SQL プール (以前の SQL DW) でサポートされますが、Apache Spark プールとサーバーレス SQL プールではサポートされません。

Synapse ロールベースのアクセス制御

Azure Synapse には、Synapse Studio のさまざまな側面を管理する、Synapse ロールベースのアクセス制御 (RBAC) ロールも含まれています。 これらの組み込みロールを利用して、ユーザー、グループ、またはその他のセキュリティ プリンシパルにアクセス許可を割り当て、次のユーザーを管理します。

  • コード成果物を発行し、発行されたコード成果物を一覧表示したり、それにアクセスしたりする。
  • Apache Spark プールや統合ランタイムに対してコードを実行する。
  • 資格情報で保護されたリンク (データ) サービスにアクセスする。
  • ジョブの実行を監視またはキャンセルし、ジョブの出力や実行ログを確認する。

次の手順

このホワイト ペーパー シリーズの次の記事では、認証について説明します。