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