デベロッパー センターのマネージド ID を構成する

このガイドでは、開発チームがセキュリティで保護されたデプロイを行えるようにするために、Azure Deployment Environments デベロッパー センターにマネージド ID を追加して構成する方法について説明します。

Azure Deployment Environments サービスでは、マネージド ID を使用することで、Azure リソースが作成されるサブスクリプションへのアクセス権を付与することなく、開発チームにセルフサービスのデプロイ機能を提供します。 マネージド ID は、Microsoft Entra 認証をサポートするすべてのサービスに、昇格された特権機能とセキュリティで保護された認証を追加します。

デベロッパー センターにアタッチされているマネージド ID には、環境の種類ごとにデプロイ サブスクリプションの共同作成者ロールとユーザー アクセス管理者ロールの両方が割り当てられている必要があります。 環境のデプロイが要求されると、サービスは、ユーザーの代わりにデプロイするために環境の種類ごとに設定されたデプロイ ID に適切なアクセス許可を付与します。 デベロッパー センターにアタッチされたマネージド ID は、カタログに追加したり 、カタログ 内の 環境定義 にアクセスしたりするためにも使用されます。

Prerequisites

マネージド ID の追加

Azure Deployment Environments では、次の 2 種類のマネージド ID から選択できます。

  • システム割り当て ID: システム割り当て ID は、デベロッパー センターまたはプロジェクト環境の種類のいずれかに関連付けられます。 アタッチされたリソースが削除されると、システム割り当て ID が削除されます。 デベロッパー センターまたはプロジェクト環境の種類は、システム割り当て ID を 1 つだけ持つことができます。
  • ユーザー割り当て ID: ユーザー割り当て ID は、デベロッパー センターまたはプロジェクト環境の種類に割り当てることができるスタンドアロンの Azure リソースです。 Azure Deployment Environments の場合、デベロッパー センターまたはプロジェクト環境の種類は、ユーザー割り当て ID を 1 つだけ持つことができます。

セキュリティのベスト プラクティスとして、ユーザー割り当て ID を使用する場合は、プロジェクトとデベロッパー センターに異なる ID を使用します。 プロジェクト ID には、デベロッパー センターよりもリソースへのアクセスが制限されている必要があります。

Note

Azure Deployment Environments では、システム割り当て ID とユーザー割り当て ID の両方を追加した場合、ユーザー割り当て ID のみが使用されます。

システム割り当てマネージド ID を追加する

  1. Azure portal にサインインし、Azure デプロイ環境に移動します。

  2. 左側のメニューで、[ デベロッパー センター] を選択します。

  3. [デベロッパー センター] ページで、デベロッパー センターを選択します。

  4. 左側のメニューの [設定] で 、[ ID] を選択します。

  5. [システム割り当て済み] タブで、[状態][オン] に設定します。

  6. 保存を選びます。

    システム割り当て済みマネージド ID を示すスクリーンショット。

  7. [システム割り当てマネージド ID の有効化] ダイアログで、[はい] を選択します。

ユーザー割り当てマネージド ID を追加する

  1. Azure portal にサインインし、Azure デプロイ環境に移動します。

  2. 左側のメニューで、[ デベロッパー センター] を選択します。

  3. [デベロッパー センター] ページで、デベロッパー センターを選択します。

  4. 左側のメニューの [設定] で 、[ ID] を選択します。

  5. [ ユーザー割り当て ] タブで、[ 追加 ] を選択して既存の ID をアタッチします。

    ユーザー割り当てマネージド ID を示すスクリーンショット。

  6. [ユーザー割り当てマネージド ID の追加] で、次の情報を入力または選択します。

    1. [サブスクリプション] で、ID が存在するサブスクリプションを選択します。
    2. [ユーザー割り当てマネージド ID] で、既存の ID を選択します。
    3. [] を選択し、[] を追加します。

サブスクリプション ロールを割り当てる

デベロッパー センターにアタッチされている ID には、すべてのデプロイ サブスクリプションに対する共同作成者およびユーザー アクセス管理者のロールと、関連するプロジェクトを含むすべてのサブスクリプションに対する閲覧者ロールを割り当てる必要があります。 ユーザーが環境を作成またはデプロイすると、サービスはプロジェクト環境の種類にアタッチされたデプロイ ID に適切なアクセス権を付与します。 デプロイ ID は、そのアクセス権を使用してユーザーの代わりにデプロイを実行します。 マネージド ID を使用すると、開発者がサブスクリプションへのアクセスを許可せずに環境を作成できます。

