Azure Synapse ワークスペースのアクセス制御の概要
この記事では、Azure Synapse のコンピューティング リソースとデータへのアクセスを制御するために使用できるメカニズムについて概説します。
Azure Synapse は、次のものを統合する包括的で、かつきめ細かなアクセス制御システムを提供します。
- リソースを管理し、ストレージ内のデータにアクセスするための Azure ロール
- コードへのライブ アクセスと実行を管理するための Synapse ロール
- SQL プール内のデータへのデータ プレーン アクセスのための SQL ロール
- 継続的なインテグレーションとデプロイのサポートを含む、ソース コード管理のための Git アクセス許可
Azure Synapse ロールは、さまざまなスコープで適用できるアクセス許可のセットを提供します。 この細分性により、管理者、開発者、セキュリティ担当者、およびオペレーターに対して、コンピューティング リソースとデータへの適切なアクセス権を簡単に付与できます。
アクセス制御は、対象者の職務に合ったセキュリティ グループを使用することで簡素化できます。 アクセスを管理するには、適切なセキュリティ グループのユーザーを追加するか削除するだけで済みます。
アクセス制御の要素
Azure Synapse コンピューティング リソースの作成と管理
Azure ロールは、次のものの管理を制御するために使用されます。
- 専用 SQL プール
- Data Explorer プール
- Apache Spark プール
- 統合ランタイム
これらのリソースを "作成" するには、リソース グループの Azure 所有者または共同作成者である必要があります。 作成したリソースを "管理" するには、リソース グループまたは個々のリソースの Azure 所有者または共同作成者である必要があります。
所有者または共同作成者は、Azure Synapse ワークスペースの Microsoft Entra のみの認証を有効または無効にすることができます。 Microsoft Entra のみの認証の詳細については、「Microsoft Entra 認証を使用して Synapse SQL での認証を行う」を参照してください。
Azure Synapse でコードを開発して実行する
Synapse では、次の 2 つの開発モデルがサポートされています。
Synapse ライブ開発: Synapse Studio でコードを開発およびデバッグしてから、それを "発行" して保存および実行します。 Synapse サービスが、コードの編集と実行に関する信頼できるソースになります。 Synapse Studio を終了すると、発行されていない作業はすべて失われます。
Git 対応の開発: Synapse Studio でコードを開発およびデバッグし、Git リポジトリの作業ブランチに変更を "コミット" します。 1 つ以上のブランチからの作業はコラボレーション ブランチに統合されます。そしてそこからサービスに発行します。 Git リポジトリがコード編集に関する信頼できるソースとなり、サービスが実行に関する信頼できるソースとなります。 Synapse Studio を終了する前に、変更を Git リポジトリにコミットするか、サービスに発行する必要があります。 Git での Synapse Analytics の使用の詳細については、「Azure Synapse Analytics ワークスペースの継続的インテグレーションとデリバリー」を参照してください。
どちらの開発モデルでも、Synapse Studio にアクセスできるすべてのユーザーがコード成果物を作成できます。 ただし、サービスへの成果物の発行、発行された成果物の読み取り、Git への変更のコミット、コードの実行、資格情報で保護されているリンクされたデータへのアクセスを行うには、追加のアクセス許可が必要です。 Synapse で Git リポジトリの構成、設定の編集、切断を行うには、ユーザーに Synapse ワークスペースに対する Azure 共同作成者以上のロールが必要です。
Azure Synapse ロール
Azure Synapse ロールは、Synapse サービスへのアクセスを制御するために使用されます。 さまざまなロールを使用して次のことを実行できます。
- 発行されたコード成果物を一覧表示する
- コード成果物、リンク サービス、資格情報の定義を発行する
- Synapse コンピューティング リソースを使用するコードまたはパイプラインを実行する
- 資格情報によって保護されているリンクされたデータにアクセスするコードまたはパイプラインを実行する
- 発行されたコード成果物に関連付けられている出力を表示する
- コンピューティング リソースの状態を監視し、ランタイム ログを表示する
Azure Synapse ロールは、ワークスペース スコープまたはよりきめ細かいスコープで割り当てられます。これにより、特定の Azure Synapse リソースに付与されるアクセス許可を制限できます。
Git アクセス許可
Git モードでの Git 対応の開発の場合は、コード成果物 (リンク サービスと資格情報の定義を含む) を読み取るために、Synapse ユーザーまたは Synapse RBAC (ロールベースのアクセス制御) ロールに加えて Git アクセス許可が必要です。 Git モードでコード成果物への変更をコミットするには、Git アクセス許可と Synapse 成果物発行元ロールが必要です。
SQL 内のデータへのアクセス
専用およびサーバーレス SQL プールの場合、データ プレーン アクセスは SQL アクセス許可を使用して制御されます。
ワークスペースの作成者は、そのワークスペースにおける Active Directory 管理者として割り当てられます。 作成後、このロールは、Azure portal で別のユーザーまたはセキュリティ グループに割り当てることができます。
サーバーレス SQL プール: Synapse 管理者には、サーバーレス SQL プール Built-in に対する
db_owner
(DBO) アクセス許可が付与されます。 サーバーレス SQL プールへのアクセス権を他のユーザーに付与するには、Synapse 管理者が各サーバーレス プールで SQL スクリプトを実行する必要があります。専用 SQL プール: Synapse 管理者は、専用 SQL プール内のデータに対するフル アクセス権と、他のユーザーにアクセス権を付与する権限を持っています。 Synapse 管理者は、データベースの削除以外の構成およびメンテナンスのアクティビティを専用プールで実行することもできます。 Active Directory 管理者のアクセス許可は、ワークスペースとワークスペース MSI の作成者に付与されます。 それ以外、専用 SQL プールにアクセスするためのアクセス許可は自動的には付与されません。 専用 SQL プールへのアクセス権を他のユーザーまたはグループに付与するには、Active Directory 管理者または Synapse 管理者が各専用 SQL プールに対して SQL スクリプトを実行する必要があります。
SQL プール内の SQL アクセス許可を付与するための SQL スクリプトの例については、「Azure Synapse ワークスペースのアクセス制御を設定する方法」を参照してください。
Data Explorer プール内のデータにアクセスする
Data Explorer プールの場合、データ プレーン アクセスは Data Explorer アクセス許可を使用して制御されます。 Synapse 管理者には、Data Explorer プールに対する All Database admin
アクセス許可が付与されます。 Synapse 管理者は、他のユーザーまたはグループに Data Explorer プールへのアクセス権を付与するために、「セキュリティ ロール管理」を参照してください。 データ プレーン アクセスの詳細については、「アクセス制御の概要」を参照してください。
ストレージ内のシステム マネージド データにアクセスする
サーバーレス SQL プールと Apache Spark テーブルでは、ワークスペースに関連付けられた Azure Data Lake Storage Gen2 コンテナーにデータが格納されます。 ユーザーがインストールした Apache Spark ライブラリも、同じストレージ アカウントで管理されます。 これらのユース ケースを有効にするには、ユーザーとワークスペース MSI に、このワークスペースの Azure Data Lake Storage コンテナーへのストレージ BLOB データ共同作成者のアクセス権を付与する必要があります。
ベスト プラクティスとしてセキュリティ グループを使用する
アクセス制御の管理を簡素化するために、セキュリティ グループを使用して、個人およびグループにロールを割り当てることができます。 セキュリティ グループは、Synapse リソースまたは成果物にアクセスする必要がある、組織内のペルソナまたは職務をミラーリングするために作成できます。 これらのペルソナベースのセキュリティ グループには、1 つ以上の Azure ロール、Synapse ロール、SQL アクセス許可、または Git アクセス許可を割り当てることができます。 適切に選ばれたセキュリティ グループを使用すると、適切なセキュリティ グループにユーザーを追加することで、ユーザーに対して必要なアクセス許可を簡単に割り当てることができます。
Note
セキュリティ グループを使用してアクセスを管理する場合は、変更が有効になるまでに、Microsoft Entra ID によって導入される追加の待ち時間が発生します。
Synapse Studio でのアクセス制御の適用
Synapse Studio は、ユーザーのアクセス許可と現在のモードによって異なる方法で動作します。
- Synapse ライブ モード: Synapse Studio では、必要なアクセス許可がないと、ユーザーは発行されたコンテンツを表示したり、コンテンツを発行したり、その他のアクションを実行したりできません。 場合によっては、自分が使用または保存できないコード成果物の作成もできないことがあります。
- Git モード: 現在のブランチへの変更をコミットできる Git アクセス許可がある場合は、変更をライブ サービスに発行するためのアクセス許可 (Synapse 成果物発行元ロール) があれば、コミット アクションが許可されます。
場合によっては、発行またはコミットするためのアクセス許可がなくてもコード成果物を作成できます。 これにより、(必要な実行アクセス許可で) コードを実行できます。 一般的なタスクに必要なロールの詳細については、Azure Synapse で一般的なタスクを実行するために必要なロールに関する記事を参照してください。
Synapse Studio で機能が無効になっている場合は、必要なアクセス許可がヒントで示されます。 Synapse RBAC ロール ガイドを使用して、不足しているアクセス許可を提供するために必要なロールを検索できます。