PowerShell を使用して仮想マシン スケール セット上に Azure リソースのマネージド ID を構成する方法

Azure リソース用マネージド ID は、Microsoft Entra ID の機能です。 Azure リソースのマネージド ID をサポートする各 Azure サービスは、それぞれ固有のタイムラインの下で提供されます。 ご利用のリソースに対するマネージド ID の提供状態と既知の問題をあらかじめ確認しておいてください。

Azure リソースのマネージド ID は、Microsoft Entra ID で自動的に管理される ID を Azure サービスに提供します。 この ID を使用すると、コード内に資格情報を記述することなく、Microsoft Entra の認証をサポートする任意のサービスに対して認証を行うことができます。

この記事では、PowerShell を使用して、仮想マシン スケール セット上で Azure リソースのマネージド ID 操作を実行する方法について説明します。

  • 仮想マシン スケール セット上でシステム割り当てマネージド ID を有効および無効にする
  • 仮想マシン スケール セット上でユーザー割り当てマネージド ID の追加および削除を行う

注意

Azure を操作するには、Azure Az PowerShell モジュールを使用することをお勧めします。 作業を開始するには、Azure PowerShell のインストールに関する記事を参照してください。 Az PowerShell モジュールに移行する方法については、「AzureRM から Az への Azure PowerShell の移行」を参照してください。

前提条件

  • Azure リソースのマネージド ID の基本点な事柄については、概要に関するセクションを参照してください。 システム割り当てマネージド ID とユーザー割り当てマネージド ID の違いを確認してください

  • まだ Azure アカウントを持っていない場合は、無料のアカウントにサインアップしてから先に進んでください。

  • この記事の管理操作を実行するアカウントには、次の Azure のロールベースのアクセス制御の割り当てが必要です。

    Note

    Microsoft Entra ディレクトリ ロールを追加で割り当てる必要はありません。

    • 仮想マシン共同作成者ロール。仮想マシン スケール セットを作成して、システム割り当てマネージド ID またはユーザー割り当てマネージド ID を有効化したり、仮想マシン スケール セットから削除したりします。
    • マネージド ID 共同作成者ロール。ユーザー割り当てマネージド ID を作成します。
    • マネージド ID オペレーターロール。ユーザー割り当てマネージド ID の仮想マシン スケール セットへの割り当ておよび仮想マシン スケール セットからの削除を実行します。
  • サンプル スクリプトを実行するには、次の 2 つのオプションがあります。

    • Azure Cloud Shell を使用します。これは、コード ブロックの右上隅にある [試してみる] ボタンを使用して開くことができます。
    • 最新バージョンの Azure PowerShell をインストールしてスクリプトをローカルで実行した後、Connect-AzAccount を使用して Azure にサインインします。

システム割り当てマネージド ID

このセクションでは、Azure PowerShell を使用してシステム割り当てマネージド ID を有効にする方法と削除する方法について説明します。

Azure 仮想マシン スケール セットの作成中にシステム割り当てマネージド ID を有効にする

