次の方法で共有


ワークスペースのマネージド 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 Gen2 アカウントの詳細の指定のスクリーンショット。

ワークスペース作成者が Data Lake Storage アカウントの "所有者" でもある場合、Azure Synapse では、マネージド ID に "ストレージ BLOB データ共同作成者" ロールを割り当てます。 次のメッセージが表示されます。

ストレージ BLOB データ共同作成者割り当て成功のスクリーンショット。

ワークスペース作成者が Data Lake Storage アカウントの所有者でない場合、Azure Synapse では、マネージド ID に "ストレージ BLOB データ共同作成者" ロールを割り当てません。 次のメッセージは、ワークスペース作成者に、マネージド ID に "ストレージ BLOB データ共同作成者" ロールを付与するための十分なアクセス許可がないことを通知します。

エラー ボックスが強調されている、ストレージ BLOB データ共同作成者割り当て失敗のスクリーンショット。

マネージド ID に "ストレージ BLOB データ共同作成者" が割り当てられていない限り、Spark プールは作成できません。

ワークスペースの作成後にマネージド ID にアクセス許可を付与する

ワークスペースの作成中に、マネージド ID に "ストレージ BLOB データ共同作成者" を割り当てない場合は、Data Lake Storage Gen2 アカウントの "所有者" が ID にそのロールを手動で割り当てます。 次の手順は、手動の割り当てを実行するのに役立ちます。

手順 1: Data Lake Storage Gen2 アカウントに移動する

Azure portal で、Data Lake Storage Gen2 ストレージ アカウントを開き、左側のナビゲーションから [コンテナー] を選択します。 "ストレージ BLOB データ共同作成者" ロールは、コンテナーまたはファイル システム レベルでのみ割り当てる必要があります。

Data Lake Storage Gen2 アカウントの [概要] を示す Azure portal のスクリーンショット。

手順 2:コンテナーを選択する

マネージド ID には、ワークスペースの作成時に指定したコンテナー (ファイルシステム) へのデータ アクセスが必要です。 このコンテナーまたはファイル システムは Azure portal で見つけることができます。 Azure portal で Azure Synapse ワークスペースを開き、左側のナビゲーションから [概要] タブを選択します。

Data Lake Storage Gen2 ファイルの名前 'contosocontainer' を示す Azure portal のスクリーンショット。

それと同じコンテナーまたはファイルシステムを選択して、ストレージ BLOB データ共同作成者ロールをマネージド ID に付与します。

選択する必要があるコンテナーまたはファイル システムを示すスクリーンショット。

手順 3: アクセス制御を開き、ロールの割り当てを追加するする

  1. リソース メニューから [アクセス制御 (IAM)] を選択します。

  2. [追加]>[ロールの割り当ての追加] を選択して、[ロールの割り当ての追加] ページを開きます。

  3. 次のロールを割り当てます。 詳細な手順については、「Azure portal を使用して Azure ロールを割り当てる」を参照してください。

    設定
    Role ストレージ BLOB データ共同作成者
    アクセスの割り当て先 マネージド ID
    メンバー マネージド ID 名

    Note

    マネージド ID の名前は、ワークスペース名でもあります。

    Azure portal での [ロールの割り当てを追加] ページのスクリーンショット。

  4. [保存] を選択して、ロールの割り当てを追加します。

手順 4: ストレージ BLOB データ共同作成者ロールがマネージド ID に割り当てられていることを確認する

[アクセス制御 (IAM)] を選択してから、[ロールの割り当て] を選択します。

ロール割り当ての検証に使われる、Azure portal の [ロールの割り当て] ボタンのスクリーンショット。

[ストレージ BLOB データ共同作成者] セクションの下に、ストレージ BLOB データ共同作成者 ロールが割り当てられているマネージド ID が表示されているのを確認できます。

Data Lake Storage Gen2 アカウントのコンテナーの選択を示す Azure portal のスクリーンショット。

ストレージ BLOB データ共同作成者ロールに代わるもの

ストレージ BLOB データ共同作成者ロールを自分に付与する代わりに、ファイルのサブセットに対してさらに細かいアクセス許可を付与することもできます。

このコンテナー内の一部のデータにアクセスする必要があるすべてのユーザーには、ルート (コンテナー) までのすべての親フォルダーに対する実行アクセス許可も必要です。

詳細については、「Azure Storage Explorer を使用して Azure Data Lake Storage での ACL を管理する」を参照してください。

Note

コンテナー レベルの実行アクセス許可は、Data Lake Storage Gen2 内で設定する必要があります。 フォルダーに対するアクセス許可は、Azure Synapse 内で設定できます。

この例で data2.csv にクエリを実行するには、次のアクセス許可が必要です。

  • コンテナーに対する実行アクセス許可
  • folder1 に対する実行アクセス許可
  • data2.csv に対する読み取りアクセス許可

データ レイクでのアクセス許可の構造を示す図。

  1. アクセスしたいデータに対する完全なアクセス許可を持つ管理者ユーザーで、Azure Synapse にサインインします。

  2. データ ペインでファイルを右クリックして、[アクセスの管理] を選びます。

    [アクセスの管理] オプションを示すスクリーンショット。

  3. [読み取り] アクセス許可以上を選びます。 ユーザーの UPN またはオブジェクト ID を入力します (例: user@contoso.com)。 [追加] を選択します。

  4. このユーザーに読み取りアクセス許可を付与します。

    読み取りアクセス許可の付与を示すスクリーンショット。

注意

ゲスト ユーザーの場合は、Azure Synapse で直接行うことはできないので、Azure Data Lake でこのステップを直接行う必要があります。