ワークスペースのマネージド ID にアクセス許可を付与する
この記事では、Azure Synapse ワークスペース内のマネージド ID にアクセス許可を付与する方法について説明します。 その後、アクセス許可によって、Azure portal を経由したワークスペース内の専用 SQL プールや Azure Data Lake Storage Gen2 アカウントへのアクセスが許可されます。
Note
このドキュメントの残りの部分では、このワークスペース マネージド ID をマネージド ID と呼びます。
マネージド ID に Data Lake Storage アカウントへのアクセス許可を付与する
Azure Synapse ワークスペースを作成するには、Data Lake Storage Gen2 アカウントが必要です。 Azure Synapse ワークスペースで Spark プールを正常に起動するには、Azure Synapse マネージド ID に、このストレージ アカウントに対する "ストレージ BLOB データ共同作成者" ロールが必要です。 Azure Synapse のパイプライン オーケストレーションでも、このロールが役立ちます。
ワークスペースの作成中にマネージド ID にアクセス許可を付与する
ユーザーが Azure portal を使用して Azure Synapse ワークスペースを作成した後、Azure Synapse では、マネージド ID に "ストレージ BLOB データ共同作成者" ロールを付与しようとします。 Data Lake Storage アカウントの詳細は、[基本] タブで指定します。
[アカウント名] と [ファイル システム名] で Data Lake Storage Gen2 アカウントとファイル システムを選択します。
ワークスペース作成者が Data Lake Storage アカウントの "所有者" でもある場合、Azure Synapse では、マネージド ID に "ストレージ BLOB データ共同作成者" ロールを割り当てます。 次のメッセージが表示されます。
ワークスペース作成者が Data Lake Storage アカウントの所有者でない場合、Azure Synapse では、マネージド ID に "ストレージ BLOB データ共同作成者" ロールを割り当てません。 次のメッセージは、ワークスペース作成者に、マネージド ID に "ストレージ BLOB データ共同作成者" ロールを付与するための十分なアクセス許可がないことを通知します。
マネージド ID に "ストレージ BLOB データ共同作成者" が割り当てられていない限り、Spark プールは作成できません。
ワークスペースの作成後にマネージド ID にアクセス許可を付与する
ワークスペースの作成中に、マネージド ID に "ストレージ BLOB データ共同作成者" を割り当てない場合は、Data Lake Storage Gen2 アカウントの "所有者" が ID にそのロールを手動で割り当てます。 次の手順は、手動の割り当てを実行するのに役立ちます。
手順 1: Data Lake Storage Gen2 アカウントに移動する
Azure portal で、Data Lake Storage Gen2 ストレージ アカウントを開き、左側のナビゲーションから [コンテナー] を選択します。 "ストレージ BLOB データ共同作成者" ロールは、コンテナーまたはファイル システム レベルでのみ割り当てる必要があります。
手順 2:コンテナーを選択する
マネージド ID には、ワークスペースの作成時に指定したコンテナー (ファイルシステム) へのデータ アクセスが必要です。 このコンテナーまたはファイル システムは Azure portal で見つけることができます。 Azure portal で Azure Synapse ワークスペースを開き、左側のナビゲーションから [概要] タブを選択します。
それと同じコンテナーまたはファイルシステムを選択して、ストレージ BLOB データ共同作成者ロールをマネージド ID に付与します。
手順 3: アクセス制御を開き、ロールの割り当てを追加するする
リソース メニューから [アクセス制御 (IAM)] を選択します。
[追加]>[ロールの割り当ての追加] を選択して、[ロールの割り当ての追加] ページを開きます。
次のロールを割り当てます。 詳細な手順については、「Azure portal を使用して Azure ロールを割り当てる」を参照してください。
設定 値 Role ストレージ BLOB データ共同作成者 アクセスの割り当て先 マネージド ID メンバー マネージド ID 名 Note
マネージド ID の名前は、ワークスペース名でもあります。
[保存] を選択して、ロールの割り当てを追加します。
手順 4: ストレージ BLOB データ共同作成者ロールがマネージド ID に割り当てられていることを確認する
[アクセス制御 (IAM)] を選択してから、[ロールの割り当て] を選択します。
[ストレージ BLOB データ共同作成者] セクションの下に、ストレージ BLOB データ共同作成者 ロールが割り当てられているマネージド ID が表示されているのを確認できます。
ストレージ BLOB データ共同作成者ロールに代わるもの
ストレージ BLOB データ共同作成者ロールを自分に付与する代わりに、ファイルのサブセットに対してさらに細かいアクセス許可を付与することもできます。
このコンテナー内の一部のデータにアクセスする必要があるすべてのユーザーには、ルート (コンテナー) までのすべての親フォルダーに対する実行アクセス許可も必要です。
詳細については、「Azure Storage Explorer を使用して Azure Data Lake Storage での ACL を管理する」を参照してください。
Note
コンテナー レベルの実行アクセス許可は、Data Lake Storage Gen2 内で設定する必要があります。 フォルダーに対するアクセス許可は、Azure Synapse 内で設定できます。
この例で data2.csv にクエリを実行するには、次のアクセス許可が必要です。
- コンテナーに対する実行アクセス許可
- folder1 に対する実行アクセス許可
- data2.csv に対する読み取りアクセス許可
アクセスしたいデータに対する完全なアクセス許可を持つ管理者ユーザーで、Azure Synapse にサインインします。
データ ペインでファイルを右クリックして、[アクセスの管理] を選びます。
[読み取り] アクセス許可以上を選びます。 ユーザーの UPN またはオブジェクト ID を入力します (例:
user@contoso.com
)。 [追加] を選択します。このユーザーに読み取りアクセス許可を付与します。
注意
ゲスト ユーザーの場合は、Azure Synapse で直接行うことはできないので、Azure Data Lake でこのステップを直接行う必要があります。