Synapse ワークスペース (プレビュー) のセキュリティ保護Secure your Synapse workspace (preview)

この記事では、ロールとアクセス制御を使用して、アクティビティとデータへのアクセスを制御する方法について説明します。This article will teach you how to use roles and access control to control activities and access to data. 次の手順に従うと、Azure Synapse Analytics でのアクセス制御が簡単になります。By following these instructions, access control in Azure Synapse Analytics is simplified. 3 つのセキュリティ グループのいずれかでユーザーを追加するか、削除する必要があるだけです。You only need to add and remove users to one of three security groups.

概要Overview

Synapse ワークスペース (プレビュー) をセキュリティ保護するには、次の項目を構成するパターンに従います。To secure a Synapse workspace (preview), you'll follow a pattern of configuring the following items:

  • Azure ロール (所有者、共同作成者などの組み込みのロールなど)Azure roles (such as the built-in ones like Owner, Contributor, etc.)
  • Synapse ロール - これらのロールは Synapse に固有であり、Azure ロールに基づいていません。Synapse roles – these roles are unique to Synapse and aren't based on Azure roles. 次の 3 つのロールがあります。There are three of these roles:
    • Synapse ワークスペース管理者Synapse workspace admin
    • Synapse SQL 管理者Synapse SQL admin
    • Apache Spark for Azure Synapse Analytics 管理者Apache Spark for Azure Synapse Analytics admin
  • Azure Data Lake Storage Gen 2 (ADLSGEN2) でのデータのアクセス制御。Access control for data in Azure Data Lake Storage Gen 2 (ADLSGEN2).
  • Synapse SQL および Spark データベースのアクセス制御Access control for Synapse SQL and Spark databases

Synapse ワークスペースをセキュリティ保護する手順Steps to secure a Synapse workspace

このドキュメントでは、手順を簡素化するために、標準名を使用しています。This document uses standard names to simplify the instructions. それらを任意の名前に置き換えてください。Replace them with any names of your choice.

設定Setting 値の例Example value 説明Description
Synapse ワークスペースSynapse workspace WS1WS1 Synapse ワークスペースに使用される名前。The name that the Synapse workspace will have.
ADLSGEN2 アカウントADLSGEN2 account STG1STG1 ワークスペースで使用する ADLS アカウント。The ADLS account to use with your workspace.
コンテナーContainer CNT1CNT1 ワークスペースで既定で使用される STG1 内のコンテナー。The container in STG1 that the workspace will use by default.
Active Directory テナントActive directory tenant contosocontoso Active Directory テナント名。the active directory tenant name.

手順 1: セキュリティ グループを設定するSTEP 1: Set up security groups

ワークスペースに 3 つのセキュリティ グループを作成して設定します。Create and populate three security groups for your workspace:

  • WS1_WSAdmins - ワークスペースを完全に制御する必要があるユーザー用WS1_WSAdmins – for users who need complete control over the workspace
  • WS1_SparkAdmins - ワークスペースの Spark の側面を完全に制御する必要があるユーザー用WS1_SparkAdmins – for those users who need complete control over the Spark aspects of the workspace
  • WS1_SQLAdmins - ワークスペースの SQL の側面を完全に制御する必要があるユーザー用WS1_SQLAdmins – for users who need complete control over the SQL aspects of the workspace
  • WS1_WSAdminsWS1_SQLAdmins に追加するAdd WS1_WSAdmins to WS1_SQLAdmins
  • WS1_WSAdminsWS1_SparkAdmins に追加するAdd WS1_WSAdmins to WS1_SparkAdmins

手順 2: Data Lake Storage Gen2 アカウントを準備するSTEP 2: Prepare your Data Lake Storage Gen2 account

