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

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

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

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

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

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

前提条件

  • Azure リソースのマネージド ID について不明な場合は、「Azure リソースのマネージド ID とは」を参照してください。 システム割り当てとユーザー割り当ての両方の種類のマネージド ID の詳細については、「マネージド ID の種類」をご覧ください。

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

    • 仮想マシン共同作成者: 仮想マシン スケール セットを作成する、システム割り当てマネージド ID またはユーザー割り当てマネージド ID を有効にする、および仮想マシン スケール セットから削除することができるロールです。

    • マネージド ID 共同作成者ロール。ユーザー割り当てマネージド ID を作成します。

    • マネージド ID オペレーターロール。ユーザー割り当てマネージド ID の仮想マシン スケール セットへの割り当ておよび仮想マシン スケール セットからの削除を実行します。

    Note

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

  • Azure Cloud Shell で Bash 環境を使用します。 詳細については、「Azure Cloud Shell の Bash のクイックスタート」を参照してください。

  • CLI リファレンス コマンドをローカルで実行する場合、Azure CLI をインストールします。 Windows または macOS で実行している場合は、Docker コンテナーで Azure CLI を実行することを検討してください。 詳細については、「Docker コンテナーで Azure CLI を実行する方法」を参照してください。

    • ローカル インストールを使用する場合は、az login コマンドを使用して Azure CLI にサインインします。 認証プロセスを完了するには、ターミナルに表示される手順に従います。 その他のサインイン オプションについては、Azure CLI でのサインインに関するページを参照してください。

    • 初回使用時にインストールを求められたら、Azure CLI 拡張機能をインストールします。 拡張機能の詳細については、Azure CLI で拡張機能を使用する方法に関するページを参照してください。

    • az version を実行し、インストールされているバージョンおよび依存ライブラリを検索します。 最新バージョンにアップグレードするには、az upgrade を実行します。

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

このセクションでは、Azure CLI を使用して、Azure 仮想マシン スケール セット上でシステム割り当てマネージド ID を有効および無効にする方法について説明します。

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

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

  1. az group create を使用して、仮想マシン スケール セットとその関連リソースの管理およびデプロイ用にリソース グループを作成します。 代わりに使用するリソース グループが既にある場合は、この手順をスキップできます。

    az group create --name myResourceGroup --location westus
    
  2. 仮想マシン スケール セットを作成します。 次の例では、--assign-identity パラメーターからの要求どおり、--role--scope を指定して、システム割り当てマネージド ID で myVM という仮想マシン スケール セットを作成します。 --admin-username および --admin-password パラメーターは、仮想マシンのサインイン用の管理ユーザー名とパスワードを指定します。 これらの値は、お使いの環境に合わせて更新してください。

    az vmss create --resource-group myResourceGroup --name myVMSS --image win2016datacenter --upgrade-policy-mode automatic --custom-data cloud-init.txt --admin-username azureuser --admin-password myPassword12 --assign-identity --generate-ssh-keys --role contributor --scope mySubscription
    

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

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

az vmss identity assign -g myResourceGroup -n myVMSS

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

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

az vmss update -n myVM -g myResourceGroup --set identity.type='UserAssigned' 

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

注意

none では、大文字と小文字が区別されます。 小文字にする必要があります。

az vmss update -n myVM -g myResourceGroup --set identity.type="none"

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

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

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

