次の方法で共有


Microsoft Dev Box での Azure ロールベースのアクセス制御

この記事では、Microsoft Dev Box でサポートされるさまざまな組み込みロールと、それらがプラットフォーム エンジニアや開発マネージャーなどの組織での役割にどのように対応するかを説明します。

Azure ロールベースのアクセス制御 (RBAC) では、適用されるアクセス許可の概要を示す組み込みロールの定義が指定されています。 ユーザーは、特定のスコープのロールの割り当てを使用して、このロール定義をユーザーまたはグループに割り当てます。 スコープは、個々のリソース、リソース グループ、またはサブスクリプション全体にすることができます。 次のセクションでは、Microsoft Dev Box でサポートされている組み込みロールについて説明します。

詳細については、「Azure ロールベースのアクセス制御 (Azure RBAC) とは

Note

ロールの割り当てを変更すると、これらの更新が反映されるまでに数分かかることがあります。

組み込みのロール

この記事では、Azure 組み込みロールを、それが影響を及ぼす範囲に基づいて、組織の 3 つの役割に論理的にグループ化します。

  • プラットフォーム エンジニアのロール: デベロッパー センター、カタログ、プロジェクトに対するアクセス許可に影響を与える

  • 開発マネージャー: プロジェクトベース リソースに対するアクセス許可に影響を与える

  • 開発者のロール: ユーザーに対するアクセス許可に影響を与える

Microsoft Dev Box でサポートされている組み込みのロールは次のとおりです。

組織の役割の種類 組み込みのロール 説明
プラットフォーム エンジニア Owner デベロッパー センター、カタログ、プロジェクトを作成および管理するためのフル コントロールを許可し、他のユーザーにアクセス許可を付与します。 所有者ロールの詳細についてご確認ください。
プラットフォーム エンジニア Contributor デベロッパー センター、カタログ、プロジェクトを作成および管理するためのフル コントロールを許可しますが、他のユーザーへのロールの割り当ては行いません。 共同作成者ロールの詳細についてご確認ください。
開発マネージャー DevCenter プロジェクト管理者 プロジェクトと開発ボックスの特定の側面を管理するためのアクセス許可を付与します。 詳しくは、「DevCenter プロジェクト管理者ロール」をご覧ください。
開発者 Dev Box ユーザー 開発ボックスを作成するためのアクセス許可を付与し、作成した開発ボックスを完全に制御できます。 詳しくは、「Dev Box ユーザー ロール」をご覧ください。

ロールの割り当てスコープ

Azure RBAC では、"スコープ" とは、アクセスが適用されるリソースのセットのことです。 ロールを割り当てる際は、必要なアクセス権だけを付与するように、スコープについて理解することが重要です。

Azure では、4 つのレベル (管理グループ、サブスクリプション、リソース グループ、リソース) でスコープを指定できます。 スコープは親子関係で構造化されています。 階層のレベルごとに、スコープがより限定的になります。 これらのスコープレベルのいずれかで、ロールを割り当てることができます。 選択するレベルで、ロールの適用範囲が決まります。 上位レベルのロールのアクセス許可が下位レベルに継承されます。 Azure RBAC のスコープの詳細についてご確認ください。.

Microsoft Dev Box の場合は、次のスコープを検討します。

Scope 説明
サブスクリプション すべての Azure リソースとサービスに対する課金とセキュリティを管理するために使用します。 このロールの割り当てによってサブスクリプション内のすべてのリソースへのアクセスが許可されるため、サブスクリプションレベルのアクセス権を持つのは通常、プラットフォーム エンジニアだけです。
リソース グループ リソースをグループ化するための論理コンテナー。 リソース グループに対するロールの割り当てにより、リソース グループとその中のすべてのリソース (デベロッパー センター、開発ボックス定義、開発ボックス プール、プロジェクト、開発ボックスなど) に対するアクセス許可が付与されます。
デベロッパー センター (リソース) 同様の設定を必要とするプロジェクトのコレクション。 デベロッパー センターに対するロールの割り当てによって、デベロッパー センター自体に対するアクセス許可が付与されます。 デベロッパー センターに関して割り当てられたアクセス許可は、他の開発ボックス リソースによって継承されません。
プロジェクト (リソース) 開発ボックスの作成時に一般的な構成設定を適用するために使われる Azure リソース。 プロジェクトに対するロールの割り当てによって付与されるのは、その特定のプロジェクトに対するアクセス許可だけです。
開発ボックス プール (リソース) まとめて管理し、同様の設定を適用する開発ボックスのコレクション。 開発ボックス プールに関するロールの割り当てによって付与されるのは、その特定の開発ボックス プールに対するアクセス許可だけです。
開発ボックス定義 (リソース) コンピューティング サイズやストレージ サイズなど、ソース イメージとサイズを指定する Azure リソース。 開発ボックス定義に関するロールの割り当てによって付与されるのは、その特定の開発ボックス定義に対するアクセス許可だけです。