システム割り当てマネージド ID を有効にして仮想マシン スケール セットを作成する場合:

  1. システム割り当てマネージド ID を持つ仮想マシン スケール セットの作成については、New-AzVmssConfig コマンドレット リファレンス記事の "例 1" を参照してください。 パラメーター -IdentityType SystemAssignedNew-AzVmssConfig コマンドレットに追加します。

    $VMSS = New-AzVmssConfig -Location $Loc -SkuCapacity 2 -SkuName "Standard_A0" -UpgradePolicyMode "Automatic" -NetworkInterfaceConfiguration $NetCfg -IdentityType SystemAssigned`
    

既存の Azure 仮想マシン スケール セット上でシステム割り当てマネージド ID を有効にする

既存の Azure 仮想マシン スケール セット上でシステム割り当てマネージド ID を有効にする必要がある場合:

  1. お使いの Azure アカウントが、"仮想マシン共同作成者" など、仮想マシン スケール セット上の書き込みアクセス許可が提供されるロールに属していることを確認します。

  2. Get-AzVmss コマンドレットを使用して、仮想マシン スケール セットのプロパティを取得します。 システム割り当てマネージド ID を有効にするには、Update-AzVmss コマンドレットで -IdentityType スイッチを使用します。

    Update-AzVmss -ResourceGroupName myResourceGroup -Name -myVmss -IdentityType "SystemAssigned"
    

Azure 仮想マシン スケール セット上でシステム割り当てマネージド ID を無効にする

システム割り当てマネージド ID は不要になったが、ユーザー割り当てマネージド ID はまだ必要な仮想マシン スケール セットがある場合は、次のコマンドを使用します。

  1. お使いのアカウントが、"仮想マシン共同作成者" など、仮想マシン スケール セット上の書き込みアクセス許可が提供されるロールに属していることを確認します。

  2. 次のコマンドレットを実行します。

    Update-AzVmss -ResourceGroupName myResourceGroup -Name myVmss -IdentityType "UserAssigned"
    
  3. システム割り当てマネージド ID が不要になった、ユーザー割り当てマネージド ID を持たない仮想マシン スケール セットがある場合は、次のコマンドを使用します。

    Update-AzVmss -ResourceGroupName myResourceGroup -Name myVmss -IdentityType None
    

ユーザー割り当てマネージド ID

このセクションでは、Azure PowerShell を使用して、仮想マシン スケール セットに対してユーザー割り当てマネージド ID を追加および削除する方法について説明します。

Azure 仮想マシン スケール セットの作成中にユーザー割り当てマネージド ID を割り当てる

ユーザー割り当てマネージド ID を持つ新しい仮想マシン スケール セットの作成は、PowerShell では現在サポートされていません。 次のセクションで、既存の仮想マシン スケール セットにユーザー割り当てマネージド ID を追加する方法を確認してください。 アップデートは後ほどご確認ください。

既存の Azure 仮想マシン スケール セットにユーザー割り当てマネージド ID を割り当てる

既存の Azure 仮想マシン スケール セットにユーザー割り当てマネージド ID を割り当てるには:

  1. お使いのアカウントが、"仮想マシン共同作成者" など、仮想マシン スケール セット上の書き込みアクセス許可が提供されるロールに属していることを確認します。

  2. Get-AzVM コマンドレットを使用して、仮想マシン スケール セットのプロパティを取得します。 次に、ユーザー割り当てマネージド ID を仮想マシン スケール セットに割り当てるため、Update-AzVmss コマンドレットで -IdentityType スイッチと -IdentityID スイッチを使用します。 <VM NAME><SUBSCRIPTION ID><RESROURCE GROUP><USER ASSIGNED ID1>USER ASSIGNED ID2 を、実際の値に置き換えます。

    重要

    ユーザー割り当てマネージド ID を作成する場合、名前は文字または数字で始まる必要があり、英数字、ハイフン (-) とアンダースコア (_) の組み合わせを含めることができます。 仮想マシンまたは仮想マシン スケール セットへの割り当てが適切に動作するように、名前は 24 文字に制限されています。 詳細については、FAQ と既知の問題に関するページを参照してください。

    Update-AzVmss -ResourceGroupName <RESOURCE GROUP> -Name <VMSS NAME> -IdentityType UserAssigned -IdentityID "<USER ASSIGNED ID1>","<USER ASSIGNED ID2>"
    

Azure 仮想マシン スケール セットからユーザー割り当てマネージド ID を削除する

仮想マシン スケール セットに複数のユーザー割り当てマネージド ID がある場合は、次のコマンドを使用して、最後の ID 以外の ID をすべて削除できます。 <RESOURCE GROUP><VIRTUAL MACHINE SCALE SET NAME> のパラメーターの値は、必ず実際の値に置き換えてください。 <USER ASSIGNED IDENTITY NAME> はユーザー割り当てマネージド ID の名前プロパティであり、仮想マシン スケール セット上に残す必要があります。 この情報は、az vmss show を使用して、仮想マシン スケール セットの ID セクションで見つけることができます。

Update-AzVmss -ResourceGroupName myResourceGroup -Name myVmss -IdentityType UserAssigned -IdentityID "<USER ASSIGNED IDENTITY NAME>"

仮想マシン スケール セットにシステム割り当てマネージド ID がないときに、ユーザー割り当てマネージド ID をすべて削除する場合は、次のコマンドを使用します。

Update-AzVmss -ResourceGroupName myResourceGroup -Name myVmss -IdentityType None

仮想マシン スケール セットにシステム割り当てマネージド ID とユーザー割り当てマネージド ID の両方がある場合は、システム割り当てマネージド ID のみを使用するように切り替えることによって、すべてのユーザー割り当てマネージド ID を削除できます。

Update-AzVmss -ResourceGroupName myResourceGroup -Name myVmss -IdentityType "SystemAssigned"

次のステップ