ストレージに関する次の情報を特定します。Identify this information about your storage:

  • ワークスペースに使用する ADLSGEN2 アカウント。The ADLSGEN2 account to use for your workspace. このドキュメントでは、それを STG1 と呼びます。This document calls it STG1. STG1 は、ワークスペースの "プライマリ" ストレージ アカウントと見なされます。STG1 is considered the "primary" storage account for your workspace.

  • Synapse ワークスペースで既定で使用される WS1 内のコンテナー。The container inside WS1 that your Synapse workspace will use by default. このドキュメントでは、それを CNT1 と呼びます。This document calls it CNT1. このコンテナーは、次のために使用されます。This container is used for:

    • Spark テーブル用のバッキング データ ファイルの格納Storing the backing data files for Spark tables
    • Spark ジョブの実行ログExecution logs for Spark jobs
  • Azure portal を使用して、セキュリティ グループに、CNT1 に対する次のロールを割り当てますUsing the Azure portal, assign the security groups the following roles on CNT1

    • WS1_WSAdminsStorage BLOB データ共同作成者ロールを割り当てますAssign WS1_WSAdmins to the Storage Blob Data Contributor role
    • WS1_SparkAdminsStorage BLOB データ共同作成者ロールを割り当てます。Assign WS1_SparkAdmins to the Storage Blob Data Contributor role
    • WS1_SQLAdminsStorage BLOB データ共同作成者ロールを割り当てますAssign WS1_SQLAdmins to the Storage Blob Data Contributor role

手順 3:Synapse ワークスペースを作成して構成するSTEP 3: Create and configure your Synapse Workspace

Azure portal で、Synapse ワークスペースを作成します。In the Azure portal, create a Synapse workspace:

  • ワークスペースに WS1 という名前を指定しますName the workspace WS1
  • ストレージ アカウントとして STG1 を選択しますChoose STG1 for the Storage account
  • "Filesystem" として使用されているコンテナーに CNT1 を選択します。Choose CNT1 for the container that is being used as the "filesystem".
  • Synapse Studio で WS1 を開きますOpen WS1 in Synapse Studio
  • [管理] > [アクセス制御] を選択して、セキュリティ グループに次の Synapse ロールを割り当てます。Select Manage > Access Control assign the security groups to the following Synapse roles.
    • WS1_WSAdmins に Synapse ワークスペース管理者を割り当てますAssign WS1_WSAdmins to Synapse Workspace admins
    • WS1_SparkAdmins に Synapse Spark 管理者を割り当てますAssign WS1_SparkAdmins to Synapse Spark admins
    • WS1_SQLAdmins に Synapse SQL 管理者を割り当てますAssign WS1_SQLAdmins to Synapse SQL admins

手順 4:Synapse ワークスペースで使用するための Data Lake Storage Gen2 の構成STEP 4: Configuring Data Lake Storage Gen2 for use by Synapse workspace

Synapse ワークスペースでは、パイプラインを実行してシステム タスクを実行できるように、STG1 と CNT1 にアクセスする必要があります。The Synapse workspace needs access to STG1 and CNT1 so it can run pipelines and perform system tasks.

  • Azure ポータルを開きますOpen the Azure portal
  • STG1 を見つけますLocate STG1
  • CNT1 に移動しますNavigate to CNT1
  • 確実に、WS1 の MSI (マネージド サービス ID) に、CNT1 に対するストレージ BLOB データ共同作成者ロールが割り当てられるようにしますEnsure that the MSI (Managed Service Identity) for WS1 is assigned to the Storage Blob Data Contributor role on CNT1
    • 割り当てられていることが確認できない場合は、割り当てます。If you don't see it assigned, assign it.
    • MSI には、ワークスペースと同じ名前が付けられます。The MSI has the same name as the workspace. このケースでは、"WS1" になります。In this case, it would be "WS1".

手順 5:SQL プールの管理者アクセスを構成するSTEP 5: Configure admin access for SQL pools

  • Azure ポータルを開きますOpen the Azure portal
  • WS1 に移動しますNavigate to WS1
  • [設定] で、 [SQL Active Directory 管理者] をクリックしますUnder Settings, click SQL Active Directory admin
  • [管理者の設定] をクリックし、WS1_SQLAdmins を選択しますClick Set admin and choose WS1_SQLAdmins