このセクションでは、仮想マシン スケール セットを作成する方法と、ユーザー割り当てマネージド ID を仮想マシン スケール セットに割り当てる方法について説明します。 使用する仮想マシン スケール セットが既にある場合は、このセクションをスキップして次のセクションに進んでください。

  1. 使用するリソース グループが既にある場合は、この手順をスキップできます。 az group create を使用して、ユーザー割り当てマネージド ID の格納と配置を行うリソース グループを作成します。 <RESOURCE GROUP><LOCATION> のパラメーターの値は、必ず実際の値に置き換えてください。 :

    az group create --name <RESOURCE GROUP> --location <LOCATION>
    
  2. az identity create を使用して、ユーザー割り当てマネージド ID を作成します。 -g パラメーターにはユーザー割り当てマネージド ID を作成するリソース グループを指定し、-n パラメーターにはその名前を指定します。 <RESOURCE GROUP><USER ASSIGNED IDENTITY NAME> のパラメーターの値は、必ず実際の値に置き換えてください。

    重要

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

    az identity create -g <RESOURCE GROUP> -n <USER ASSIGNED IDENTITY NAME>
    

    応答には、次のように、作成されたユーザー割り当てマネージド ID の詳細が含まれています。 ユーザー割り当てマネージド ID に割り当てられたリソース id 値は、次の手順で使用されます。

    {
         "clientId": "73444643-8088-4d70-9532-c3a0fdc190fz",
         "clientSecretUrl": "https://control-westcentralus.identity.azure.net/subscriptions/<SUBSCRIPTON ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>/credentials?tid=5678&oid=9012&aid=73444643-8088-4d70-9532-c3a0fdc190fz",
         "id": "/subscriptions/<SUBSCRIPTON ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>",
         "location": "westcentralus",
         "name": "<USER ASSIGNED IDENTITY NAME>",
         "principalId": "e5fdfdc1-ed84-4d48-8551-fe9fb9dedfll",
         "resourceGroup": "<RESOURCE GROUP>",
         "tags": {},
         "tenantId": "733a8f0e-ec41-4e69-8ad8-971fc4b533bl",
         "type": "Microsoft.ManagedIdentity/userAssignedIdentities"    
    }
    
  3. 仮想マシン スケール セットを作成します。 次の例では、--assign-identity パラメーターで指定されたとおり、--role--scope を指定して新しいユーザー割り当てマネージド ID に関連付けられている仮想マシン スケール セットを作成します。 <RESOURCE GROUP><VMSS NAME><USER NAME><PASSWORD><USER ASSIGNED IDENTITY><ROLE><SUBSCRIPTION> の各パラメーターの値は、必ず実際の値に置き換えてください。

    az vmss create --resource-group <RESOURCE GROUP> --name <VMSS NAME> --image <SKU Linux Image> --admin-username <USER NAME> --admin-password <PASSWORD> --assign-identity <USER ASSIGNED IDENTITY> --role <ROLE> --scope <SUBSCRIPTION>
    

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

  1. az identity create を使用して、ユーザー割り当てマネージド ID を作成します。 -g パラメーターにはユーザー割り当てマネージド ID を作成するリソース グループを指定し、-n パラメーターにはその名前を指定します。 <RESOURCE GROUP><USER ASSIGNED IDENTITY NAME> のパラメーターの値は、必ず実際の値に置き換えてください。

    az identity create -g <RESOURCE GROUP> -n <USER ASSIGNED IDENTITY NAME>
    

    応答には、次のように、作成されたユーザー割り当てマネージド ID の詳細が含まれています。

    {
         "clientId": "73444643-8088-4d70-9532-c3a0fdc190fz",
         "clientSecretUrl": "https://control-westcentralus.identity.azure.net/subscriptions/<SUBSCRIPTON ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY >/credentials?tid=5678&oid=9012&aid=73444643-8088-4d70-9532-c3a0fdc190fz",
         "id": "/subscriptions/<SUBSCRIPTON ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY>",
         "location": "westcentralus",
         "name": "<USER ASSIGNED IDENTITY>",
         "principalId": "e5fdfdc1-ed84-4d48-8551-fe9fb9dedfll",
         "resourceGroup": "<RESOURCE GROUP>",
         "tags": {},
         "tenantId": "733a8f0e-ec41-4e69-8ad8-971fc4b533bl",
         "type": "Microsoft.ManagedIdentity/userAssignedIdentities"    
    }
    
  2. 仮想マシン スケール セットにユーザー割り当てマネージド ID を割り当てます<RESOURCE GROUP><VIRTUAL MACHINE SCALE SET NAME> のパラメーターの値は、必ず実際の値に置き換えてください。 <USER ASSIGNED IDENTITY> は、前の手順で作成されたユーザー割り当て ID のリソース name プロパティです。

    az vmss identity assign -g <RESOURCE GROUP> -n <VIRTUAL MACHINE SCALE SET NAME> --identities <USER ASSIGNED IDENTITY>
    

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

仮想マシン スケール セットからユーザー割り当てマネージド ID を削除するには、az vmss identity remove を使用します。 仮想マシン スケール セットに割り当てられている唯一のユーザー割り当てマネージド ID の場合は、ID 型の値から UserAssigned が削除されます。 <RESOURCE GROUP><VIRTUAL MACHINE SCALE SET NAME> のパラメーターの値は、必ず実際の値に置き換えてください。 <USER ASSIGNED IDENTITY> はユーザー割り当てマネージド ID の name プロパティになります。これは、az vmss identity show を使って、仮想マシン スケール セットの ID セクションで見つけることができます。

az vmss identity remove -g <RESOURCE GROUP> -n <VIRTUAL MACHINE SCALE SET NAME> --identities <USER ASSIGNED IDENTITY>

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

注意

none では、大文字と小文字が区別されます。 小文字にする必要があります。

az vmss update -n myVMSS -g myResourceGroup --set identity.type="none" identity.userAssignedIdentities=null

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

az vmss update -n myVMSS -g myResourceGroup --set identity.type='SystemAssigned' identity.userAssignedIdentities=null 

次のステップ