Microsoft Dev Box のロールの割り当てのスコープを示す図。

Dev Box の一般的なアクティビティに対するロール

次の表は、Dev Box の一般的なアクティビティと、ユーザーがそのアクティビティを実行するために必要なロールを示したものです。

アクティビティ ロールの種類 役割 Scope
リソース グループを作成するためのアクセス許可を付与する。 プラットフォーム エンジニア 所有者または共同作成者 サブスクリプション
容量の要求など、Microsoft サポート チケットを送信するためのアクセス許可を付与する。 プラットフォーム エンジニア 所有者、共同作成者、サポート リクエスト共同作成者 サブスクリプション
仮想ネットワークとサブネットを作成するアクセス許可を付与する。 プラットフォーム エンジニア Network Contributor リソース グループ
ネットワーク接続を作成するアクセス許可を付与する。 プラットフォーム エンジニア 所有者または共同作成者 リソース グループ
他のユーザーにロールを割り当てるアクセス許可を付与する。 プラットフォーム エンジニア Owner リソース グループ
次のことを行うアクセス許可を付与する:
- デベロッパー センターの作成と管理を行う。
- ネットワーク接続の追加と削除を行う。
- Azure Compute ギャラリーの追加と削除を行う。
- 開発ボックス定義の作成と管理を行う。
- プロジェクトの作成と管理を行う。
- デベロッパー センターまたはプロジェクトへのカタログのアタッチと管理を行う (プロジェクト レベルのカタログはデベロッパー センターで有効にする必要があります)。
- 開発ボックスの制限を構成する。
プラットフォーム エンジニア Contributor リソース グループ
デベロッパー センターのネットワーク接続を追加または削除するアクセス許可を付与する。 プラットフォーム エンジニア Contributor デベロッパー センター
プロジェクト カタログを有効または無効にするアクセス許可を付与する。 開発マネージャー Contributor デベロッパー センター
次のことを行うアクセス許可を付与する:
- カタログの追加、同期、削除を行う (デベロッパー センターでプロジェクトレベルのカタログを有効にする必要があります)。
- 開発ボックス プールを作成する。
- プール内の開発ボックスを停止、開始、削除する。
開発マネージャー DevCenter プロジェクト管理者 プロジェクト
プロジェクト内の独自の開発ボックスを作成して管理する。 User Dev Box ユーザー プロジェクト
GitHub または Azure Repos リポジトリ内でカタログを作成して管理する。 開発マネージャー RBAC によって管理されません。
- ユーザーには、Azure DevOps または GitHub を通してアクセス許可を割り当てる必要があります。
リポジトリ

重要

組織のサブスクリプションは、すべての Azure リソースとサービスに対する課金とセキュリティを管理するために使用されます。 サブスクリプションに対して所有者または共同作成者のロールを割り当てることができます。 サブスクリプションレベルのアクセス権にはサブスクリプション内のすべてのリソースに対するフル アクセスが含まれているため、プラットフォーム エンジニアは通常、このアクセス権を持っています。

プラットフォーム エンジニアのロール

組織のサブスクリプション内の Microsoft Dev Box を管理するためのアクセス許可をユーザーに付与するには、所有者または共同作成者のロールを割り当てる必要があります。

これらのロールを "リソース グループ" に割り当てます。 リソース グループ内のデベロッパー センター、ネットワーク接続、開発ボックス定義、開発ボックス プール、プロジェクトは、これらのロールの割り当てを継承します。

Azure Deployment Environments に対するサブスクリプションでの管理者ロールの割り当てを示す図。

所有者ロール

所有者ロールを割り当てると、Dev Box リソースを作成または管理し、他のユーザーにアクセス許可を付与するためのフル コントロールが、ユーザーに付与されます。 リソース グループでの所有者ロールを持っているユーザーは、そのリソース グループ内のすべてのリソースで以下のアクティビティを実行できます。

  • プラットフォーム エンジニアにロールを割り当てて、Dev Box リソースを管理できるようにする。

  • デベロッパー センター、ネットワーク接続、開発ボックス定義、開発ボックス プール、プロジェクトを作成する。

  • すべてのデベロッパー センター、ネットワーク接続、開発ボックス定義、開発ボックス プール、プロジェクトの設定を表示、削除、変更する。

  • カタログをアタッチおよびデタッチする。

注意事項

リソース グループで所有者または共同作成者ロールを割り当てると、これらのアクセス許可は、リソース グループに存在する Dev Box 以外の関連リソースにも適用されます。

共同作成者ロール

共同作成者ロールを割り当てると、リソース グループ内のデベロッパー センターとプロジェクトを作成または管理するためのフル コントロールがユーザーに付与されます。 共同作成者ロールは所有者ロールと同じアクセス許可を持っています。ただし、以下は "除きます"。

  • ロールの割り当ての実行。