手順 6:アクセス制御の保守STEP 6: Maintaining access control

構成が完了しました。The configuration is finished.

これで、ユーザーのアクセスを管理するために、3 つのセキュリティ グループに対してユーザーを追加および削除できるようになります。Now, to manage access for users, you can add and remove users to the three security groups.

ユーザーに Synapse ロールを手動で割り当てることもできますが、そうすると、構成の整合性が取れなくなります。Although you can manually assign users to Synapse roles, if you do, it won't configure things consistently. 代わりに、セキュリティ グループに対してユーザーを追加または削除するだけにしてください。Instead, only add or remove users to the security groups.

手順 7:ロールでのユーザーのアクセスを確認するSTEP 7: Verify access for users in the roles

各ロールのユーザーは、次の手順を実行する必要があります。Users in each role need to complete the following steps:

手順Step ワークスペース管理者Workspace admins Spark 管理者Spark admins SQL 管理者SQL admins
11 Parquet ファイルを CNT1 にアップロードするUpload a parquet file into CNT1 YESYES YESYES YESYES
22 必要に応じて SQL を使用して Parquet ファイルを読み取るRead the parquet file using SQL on-demand YESYES NONO YESYES
33 Spark プールを作成するCreate a Spark pool YES [1]YES [1] YES [1]YES [1] NONO
44 Notebook を使用して Parquet ファイルを読み取るReads the parquet file with a Notebook YESYES YESYES NONO
55 Notebook からパイプラインを作成し、すぐに実行するパイプラインをトリガーするCreate a pipeline from the Notebook and Trigger the pipeline to run now YESYES NONO NONO
66 SQL プールを作成し、"SELECT 1" などの SQL スクリプトを実行するCreate a SQL pool and run a SQL script such as "SELECT 1" YES [1]YES [1] NONO YES[1]YES[1]

注意

[1] SQL または Spark プールを作成するために、ユーザーは Synapse ワークスペースに対して少なくとも共同作成者ロールを持っている必要があります。[1] To create SQL or Spark pools the user must have at least Contributor role on the Synapse workspace.

ヒント

  • ロールによっては、一部の手順が意図的に許可されません。Some steps will deliberately not be allowed depending on the role.
  • セキュリティが完全に構成されていない場合、一部のタスクが失敗する可能性があることに注意してください。Keep in mind that some tasks may fail if the security was not fully configured. これらのタスクについては、表に記載されています。These tasks are noted in the table.

手順 8:ネットワークのセキュリティSTEP 8: Network Security

ワークスペース ファイアウォール、仮想ネットワーク、および Private Link を構成します。To configure the workspace firewall, virtual network, and Private Link.

手順 9:CompletionSTEP 9: Completion

これで、ワークスペースが完全に構成され、セキュリティ保護されました。Your workspace is now fully configured and secured.

ロールと Synapse Studio の相互作用How roles interact with Synapse Studio

Synapse Studio は、ユーザー ロールに基づいて動作が異なります。Synapse Studio will behave differently based on user roles. 適切なアクセス権を付与するロールにユーザーが割り当てられていない場合、一部の項目が非表示または無効にされることがあります。Some items may be hidden or disabled if a user isn't assigned to roles that give the appropriate access. 次の表に、Synapse Studio が受ける影響をまとめています。The following table summarizes the effect on Synapse Studio.

