次の方法で共有


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 プールではサポートされていません。

列レベルのセキュリティ

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

列レベルのセキュリティは、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 プールと統合ランタイムでコードを実行します。
  • 資格情報によって保護されているリンクされた (データ) サービスにアクセスします。
  • ジョブの実行を監視または取り消し、ジョブの出力と実行ログを確認します。

次のステップ

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