開発マネージャーのロール

開発マネージャーには、DevCenter プロジェクト管理者という 1 つのロールがあります。このロールは、プラットフォーム エンジニアのロールより低レベルのスコープで、より制限されたアクセス許可を持ちます。 このロールを開発マネージャーに割り当てると、チームの管理タスクを実行できるようになります。

Microsoft Dev Box のプロジェクト レベルのスコープでの開発マネージャーのロールの割り当てを示す図。

DevCenter プロジェクト管理者ロール

DevCenter プロジェクト管理者ロールを割り当てると、次のことができるようになります。

  • カタログの追加、同期、削除を行う (デベロッパー センターでプロジェクトレベルのカタログを有効にする必要があります)。

  • 開発ボックス プールを作成する。

  • プール内の開発ボックスを停止、開始、削除する。

開発者ロール

開発者には、Dev Box ユーザーという 1 つのロールがあります。 このロールにより、開発者は独自の開発ボックスを作成および管理できます。

Microsoft Dev Box のプロジェクトでのユーザー ロールの割り当てを示す図。

Dev Box ユーザー

Dev Box ユーザー ロールを割り当てると、ユーザーは開発ボックスを作成するためのアクセス許可を付与され、作成した開発ボックスを完全に制御できます。 開発者は、作成した開発ボックスに対して次の操作を実行できます。

  • 作成​​
  • 開始と停止
  • やり直し
  • スケジュールされたシャットダウンの延期
  • 削除

ID およびアクセス管理 (IAM)

Microsoft Dev Box リソースに対して Azure ロールベースのアクセス制御を構成するには、Azure portal の [アクセス制御 (IAM)] ページを使います。 組み込みのロールは、Active Directory の個人とグループに使用できます。 次のスクリーンショットは、Azure portal のアクセス制御 (IAM) を使用した Active Directory 統合 (Azure RBAC) を示しています。

デベロッパー センターの [アクセス制御 (IAM)] ページを示すスクリーンショット。

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

デベロッパー センター、リソース グループ、プロジェクトの構造

組織は、前もって時間をかけて、デベロッパー センターの配置と、リソース グループとプロジェクトの構造を計画する必要があります。

デベロッパー センター: まとめて管理したいプロジェクトのセットでデベロッパー センターを整理し、同様の設定を適用して、同様のテンプレートを提供します。

組織は、1 つ以上のデベロッパー センターを使用できます。 通常、組織内の各サブ組織は独自のデベロッパー センターを持ちます。 次の場合は、複数のデベロッパー センターを作成することを検討してください。

  • 特定の構成をプロジェクトのサブセットで使用できるようにする場合。

  • 異なるチームが Azure でデベロッパー センター リソースを所有して維持する必要がある場合。

プロジェクト: 1 つのアプリまたは製品について作業する個々の開発チームまたはユーザー グループに関連付けられます。

リソース グループに対してロールを割り当てるときは、それによってリソース グループ内のすべてのリソース (デベロッパー センター、ネットワーク接続、開発ボックス定義、開発ボックス プール、プロジェクトなど) にもアクセス許可が適用されるため、計画が特に重要です。

ユーザーに適切なリソースへのアクセス許可のみ付与されるようにするには、次のようにします。

  • Dev Box リソースのみを含むリソース グループを作成します。

  • 必要な開発ボックス定義と開発ボックス プール、およびアクセス権を持つ必要がある開発者に従って、プロジェクトを整理します。 開発ボックス プールによって開発ボックスの作成場所が決まることに注意することが重要です。 待ち時間を最小限にするため、開発者は自分に近い場所に開発ボックスを作成する必要があります。

たとえば、開発者チームごとに個別のプロジェクトを作成して、各チームのリソースを分離できます。 その後、プロジェクトの開発マネージャーをプロジェクト管理者ロールに割り当てて、それぞれのチームのリソースへのアクセスだけを許可できます。

重要

プロジェクトなどの Dev Box リソースは、作成した後では別のリソース グループに移動できないため、事前に構造を計画してください。

カタログの構造

Microsoft Dev Box のカタログにより、開発者は、タスクのカタログとカスタマイズ ファイルを使って、ソフトウェアのインストール、拡張機能の追加、リポジトリのクローンなどを行い、開発ボックスのカスタマイズを展開できます。 

Microsoft Dev Box は、GitHub リポジトリまたは Azure DevOps Services リポジトリにカタログを格納します。 カタログはデベロッパー センターまたはプロジェクトにアタッチできます。

1 つ以上のカタログをデベロッパー センターにアタッチし、そのレベルでのすべてのカスタマイズを管理できます。 開発者がさらに細かいレベルでカスタマイズにアクセスできるようにするには、プロジェクト レベルでカタログをアタッチできます。 カタログをアタッチする場所を計画するときは、各開発チームのニーズを考慮する必要があります。