タスクTask ワークスペース管理者Workspace Admins Spark 管理者Spark admins SQL 管理者SQL admins
Synapse Studio を開くOpen Synapse Studio YESYES YESYES YESYES
ホーム ハブの表示View Home hub YESYES YESYES YESYES
データ ハブの表示View Data Hub YESYES YESYES YESYES
データ ハブ/リンクされた ADLS Gen2 アカウントとコンテナーを参照Data Hub / See linked ADLS Gen2 accounts and containers YES [1]YES [1] YES[1]YES[1] YES[1]YES[1]
データ ハブ/データベースを参照Data Hub / See Databases YESYES YESYES YESYES
データ ハブ/データベース内のオブジェクトを参照Data Hub / See objects in databases YESYES YESYES YESYES
データ ハブ/SQL プール内のデータを参照Data Hub / Access data in SQL pool databases YESYES NONO YESYES
データ ハブ/SQL オンデマンド データベース内のデータへのアクセスData Hub / Access data in SQL on-demand databases YES [2]YES [2] NONO YES [2]YES [2]
データ ハブ/Spark データベース内のデータへのアクセスData Hub / Access data in Spark databases YES [2]YES [2] YES [2]YES [2] YES [2]YES [2]
開発ハブの使用Use the Develop hub YESYES YESYES YESYES
開発ハブ/SQL スクリプトの作成Develop Hub / author SQL Scripts YESYES NONO YESYES
開発ハブ/Spark ジョブ定義の作成Develop Hub / author Spark Job Definitions YESYES YESYES NONO
開発ハブ/ノートブックの作成Develop Hub / author Notebooks YESYES YESYES NONO
開発ハブ/データフローの作成Develop Hub / author Dataflows YESYES NONO NONO
調整ハブの使用Use the Orchestrate hub YESYES YESYES YESYES
調整ハブ/パイプラインの使用Orchestrate hub / use Pipelines YESYES NONO NONO
管理ハブの使用Use the Manage Hub YESYES YESYES YESYES
管理ハブ/SQL プールManage Hub / SQL pools YESYES NONO YESYES
管理ハブ/Spark プールManage Hub / Spark pools YESYES YESYES NONO
管理ハブ/トリガーManage Hub / Triggers YESYES NONO NONO
管理ハブ/リンクされたサービスManage Hub / Linked services YESYES YESYES YESYES
管理ハブ/アクセス制御 (ユーザーに Synapse ワークスペース ロールを割り当てる)Manage Hub / Access Control (assign users to Synapse workspace roles) YESYES NONO NONO
管理ハブ/統合ランタイムManage Hub / Integration runtimes YESYES YESYES YESYES
監視ハブを使用するUse the Monitor Hub YESYES YESYES YESYES
監視ハブ/オーケストレーション/パイプラインの実行Monitor Hub / Orchestration / Pipeline runs YESYES NONO NONO
監視ハブ/オーケストレーション/トリガーの実行Monitor Hub / Orchestration / Trigger runs YESYES NONO NONO
監視ハブ/オーケストレーション/統合ランタイムMonitor Hub / Orchestration / Integration runtimes YESYES YESYES YESYES
監視ハブ/アクティビティ/Spark アプリケーションMonitor Hub / Activities / Spark applications YESYES YESYES NONO
監視ハブ/アクティビティ/SQL 要求Monitor Hub / Activities / SQL requests YESYES NONO YESYES
監視ハブ/アクティビティ/Spark プールMonitor Hub / Activities / Spark pools YESYES YESYES NONO
監視ハブ/トリガーMonitor Hub / Triggers YESYES NONO NONO
管理ハブ/リンクされたサービスManage Hub / Linked services YESYES YESYES YESYES
管理ハブ/アクセス制御 (ユーザーに Synapse ワークスペース ロールを割り当てる)Manage Hub / Access Control (assign users to Synapse workspace roles) YESYES NONO NONO
管理ハブ/統合ランタイムManage Hub / Integration runtimes YESYES YESYES YESYES

注意

[1] コンテナー内のデータへのアクセスは ADLS Gen2 のアクセス制御に依存します。[1] Access to data in containers depends on the access control in ADLS Gen2.
[2] SQL OD テーブルと Spark テーブルでは ADLS Gen2 にデータが格納され、アクセスには ADLS Gen2 に対する適切なアクセス許可が必要です。[2] SQL OD tables and Spark tables store their data in ADLS Gen2 and access requires the appropriate permissions on ADLS Gen2.

次のステップNext steps

Synapse ワークスペースを作成するCreate a Synapse Workspace