システム割り当てマネージド ID にロールの割り当てを追加する

  1. Azure portal で、Azure Deployment Environments のデベロッパー センターに移動します。

  2. 左側のメニューの [設定] で 、[ ID] を選択します。

  3. [システム割り当て]>[アクセス許可] に移動し、[Azure ロールの割り当て] を選択します。

    システム割り当て ID の Azure ロールの割り当てを示すスクリーンショット。

  4. サブスクリプションに共同作成者アクセス権を付与するには、[ ロールの割り当ての追加 (プレビュー)] を選択し、次の情報を入力または選択して、[ 保存] を選択します。

    Name Value
    Scope Subscription
    Subscription マネージド ID を使用するサブスクリプションを選択します。
    Role Contributor
  5. ユーザー アクセス管理者にサブスクリプションへのアクセス権を付与するには、[ ロールの割り当ての追加 (プレビュー)] を選択し、次の情報を入力または選択して、[保存] を選択 します

    Name Value
    Scope Subscription
    Subscription マネージド ID を使用するサブスクリプションを選択します。
    Role ユーザーアクセス管理者

ユーザー割り当てマネージド ID にロールの割り当てを追加する

  1. Azure portal で、デベロッパー センターに移動します。

  2. 左側のメニューの [設定] で 、[ ID] を選択します。

  3. [ ユーザー割り当て済み] で、ID 名を選択します。

  4. 左側のメニューで、[ Azure ロールの割り当て] を選択します。

  5. サブスクリプションに共同作成者アクセス権を付与するには、[ ロールの割り当ての追加 (プレビュー)] を選択し、次の情報を入力または選択して、[ 保存] を選択します。

    Name Value
    Scope Subscription
    Subscription マネージド ID を使用するサブスクリプションを選択します。
    Role Contributor
  6. ユーザー アクセス管理者にサブスクリプションへのアクセス権を付与するには、[ ロールの割り当ての追加 (プレビュー)] を選択し、次の情報を入力または選択して、[保存] を選択 します

    Name Value
    Scope Subscription
    Subscription マネージド ID を使用するサブスクリプションを選択します。
    Role ユーザーアクセス管理者

キー コンテナー シークレットへのアクセス権をマネージド ID に付与する

キー コンテナーのアクセス ポリシーまたは Azure ロールベースのアクセス制御を使用するように、キー コンテナーを設定できます。

Note

リポジトリをカタログとして追加する前に、リポジトリの個人用アクセス トークンを含むキー コンテナー シークレットへのアクセス権をマネージド ID に付与する必要があります。

Key Vault アクセス ポリシー

Warning

セキュリティを強化するには、Azure Key Vault の管理時にアクセス ポリシーではなく 、Role-Based アクセス制御 (RBAC) アクセス許可モデル を使用します。 RBAC では、アクセス許可の管理が "所有者" ロールと "ユーザー アクセス管理者" ロールのみに制限され、セキュリティタスクと管理タスクが明確に分離されます。 詳細については、「 Azure RBAC とは」「Key Vault RBAC ガイド」を参照してください。

アクセス ポリシーのアクセス許可モデルを使用すると、 ContributorKey Vault Contributor、または Microsoft.KeyVault/vaults/write アクセス許可を含むロールを持つユーザーは、Key Vault アクセス ポリシーを構成することで、自分自身にデータ プレーン アクセスを許可できます。 これにより、キー コンテナー、キー、シークレット、証明書に対する不正アクセスや管理が行われる可能性があります。 このリスクを軽減するには、アクセス ポリシー モデルを使用するときに、共同作成者ロールのアクセスをキー ボールトに制限します。

キー ボールトがキー ボールト アクセス ポリシーを使用するように構成されている場合:

  1. Azure portal で、個人用アクセス トークンを含むシークレットを含むキー コンテナーに移動します。

  2. 左側のメニューで、[ アクセス ポリシー] を選択し、[ 作成] を選択します。

  3. [アクセス ポリシーの作成] で、次の情報を入力または選択します。

    1. [ アクセス許可 ] タブの [ シークレットのアクセス許可] で、[ 取得 ] チェック ボックスをオンにし、[ 次へ] を選択します。
    2. [ プリンシパル ] タブで、デベロッパー センターにアタッチされている ID を選択します。
    3. [確認と作成] を選択し、次に [作成] を選択します。

Azure ロールベースのアクセス制御

キー コンテナーが Azure ロールベースのアクセス制御を使用するように構成されている場合:

  1. Azure portal で、個人用アクセス トークンを含むシークレットを含むキー コンテナーに移動します。

  2. 左側のメニューで [アクセス制御 (IAM)] を選択します。

  3. ID を選択し、左側のメニューで Azure ロールの割り当てを選択します

  4. [ロールの割り当ての追加] を選択し、次の情報を入力または選択します。

    1. スコープで、キー ボールトを選択します。
    2. サブスクリプションで、キー ボールトを含むサブスクリプションを選択します。
    3. [リソース] で、キー ボールトを選択します。
    4. [ロール] で、[Key Vault シークレット ユーザー] を選択します。
    5. 保存を選びます。