Azure 仮想マシン (VM) 上でマネージド ID を構成する

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

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

Azure Policy の定義と詳細については、「Azure Policy を使用してマネージド ID を割り当てる (プレビュー)」を参照してください。

この記事では、Azure portal を使用して、システムとユーザーによって Azure 仮想マシン (VM) に割り当てられたマネージド ID を有効および無効にする方法について説明します。

前提条件

  • Azure リソースのマネージド ID の基本点な事柄については、概要に関するセクションを参照してください。
  • まだ Azure アカウントを持っていない場合は、無料のアカウントにサインアップしてから先に進んでください。

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

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

VM の作成中にシステム割り当てマネージド ID を有効にする

VM の作成中に VM でシステム割り当てマネージド ID を有効にするには、アカウントに仮想マシン共同作成者ロールの割り当てが必要です。 その他の Microsoft Entra ディレクトリ ロールを割り当てる必要はありません。

  • [管理] タブの [ID] セクションで、 [マネージド サービス ID][オン] に切り替えます。

VM の作成中にシステム割り当て ID を有効にする方法を示すスクリーンショット。

VM を作成するには、次のクイック スタートを参照してください。

既存の VM でシステム割り当てマネージド ID を有効にする

ヒント

この記事の手順は、開始するポータルによって若干異なる場合があります。

もともとシステム割り当てマネージド ID をプロビジョニングされていなかった VM でシステム割り当てマネージド ID を有効にするには、お使いのアカウントに仮想マシン共同作成者ロールの割り当てが必要です。 その他の Microsoft Entra ディレクトリ ロールを割り当てる必要はありません。

  1. VM が含まれる Azure サブスクリプションに関連付けられているアカウントを使用して、Azure Portal にサインインします。

  2. 目的の仮想マシンに移動して [ID] を選択します。

  3. [システム割り当て済み] にある [状態][オン] を選択して、 [保存] をクリックします。

    [ID (プレビュー)] ページのスクリーンショット。[システム割り当て済み] 状態が [オン] に設定されている。

VM からシステム割り当てマネージド ID を削除する

VM からシステム割り当てマネージド ID を削除するには、お使いのアカウントに仮想マシン共同作成者ロールの割り当てが必要です。 その他の Microsoft Entra ディレクトリ ロールを割り当てる必要はありません。

仮想マシンでシステム割り当てマネージド ID が不要になった場合:

  1. VM が含まれる Azure サブスクリプションに関連付けられているアカウントを使用して、Azure Portal にサインインします。

  2. 目的の仮想マシンに移動して [ID] を選択します。

  3. [システム割り当て済み] にある [状態][オフ] を選択して、 [保存] をクリックします。

    構成ページのスクリーンショット。

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

このセクションでは、Azure portal を使用して、VM との間でユーザー割り当てマネージド ID を追加および削除する方法について説明します。

VM の作成中にユーザー割り当て ID を割り当てる

ユーザー割り当て ID を VM に割り当てるには、お使いのアカウントに仮想マシン共同作成者ロールとマネージド ID オペレーター ロールの割り当てが必要です。 その他の Microsoft Entra ディレクトリ ロールを割り当てる必要はありません。

現在 Azure portal では、VM 作成中のユーザー割り当てマネージド ID の割り当てはサポートされていません。 代わりに、VM の作成に関する次のいずれかのクイック スタート記事を参照して、まず VM を作成してください。そして、その VM にユーザー割り当てマネージド ID を割り当てる方法について詳しく説明している、次のセクションに進んでください。

ユーザー割り当てマネージド ID を既存の VM に割り当てる

ユーザー割り当て ID を VM に割り当てるには、お使いのアカウントに仮想マシン共同作成者ロールとマネージド ID オペレーター ロールの割り当てが必要です。 その他の Microsoft Entra ディレクトリ ロールを割り当てる必要はありません。

  1. VM が含まれる Azure サブスクリプションに関連付けられているアカウントを使用して、Azure Portal にサインインします。

  2. 目的の VM に移動して、[ID][ユーザー割り当て済み][追加] の順にクリックします。

    [ユーザー割り当て] が選択され、[追加] ボタンが強調表示されている [ID] ページのスクリーンショット。

  3. VM に追加したいユーザー割り当て ID をクリックして、 [追加] をクリックします。

    ユーザー割り当てマネージド ID を VM に追加する方法を示すスクリーンショット。

VM からユーザー割り当てマネージド ID を削除する

VM からユーザー割り当て ID を削除するには、お使いのアカウントに仮想マシン共同作成者ロールの割り当てが必要です。 その他の Microsoft Entra ディレクトリ ロールを割り当てる必要はありません。

  1. VM が含まれる Azure サブスクリプションに関連付けられているアカウントを使用して、Azure Portal にサインインします。

  2. 目的の VM に移動します。次に、[ID][ユーザー割り当て済み]、削除したいユーザー割り当てマネージド ID の名前を順に選択してから、[削除] をクリックします (確認ウィンドウで [はい] をクリックします)。

    ユーザー割り当てマネージド ID を VM から削除する方法を示すスクリーンショット

次のステップ

この記事では、Azure CLI を使用して、Azure VM 上に次の Azure リソースのマネージド ID 操作を実行する方法について説明します。

  • Azure VM 上でシステム割り当てマネージド ID を有効および無効にする
  • Azure VM 上でユーザー割り当てマネージド ID を追加および削除する

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

前提条件

  • 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 VM 上でシステム割り当てマネージド ID を有効および無効にする方法について説明します。

Azure VM の作成中にシステム割り当てマネージド ID を有効にする

システム割り当てマネージド ID を有効にして Azure VM を作成するには、お使いのアカウントに仮想マシン共同作成者ロールの割り当てが必要です。 その他の Microsoft Entra ディレクトリ ロールを割り当てる必要はありません。

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

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

    az vm create --resource-group myResourceGroup --name myVM --image win2016datacenter --generate-ssh-keys --assign-identity --role contributor --scope mySubscription --admin-username azureuser --admin-password myPassword12
    

既存の Azure VM 上でシステム割り当てマネージド ID を有効にする

VM でシステム割り当てマネージド ID を有効にするには、お使いのアカウントに仮想マシン共同作成者ロールの割り当てが必要です。 その他の Microsoft Entra ディレクトリ ロールを割り当てる必要はありません。

  1. ローカルのコンソールで Azure CLI を使用している場合は、最初に az login を使用して Azure にサインインします。 目的の VM が含まれる Azure サブスクリプションに関連付けられたアカウントを使用します。

    az login
    
  2. az vm identity assignidentity assign コマンドを使用して、既存の VM に対するシステム割り当て ID を有効にします。

    az vm identity assign -g myResourceGroup -n myVm
    

Azure VM でシステム割り当て ID を無効にする

VM でシステム割り当てマネージド ID を無効にするには、お使いのアカウントに仮想マシン共同作成者ロールの割り当てが必要です。 その他の Microsoft Entra ディレクトリ ロールを割り当てる必要はありません。

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

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

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

注意

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

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

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

このセクションでは、Azure CLI を使用して、Azure VM に対してユーザー割り当てマネージド ID を追加および削除する方法について説明します。 VM とは異なるリソース グループにユーザー割り当てマネージド ID を作成する場合、 マネージド ID の URL を使用して、それを VM に割り当てる必要があります。 次に例を示します。

--identities "/subscriptions/<SUBID>/resourcegroups/<RESROURCEGROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER_ASSIGNED_ID_NAME>"

Azure VM の作成中にユーザー割り当てマネージド ID を割り当てる

ユーザー割り当て ID を作成中の VM に割り当てるには、お使いのアカウントに仮想マシン共同作成者ロールとマネージド ID オペレーター ロールの割り当てが必要です。 その他の Microsoft Entra ディレクトリ ロールを割り当てる必要はありません。

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

    az group create --name <RESOURCE GROUP> --location <LOCATION>
    
  2. az identity create を使用して、ユーザー割り当てマネージド ID を作成します。 -g パラメーターにはユーザー割り当てマネージド ID を作成するリソース グループを指定し、-n パラメーターにはその名前を指定します。

    重要

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

    az identity create -g myResourceGroup -n myUserAssignedIdentity
    

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

    {
        "clientId": "00001111-aaaa-2222-bbbb-3333cccc4444",
        "clientSecretUrl": "https://control-westcentralus.identity.azure.net/subscriptions/<SUBSCRIPTON ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<myUserAssignedIdentity>/credentials?tid=5678&oid=9012&aid=00001111-aaaa-2222-bbbb-3333cccc4444",
        "id": "/subscriptions/<SUBSCRIPTON ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>",
        "location": "westcentralus",
        "name": "<USER ASSIGNED IDENTITY NAME>",
        "principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
        "resourceGroup": "<RESOURCE GROUP>",
        "tags": {},
        "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
        "type": "Microsoft.ManagedIdentity/userAssignedIdentities"    
    }
    
  3. az vm create を使用して VM を作成します。 次の例では、--assign-identity パラメーターで指定されたとおり、--role--scope を指定して、新しいユーザー割り当て ID に関連付けられている VM を作成します。 <RESOURCE GROUP><VM NAME><USER NAME><PASSWORD><USER ASSIGNED IDENTITY NAME><ROLE><SUBSCRIPTION> の各パラメーターの値は、必ず実際の値に置き換えてください。

    az vm create --resource-group <RESOURCE GROUP> --name <VM NAME> --image <SKU linux image>  --admin-username <USER NAME> --admin-password <PASSWORD> --assign-identity <USER ASSIGNED IDENTITY NAME> --role <ROLE> --scope <SUBSCRIPTION> 
    

ユーザー割り当てマネージド ID を既存の Azure VM に割り当てる

ユーザー割り当て ID を VM に割り当てるには、お使いのアカウントに仮想マシン共同作成者ロールとマネージド ID オペレーター ロールの割り当てが必要です。 その他の Microsoft Entra ディレクトリ ロールを割り当てる必要はありません。

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

    重要

    名前に特殊文字 (アンダースコアなど) が含まれるユーザー割り当てマネージド ID の作成は現在サポートされていません。 英数字を使用してください。 アップデートは後ほどご確認ください。 詳しくは、「FAQ と既知の問題」をご覧ください。

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

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

    {
      "clientId": "00001111-aaaa-2222-bbbb-3333cccc4444",
      "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=00001111-aaaa-2222-bbbb-3333cccc4444",
      "id": "/subscriptions/<SUBSCRIPTON ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>",
      "location": "westcentralus",
      "name": "<USER ASSIGNED IDENTITY NAME>",
      "principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
      "resourceGroup": "<RESOURCE GROUP>",
      "tags": {},
      "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
      "type": "Microsoft.ManagedIdentity/userAssignedIdentities"    
    }
    
  2. az vm identity assign を使用して、ユーザー割り当て ID を VM に割り当てます。 <RESOURCE GROUP><VM NAME> のパラメーターの値は、必ず実際の値に置き換えてください。 <USER ASSIGNED IDENTITY NAME> は、前の手順で作成されたユーザー割り当てマネージド ID のリソース name プロパティです。 VM とは異なるリソース グループにユーザー割り当てマネージド ID を作成した場合、 マネージド ID の URL を使用する必要があります。

    az vm identity assign -g <RESOURCE GROUP> -n <VM NAME> --identities <USER ASSIGNED IDENTITY>
    

Azure VM からユーザー割り当てのマネージド ID を削除する

VM からユーザー割り当ての ID を削除にするには、お使いのアカウントに仮想マシン共同作成者ロールの割り当てが必要です。

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

az vm identity remove -g <RESOURCE GROUP> -n <VM NAME> --identities <USER ASSIGNED IDENTITY>

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

注意

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

az vm update -n myVM -g myResourceGroup --set identity.type="none" identity.userAssignedIdentities=null

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

az vm update -n myVM -g myResourceGroup --set identity.type='SystemAssigned' identity.userAssignedIdentities=null 

次のステップ

この記事では、PowerShell を使用して、Azure VM 上に次の Azure リソースのマネージド ID 操作を実行する方法について説明します。

注意

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

前提条件

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

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

Azure VM の作成中にシステム割り当てマネージド ID を有効にする

システム割り当てマネージド ID を有効にして Azure VM を作成するには、お使いのアカウントに仮想マシン共同作成者ロールの割り当てが必要です。 その他の Microsoft Entra ディレクトリ ロールを割り当てる必要はありません。

  1. 次のいずれかの Azure VM クイック スタートを参照して、必要なセクション (「Azure へのサインイン」、「リソース グループの作成」、「ネットワーク グループの作成」、「VM の作成」) のみを実行してください。

    「VM の作成」セクションに到達したときに、New-AzVMConfig コマンドレットの構文にわずかな変更を加えます。 必ず -IdentityType SystemAssigned パラメーターを追加し、システム割り当て ID を有効にして VM のプロビジョニングを行います。次に例を示します。

    $vmConfig = New-AzVMConfig -VMName myVM -IdentityType SystemAssigned ...
    

既存の Azure VM 上でシステム割り当てマネージド ID を有効にする

もともとシステム割り当てマネージド ID をプロビジョニングされていなかった VM でシステム割り当てマネージド ID を有効にするには、お使いのアカウントに仮想マシン共同作成者ロールの割り当てが必要です。 その他の Microsoft Entra ディレクトリ ロールを割り当てる必要はありません。

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

    $vm = Get-AzVM -ResourceGroupName myResourceGroup -Name myVM
    Update-AzVM -ResourceGroupName myResourceGroup -VM $vm -IdentityType SystemAssigned
    

VM のシステム割り当て ID をグループに追加する

VM でシステム割り当て ID を有効にした後は、その ID をグループに追加できます。 以降の手順では、VM のシステム割り当て ID をグループに追加します。

  1. VM のサービス プリンシパルの ObjectID (返された値の Id フィールドで指定されています) を取得し、メモします。

    Get-AzADServicePrincipal -displayname "myVM"
    
  2. グループの ObjectID (返された値の Id フィールドで指定されています) を取得し、メモします。

    Get-AzADGroup -searchstring "myGroup"
    
  3. VM のサービス プリンシパルをグループに追加します。

    New-MgGroupMember -GroupId "<Id of group>" -DirectoryObjectId "<Id of VM service principal>" 
    

Azure VM でシステム割り当てマネージド ID を無効にする

VM でシステム割り当てマネージド ID を無効にするには、お使いのアカウントに仮想マシン共同作成者ロールの割り当てが必要です。 その他の Microsoft Entra ディレクトリ ロールを割り当てる必要はありません。

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

  1. Get-AzVM コマンドレットを使用して VM プロパティを取得し、-IdentityType パラメーターを UserAssigned に設定します。

    $vm = Get-AzVM -ResourceGroupName myResourceGroup -Name myVM
    Update-AzVm -ResourceGroupName myResourceGroup -VM $vm -IdentityType "UserAssigned" -IdentityID "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/<RESROURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>..."
    

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

$vm = Get-AzVM -ResourceGroupName myResourceGroup -Name myVM
Update-AzVm -ResourceGroupName myResourceGroup -VM $vm -IdentityType None

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

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

作成中にユーザー割り当てマネージド ID を VM に割り当てる

ユーザー割り当て ID を VM に割り当てるには、お使いのアカウントに仮想マシン共同作成者ロールとマネージド ID オペレーター ロールの割り当てが必要です。 その他の Microsoft Entra ディレクトリ ロールを割り当てる必要はありません。

  1. 次のいずれかの Azure VM クイック スタートを参照して、必要なセクション (「Azure へのサインイン」、「リソース グループの作成」、「ネットワーク グループの作成」、「VM の作成」) のみを実行してください。

    「VM の作成」セクションに到達したときに、New-AzVMConfig コマンドレットの構文にわずかな変更を加えます。 -IdentityType UserAssigned および -IdentityID パラメーターを追加し、ユーザー割り当て ID を使用して VM のプロビジョニングを行います。 <VM NAME><SUBSCRIPTION ID><RESROURCE GROUP>、および <USER ASSIGNED IDENTITY NAME> を独自の値に置き換えます。 次に例を示します。

    $vmConfig = New-AzVMConfig -VMName <VM NAME> -IdentityType UserAssigned -IdentityID "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/<RESROURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>..."
    

ユーザー割り当てマネージド ID を既存の Azure VM に割り当てる

ユーザー割り当て ID を VM に割り当てるには、お使いのアカウントに仮想マシン共同作成者ロールとマネージド ID オペレーター ロールの割り当てが必要です。 その他の Microsoft Entra ディレクトリ ロールを割り当てる必要はありません。

  1. New-AzUserAssignedIdentity コマンドレットを使用して、ユーザー割り当てマネージド ID を作成します。 出力の Id は、次の手順で必要になるため書き留めてください。

    重要

    ユーザー割り当てのマネージド ID の作成では、英数字、下線、およびハイフン (0-9、a-z、A-Z、_、-) 文字のみがサポートされます。 また、VM/VMSS への割り当てを正常に機能させるには、名前の長さを 3 ~ 128 文字に制限する必要があります。 詳しくは、「FAQ と既知の問題」をご覧ください。

    New-AzUserAssignedIdentity -ResourceGroupName <RESOURCEGROUP> -Name <USER ASSIGNED IDENTITY NAME>
    
  2. Get-AzVM コマンドレットを使用して VM プロパティを取得します。 次に、ユーザー割り当てマネージド ID を Azure VM に割り当てるため、Update-AzVM コマンドレットで -IdentityType および -IdentityID スイッチを使用します。 -IdentityId パラメーターの値は、前の手順で書き留めた Id です。 <VM NAME><SUBSCRIPTION ID><RESROURCE GROUP>、および <USER ASSIGNED IDENTITY NAME> を独自の値に置き換えます。

    警告

    以前のユーザー割り当てマネージド ID を VM に割り当てておくには、VM オブジェクト (たとえば $vm.Identity) の Identity プロパティのクエリを実行します。 ユーザー割り当てマネージド ID が返された場合、VM に割り当てる新しいユーザー割り当てマネージド ID とともにこれらを次のコマンドに含めます。

    $vm = Get-AzVM -ResourceGroupName <RESOURCE GROUP> -Name <VM NAME>
    
    # Get the list of existing identity IDs and then append to it
    $identityIds = $vm.Identity.UserAssignedIdentities.Keys
    $uid = "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/<RESROURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>"
    $identityIds = $identityIds + $uid 
    
    # Update the VM with added identity IDs
    Update-AzVM -ResourceGroupName <RESOURCE GROUP> -VM $vm -IdentityType UserAssigned -IdentityID $uid 
    

Azure VM からユーザー割り当てのマネージド ID を削除する

VM からユーザー割り当ての ID を削除にするには、お使いのアカウントに仮想マシン共同作成者ロールの割り当てが必要です。

VM に複数のユーザー割り当てマネージド ID がある場合は、次のコマンドを使用して、最後の ID 以外の ID をすべて削除できます。 <RESOURCE GROUP><VM NAME> のパラメーターの値は、必ず実際の値に置き換えてください。 <USER ASSIGNED IDENTITY NAME> はユーザー割り当てマネージド ID の名前プロパティであり、VM 上に残す必要があります。 この情報は、クエリを使用して VM オブジェクトの Identity プロパティを検索して検出できます。 例: $vm.Identity

$vm = Get-AzVm -ResourceGroupName myResourceGroup -Name myVm
Update-AzVm -ResourceGroupName myResourceGroup -VirtualMachine $vm -IdentityType UserAssigned -IdentityID <USER ASSIGNED IDENTITY NAME>

VM にシステム割り当てマネージド ID がないときに、その VM からユーザー割り当てマネージド ID をすべて削除する場合は、次のコマンドを使用します。

$vm = Get-AzVm -ResourceGroupName myResourceGroup -Name myVm
Update-AzVm -ResourceGroupName myResourceGroup -VM $vm -IdentityType None

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

$vm = Get-AzVm -ResourceGroupName myResourceGroup -Name myVm
Update-AzVm -ResourceGroupName myResourceGroup -VirtualMachine $vm -IdentityType "SystemAssigned"

次のステップ

この記事では、Azure Resource Manager デプロイ テンプレートを使用して、Azure VM で Azure リソースのマネージド ID の次の操作を実行する方法を説明します。

前提条件

Azure Resource Manager のテンプレート

Azure portal とスクリプトを使う場合と同じように、Azure Resource Manager テンプレートを使うと、Azure リソース グループによって定義された新しいリソースまたは変更されたリソースをデプロイすることができます。 ローカルとポータル ベースの両方を含むテンプレートの編集やデプロイでは、次のような複数のオプションが使用できます。

選択するオプションにかかわらず、初めてのデプロイ時も再デプロイ時もテンプレートの構文は同じです。 新規または既存の VM での、システムまたはユーザー割り当てマネージド ID の有効化も同様に行われます。 また、既定で Azure Resource Manager はデプロイに対して増分更新を行います。

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

このセクションでは、Azure Resource Manager テンプレートを使用して、システム割り当てマネージド ID を有効および無効にします。

Azure VM の作成時に、または既存の VM でシステム割り当てマネージド ID を有効にする

VM でシステム割り当てマネージド ID を有効にするには、お使いのアカウントに仮想マシン共同作成者ロールの割り当てが必要です。 その他の Microsoft Entra ディレクトリ ロールを割り当てる必要はありません。

  1. Azure にローカルでサインインする場合も、Azure Portal を使用してサインインする場合も、VM が含まれる Azure サブスクリプションに関連付けられているアカウントを使用します。

  2. システム割り当てマネージド ID を有効にするには、テンプレートをエディターに読み込み、resources セクション内で対象の Microsoft.Compute/virtualMachines リソースを探し、"type": "Microsoft.Compute/virtualMachines" プロパティと同じレベルに "identity" プロパティを追加します。 次の構文を使用します。

    "identity": {
        "type": "SystemAssigned"
    },
    
  3. 完了すると、テンプレートの resource セクションに次のセクションが追加され、テンプレートは次のようになります。

     "resources": [
         {
             //other resource provider properties...
             "apiVersion": "2018-06-01",
             "type": "Microsoft.Compute/virtualMachines",
             "name": "[variables('vmName')]",
             "location": "[resourceGroup().location]",
             "identity": {
                 "type": "SystemAssigned",
                 }                        
         }
     ]
    

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

VM でシステム割り当てマネージド ID を有効にしたら、作成先となったリソース グループへの閲覧者アクセス権などのロールを付与することができます。 この手順の詳細については、「Azure Resource Manager テンプレートを使用して Azure でのロールを割り当てる」という記事を参照してください。

Azure VM でシステム割り当てマネージド ID を無効にする

VM からシステム割り当てマネージド ID を削除するには、お使いのアカウントに仮想マシン共同作成者ロールの割り当てが必要です。 その他の Microsoft Entra ディレクトリ ロールを割り当てる必要はありません。

  1. Azure にローカルでサインインする場合も、Azure Portal を使用してサインインする場合も、VM が含まれる Azure サブスクリプションに関連付けられているアカウントを使用します。

  2. テンプレートをエディターに読み込み、resources セクション内で関心のある Microsoft.Compute/virtualMachines リソースを探します。 システム割り当てマネージド ID のみが割り当てられた VM がある場合は、ID の種類を None に変更することで無効にすることができます。

    Microsoft.Compute/virtualMachines API バージョン 2018-06-01

    VM にシステム割り当てマネージド ID とユーザー割り当てマネージド ID の両方が割り当てられている場合は、ID の種類から SystemAssigned を削除し、userAssignedIdentities ディクショナリ値と共に UserAssigned を保持します。

    Microsoft.Compute/virtualMachines API バージョン 2018-06-01

    apiVersion2017-12-01 であり、VM にシステム割り当てマネージド ID とユーザー割り当てマネージド ID の両方が割り当てられている場合は、ID の種類から SystemAssigned を削除し、ユーザー割り当てマネージド ID の identityIds 配列と共に UserAssigned を保持します。

次の例は、ユーザー割り当てマネージド ID が割り当てられていない VM からシステム割り当てマネージド ID を削除する方法を示しています。

{
    "apiVersion": "2018-06-01",
    "type": "Microsoft.Compute/virtualMachines",
    "name": "[parameters('vmName')]",
    "location": "[resourceGroup().location]",
    "identity": {
        "type": "None"
    }
}

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

このセクションでは、Azure Resource Manager テンプレートを使用して、Azure VM にユーザー割り当てマネージド ID を割り当てます。

注意

Azure Resource Manager テンプレートを使用してユーザー割り当てマネージド ID を作成するには、「Create a user-assigned managed identity (ユーザー割り当てマネージド ID を作成する)」をご覧ください。

Azure VM にユーザー割り当てマネージド ID を割り当てる

ユーザー割り当て ID を VM に割り当てるには、お使いのアカウントにマネージド ID オペレーター ロールの割り当てが必要です。 その他の Microsoft Entra ディレクトリ ロールを割り当てる必要はありません。

  1. ユーザー割り当てマネージド ID を VM に割り当てるには、resources 要素に次のエントリを追加します。 <USERASSIGNEDIDENTITY> は、作成したユーザー割り当てマネージド ID の名前に置き換えてください。

    Microsoft.Compute/virtualMachines API バージョン 2018-06-01

    apiVersion2018-06-01 の場合、ユーザー割り当てマネージド ID は userAssignedIdentities ディクショナリ形式で格納されます。<USERASSIGNEDIDENTITYNAME> 値は、テンプレートの variables セクションに定義された変数に格納する必要があります。

     {
         "apiVersion": "2018-06-01",
         "type": "Microsoft.Compute/virtualMachines",
         "name": "[variables('vmName')]",
         "location": "[resourceGroup().location]",
         "identity": {
             "type": "userAssigned",
             "userAssignedIdentities": {
                 "[resourceID('Microsoft.ManagedIdentity/userAssignedIdentities/',variables('<USERASSIGNEDIDENTITYNAME>'))]": {}
             }
         }
     }
    

    Microsoft.Compute/virtualMachines API バージョン 2017-12-01

    apiVersion2017-12-01 の場合、ユーザー割り当てマネージド ID は identityIds 配列に格納されます。<USERASSIGNEDIDENTITYNAME> 値は、テンプレートの variables セクションに定義された変数に格納する必要があります。

    {
        "apiVersion": "2017-12-01",
        "type": "Microsoft.Compute/virtualMachines",
        "name": "[variables('vmName')]",
        "location": "[resourceGroup().location]",
        "identity": {
            "type": "userAssigned",
            "identityIds": [
                "[resourceID('Microsoft.ManagedIdentity/userAssignedIdentities/',variables('<USERASSIGNEDIDENTITYNAME>'))]"
            ]
        }
    }
    
  2. 完了すると、テンプレートの resource セクションに次のセクションが追加され、テンプレートは次のようになります。

    Microsoft.Compute/virtualMachines API バージョン 2018-06-01

      "resources": [
         {
             //other resource provider properties...
             "apiVersion": "2018-06-01",
             "type": "Microsoft.Compute/virtualMachines",
             "name": "[variables('vmName')]",
             "location": "[resourceGroup().location]",
             "identity": {
                 "type": "userAssigned",
                 "userAssignedIdentities": {
                    "[resourceID('Microsoft.ManagedIdentity/userAssignedIdentities/',variables('<USERASSIGNEDIDENTITYNAME>'))]": {}
                 }
             }
         }
     ] 
    

    Microsoft.Compute/virtualMachines API バージョン 2017-12-01

    "resources": [
         {
             //other resource provider properties...
             "apiVersion": "2017-12-01",
             "type": "Microsoft.Compute/virtualMachines",
             "name": "[variables('vmName')]",
             "location": "[resourceGroup().location]",
             "identity": {
                 "type": "userAssigned",
                 "identityIds": [
                    "[resourceID('Microsoft.ManagedIdentity/userAssignedIdentities/',variables('<USERASSIGNEDIDENTITYNAME>'))]"
                 ]
             }
         }
    ]
    

Azure VM からユーザー割り当てのマネージド ID を削除する

VM からユーザー割り当て ID を削除するには、お使いのアカウントに仮想マシン共同作成者ロールの割り当てが必要です。 その他の Microsoft Entra ディレクトリ ロールを割り当てる必要はありません。

  1. Azure にローカルでサインインする場合も、Azure Portal を使用してサインインする場合も、VM が含まれる Azure サブスクリプションに関連付けられているアカウントを使用します。

  2. テンプレートをエディターに読み込み、resources セクション内で関心のある Microsoft.Compute/virtualMachines リソースを探します。 ユーザー割り当てマネージド ID しか存在しない VM がある場合は、ID の種類を None に変更することによってそれを無効にすることができます。

    次の例は、システム割り当てマネージド ID が割り当てられていない VM からユーザー割り当てマネージド ID をすべて削除する方法を示しています。

     {
       "apiVersion": "2018-06-01",
       "type": "Microsoft.Compute/virtualMachines",
       "name": "[parameters('vmName')]",
       "location": "[resourceGroup().location]",
       "identity": {
           "type": "None"
           },
     }
    

    Microsoft.Compute/virtualMachines API バージョン 2018-06-01

    VM から 1 つのユーザー割り当てマネージド ID を削除するには、useraAssignedIdentities ディクショナリからそれを削除します。

    システム割り当てマネージド ID がある場合は、identity 値の type 値でそれを保持します。

    Microsoft.Compute/virtualMachines API バージョン 2017-12-01

    VM から 1 つのユーザー割り当てマネージド ID を削除するには、identityIds 配列からそれを削除します。

    システム割り当てマネージド ID がある場合は、identity 値の type 値でそれを保持します。

次のステップ

この記事では、Azure Resource Manager REST エンドポイントを呼び出す CURL を使用して、Azure VM で次の Azure リソースのマネージド ID 操作を実行する方法について説明します。

  • Azure VM 上でシステム割り当てマネージド ID を有効および無効にする
  • Azure VM 上でユーザー割り当てマネージド ID を追加および削除する

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

前提条件

  • 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

このセクションでは、CURL を使用して Azure Resource Manager REST エンドポイントを呼び出し、Azure VM でシステム割り当てマネージド ID を有効および無効にする方法について説明します。

Azure VM の作成中にシステム割り当てマネージド ID を有効にする

システム割り当てマネージド ID を有効にして Azure VM を作成するには、お使いのアカウントに仮想マシン共同作成者ロールの割り当てが必要です。 その他の Microsoft Entra ディレクトリ ロールを割り当てる必要はありません。

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

    az group create --name myResourceGroup --location westus
    
  2. ご利用の VM のネットワーク インターフェイスを作成します。

     az network nic create -g myResourceGroup --vnet-name myVnet --subnet mySubnet -n myNic
    
  3. Bearer アクセス トークンを取得します。このトークンは、Authorization ヘッダーでシステム割り当てマネージド ID を使用して VM を作成する次の手順で使用します。

    az account get-access-token
    
  4. Azure Cloud Shell を使用して、Azure Resource Manager REST エンドポイントを呼び出す CURL を使って VM を作成します。 次の例では、値 "identity":{"type":"SystemAssigned"} によって要求本文で識別される、システム割り当てマネージド ID を使用して myVM という VM を作成します。 <ACCESS TOKEN> は前の手順で Bearer アクセス トークンを要求したときに受け取った値に置き換え、<SUBSCRIPTION ID> 値はご利用の環境に合わせて置き換えます。

    curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PUT -d '{"location":"westus","name":"myVM","identity":{"type":"SystemAssigned"},"properties":{"hardwareProfile":{"vmSize":"Standard_D2_v2"},"storageProfile":{"imageReference":{"sku":"2016-Datacenter","publisher":"MicrosoftWindowsServer","version":"latest","offer":"WindowsServer"},"osDisk":{"caching":"ReadWrite","managedDisk":{"storageAccountType":"StandardSSD_LRS"},"name":"myVM3osdisk","createOption":"FromImage"},"dataDisks":[{"diskSizeGB":1023,"createOption":"Empty","lun":0},{"diskSizeGB":1023,"createOption":"Empty","lun":1}]},"osProfile":{"adminUsername":"azureuser","computerName":"myVM","adminPassword":"<SECURE PASSWORD STRING>"},"networkProfile":{"networkInterfaces":[{"id":"/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myNic","properties":{"primary":true}}]}}}' -H "Content-Type: application/json" -H "Authorization: Bearer <ACCESS TOKEN>"
    
    PUT https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
    

    要求ヘッダー

    要求ヘッダー 説明
    Content-Type 必須。 application/json を設定します。
    承認 必須。 有効な Bearer アクセス トークンを設定します。

    要求本文

      {
        "location":"westus",
        "name":"myVM",
        "identity":{
           "type":"SystemAssigned"
        },
        "properties":{
           "hardwareProfile":{
              "vmSize":"Standard_D2_v2"
           },
           "storageProfile":{
              "imageReference":{
                 "sku":"2016-Datacenter",
                 "publisher":"MicrosoftWindowsServer",
                 "version":"latest",
                 "offer":"WindowsServer"
              },
              "osDisk":{
                 "caching":"ReadWrite",
                 "managedDisk":{
                    "storageAccountType":"StandardSSD_LRS"
                 },
                 "name":"myVM3osdisk",
                 "createOption":"FromImage"
              },
              "dataDisks":[
                 {
                    "diskSizeGB":1023,
                    "createOption":"Empty",
                    "lun":0
                 },
                 {
                    "diskSizeGB":1023,
                    "createOption":"Empty",
                    "lun":1
                 }
              ]
           },
           "osProfile":{
              "adminUsername":"azureuser",
              "computerName":"myVM",
              "adminPassword":"myPassword12"
           },
           "networkProfile":{
              "networkInterfaces":[
                 {
                    "id":"/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myNic",
                    "properties":{
                       "primary":true
                    }
                 }
              ]
           }
        }
     }  
    

既存の Azure VM においてシステム割り当て ID を有効にする

もともとシステム割り当てマネージド ID をプロビジョニングされていなかった VM でシステム割り当てマネージド ID を有効にするには、お使いのアカウントに仮想マシン共同作成者ロールの割り当てが必要です。 その他の Microsoft Entra ディレクトリ ロールを割り当てる必要はありません。

  1. Bearer アクセス トークンを取得します。このトークンは、Authorization ヘッダーでシステム割り当てマネージド ID を使用して VM を作成する次の手順で使用します。

    az account get-access-token
    
  2. ご利用の VM で、myVM という VM の値 {"identity":{"type":"SystemAssigned"} により要求本文で識別される、システム割り当てマネージド ID を有効にするには、以下の CURL コマンドを使用して Azure Resource Manager REST エンドポイントを呼び出します。 <ACCESS TOKEN> は前の手順で Bearer アクセス トークンを要求したときに受け取った値に置き換え、<SUBSCRIPTION ID> 値はご利用の環境に合わせて置き換えます。

    重要

    VM に割り当てられている既存のユーザー割り当てマネージド ID を削除しないようにするには、次の CURL コマンドを使用してユーザー割り当てマネージド ID を一覧表示する必要があります。curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/virtualMachines/<VM NAME>?api-version=2018-06-01' -H "Authorization: Bearer <ACCESS TOKEN>" 応答の identity 値で識別される、ユーザー割り当てマネージド ID が VM に割り当てられている場合は、VM でシステム割り当てマネージド ID を有効にしている間、ユーザー割り当てマネージド ID を保持する方法を示す手順 3 に進みます。

    curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"SystemAssigned"}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
    
    PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
    

    要求ヘッダー

    要求ヘッダー 説明
    Content-Type 必須。 application/json を設定します。
    承認 必須。 有効な Bearer アクセス トークンを設定します。

    要求本文

     {  
        "identity":{  
           "type":"SystemAssigned"
        }
     }
    
  3. 既存のユーザー割り当てマネージド ID を持つ VM でシステム割り当てマネージド ID を有効にするには、SystemAssignedtype 値に追加する必要があります。

    たとえば、VM にユーザー割り当てマネージド ID ID1ID2 が割り当てられている状態で、VM にシステム割り当てマネージド ID を追加する場合は、次の CURL 呼び出しを使用します。 <ACCESS TOKEN><SUBSCRIPTION ID> は、ご利用の環境に適した値に置き換えます。

    API バージョン 2017-12-01 では、ユーザー割り当てマネージド ID が identityIds 値に配列形式で保存されていましたが、API バージョン 2018-06-01 では userAssignedIdentities 値にディクショナリ形式で保存されます。

    API バージョン 2018-06-01

    curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"SystemAssigned, UserAssigned", "userAssignedIdentities":{"/subscriptions/<<SUBSCRIPTION ID>>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1":{},"/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2":{}}}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
    
    PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
    

    要求ヘッダー

    要求ヘッダー 説明
    Content-Type 必須。 application/json を設定します。
    承認 必須。 有効な Bearer アクセス トークンを設定します。

    要求本文

     {  
        "identity":{  
           "type":"SystemAssigned, UserAssigned",
           "userAssignedIdentities":{  
              "/subscriptions/<<SUBSCRIPTION ID>>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1":{  
    
              },
              "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2":{  
    
              }
           }
        }
     }
    

    API バージョン 2017-12-01

    curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01' -X PATCH -d '{"identity":{"type":"SystemAssigned, UserAssigned", "identityIds":["/subscriptions/<<SUBSCRIPTION ID>>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1","/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2"]}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
    
    PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01 HTTP/1.1
    

    要求ヘッダー

    要求ヘッダー 説明
    Content-Type 必須。 application/json を設定します。
    承認 必須。 有効な Bearer アクセス トークンを設定します。

    要求本文

     {  
        "identity":{  
           "type":"SystemAssigned, UserAssigned",
           "identityIds":[  
              "/subscriptions/<<SUBSCRIPTION ID>>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1",
              "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2"
           ]
        }
     }
    

Azure VM でシステム割り当てマネージド ID を無効にする

VM でシステム割り当てマネージド ID を無効にするには、お使いのアカウントに仮想マシン共同作成者ロールの割り当てが必要です。 その他の Microsoft Entra ディレクトリ ロールを割り当てる必要はありません。

  1. Bearer アクセス トークンを取得します。このトークンは、Authorization ヘッダーでシステム割り当てマネージド ID を使用して VM を作成する次の手順で使用します。

    az account get-access-token
    
  2. CURL を使用して Azure Resource Manager REST エンドポイントを呼び出し、システム割り当てマネージド ID を無効にして VM を更新します。 次の例では、myVM という VM から値 {"identity":{"type":"None"}} によって要求本文で識別される、システム割り当てマネージド ID を無効にします。 <ACCESS TOKEN> は前の手順で Bearer アクセス トークンを要求したときに受け取った値に置き換え、<SUBSCRIPTION ID> 値はご利用の環境に合わせて置き換えます。

    重要

    VM に割り当てられている既存のユーザー割り当てマネージド ID を削除しないようにするには、次の CURL コマンドを使用してユーザー割り当てマネージド ID を一覧表示する必要があります。curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/virtualMachines/<VM NAME>?api-version=2018-06-01' -H "Authorization: Bearer <ACCESS TOKEN>" 応答の identity 値で識別される、ユーザー割り当てマネージド ID が VM に割り当てられている場合は、VM でシステム割り当てマネージド ID を無効にしている間、ユーザー割り当てマネージド ID を保持する方法を示す手順 3 に進みます。

    curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"None"}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
    
    PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
    

    要求ヘッダー

    要求ヘッダー 説明
    Content-Type 必須。 application/json を設定します。
    承認 必須。 有効な Bearer アクセス トークンを設定します。

    要求本文

     {  
        "identity":{  
           "type":"None"
        }
     }
    

    API バージョン 2018-06-01 を使用している場合、ユーザー割り当てマネージド ID を持つ仮想マシンからシステム割り当てマネージド ID を削除するには、UserAssigned 値と userAssignedIdentities ディクショナリ値を維持したまま、{"identity":{"type:" "}} 値から SystemAssigned を削除します。 API バージョン 2017-12-01 またはそれ以前を使用している場合は、identityIds 配列を維持します。

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

このセクションでは、CURL を使用して Azure Resource Manager REST エンドポイントを呼び出し、Azure VM でユーザー割り当てマネージド ID を追加および削除する方法について説明します。

Azure VM の作成中にユーザー割り当てマネージド ID を割り当てる

ユーザー割り当て ID を VM に割り当てるには、お使いのアカウントに仮想マシン共同作成者ロールとマネージド ID オペレーター ロールの割り当てが必要です。 その他の Microsoft Entra ディレクトリ ロールを割り当てる必要はありません。

  1. Bearer アクセス トークンを取得します。このトークンは、Authorization ヘッダーでシステム割り当てマネージド ID を使用して VM を作成する次の手順で使用します。

    az account get-access-token
    
  2. ご利用の VM のネットワーク インターフェイスを作成します。

     az network nic create -g myResourceGroup --vnet-name myVnet --subnet mySubnet -n myNic
    
  3. Bearer アクセス トークンを取得します。このトークンは、Authorization ヘッダーでシステム割り当てマネージド ID を使用して VM を作成する次の手順で使用します。

    az account get-access-token
    
  4. 次のセクション「ユーザー割り当てマネージド ID を作成する」の手順を使用して、ユーザー割り当てマネージド ID を作成します。

  5. CURL を使用して Azure Resource Manager REST エンドポイントを呼び出し、VM を作成します。 次の例では、値 "identity":{"type":"UserAssigned"} によって要求本文で識別される、ユーザー割り当てマネージド ID ID1 を使用して、リソース グループの myResourceGroupmyVM という VM を作成します。 <ACCESS TOKEN> は前の手順で Bearer アクセス トークンを要求したときに受け取った値に置き換え、<SUBSCRIPTION ID> 値はご利用の環境に合わせて置き換えます。

    API バージョン 2018-06-01

    curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PUT -d '{"location":"westus","name":"myVM","identity":{"type":"UserAssigned","identityIds":["/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1"]},"properties":{"hardwareProfile":{"vmSize":"Standard_D2_v2"},"storageProfile":{"imageReference":{"sku":"2016-Datacenter","publisher":"MicrosoftWindowsServer","version":"latest","offer":"WindowsServer"},"osDisk":{"caching":"ReadWrite","managedDisk":{"storageAccountType":"StandardSSD_LRS"},"name":"myVM3osdisk","createOption":"FromImage"},"dataDisks":[{"diskSizeGB":1023,"createOption":"Empty","lun":0},{"diskSizeGB":1023,"createOption":"Empty","lun":1}]},"osProfile":{"adminUsername":"azureuser","computerName":"myVM","adminPassword":"myPassword12"},"networkProfile":{"networkInterfaces":[{"id":"/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myNic","properties":{"primary":true}}]}}}' -H "Content-Type: application/json" -H "Authorization: Bearer <ACCESS TOKEN>"
    
    PUT https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
    

    要求ヘッダー

    要求ヘッダー 説明
    Content-Type 必須。 application/json を設定します。
    承認 必須。 有効な Bearer アクセス トークンを設定します。

    要求本文

     {  
        "location":"westus",
        "name":"myVM",
        "identity":{  
           "type":"UserAssigned",
           "identityIds":[  
              "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1"
           ]
        },
        "properties":{  
           "hardwareProfile":{  
              "vmSize":"Standard_D2_v2"
           },
           "storageProfile":{  
              "imageReference":{  
                 "sku":"2016-Datacenter",
                 "publisher":"MicrosoftWindowsServer",
                 "version":"latest",
                 "offer":"WindowsServer"
              },
              "osDisk":{  
                 "caching":"ReadWrite",
                 "managedDisk":{  
                    "storageAccountType":"StandardSSD_LRS"
                 },
                 "name":"myVM3osdisk",
                 "createOption":"FromImage"
              },
              "dataDisks":[  
                 {  
                    "diskSizeGB":1023,
                    "createOption":"Empty",
                    "lun":0
                 },
                 {  
                    "diskSizeGB":1023,
                    "createOption":"Empty",
                    "lun":1
                 }
              ]
           },
           "osProfile":{  
              "adminUsername":"azureuser",
              "computerName":"myVM",
              "adminPassword":"myPassword12"
           },
           "networkProfile":{  
              "networkInterfaces":[  
                 {  
                    "id":"/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myNic",
                    "properties":{  
                       "primary":true
                    }
                 }
              ]
           }
        }
     }
    
    

    API バージョン 2017-12-01

    curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01' -X PUT -d '{"location":"westus","name":"myVM","identity":{"type":"UserAssigned","identityIds":["/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1"]},"properties":{"hardwareProfile":{"vmSize":"Standard_D2_v2"},"storageProfile":{"imageReference":{"sku":"2016-Datacenter","publisher":"MicrosoftWindowsServer","version":"latest","offer":"WindowsServer"},"osDisk":{"caching":"ReadWrite","managedDisk":{"storageAccountType":"StandardSSD_LRS"},"name":"myVM3osdisk","createOption":"FromImage"},"dataDisks":[{"diskSizeGB":1023,"createOption":"Empty","lun":0},{"diskSizeGB":1023,"createOption":"Empty","lun":1}]},"osProfile":{"adminUsername":"azureuser","computerName":"myVM","adminPassword":"myPassword12"},"networkProfile":{"networkInterfaces":[{"id":"/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myNic","properties":{"primary":true}}]}}}' -H "Content-Type: application/json" -H "Authorization: Bearer <ACCESS TOKEN>"
    
    PUT https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01 HTTP/1.1
    

    要求ヘッダー

    要求ヘッダー 説明
    Content-Type 必須。 application/json を設定します。
    承認 必須。 有効な Bearer アクセス トークンを設定します。

    要求本文

     {
        "location":"westus",
        "name":"myVM",
        "identity":{
           "type":"UserAssigned",
           "identityIds":[
              "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1"
           ]
        },
        "properties":{
           "hardwareProfile":{
              "vmSize":"Standard_D2_v2"
           },
           "storageProfile":{
              "imageReference":{
                 "sku":"2016-Datacenter",
                 "publisher":"MicrosoftWindowsServer",
                 "version":"latest",
                 "offer":"WindowsServer"
              },
              "osDisk":{
                 "caching":"ReadWrite",
                 "managedDisk":{
                    "storageAccountType":"StandardSSD_LRS"
                 },
                 "name":"myVM3osdisk",
                 "createOption":"FromImage"
              },
              "dataDisks":[
                 {
                    "diskSizeGB":1023,
                    "createOption":"Empty",
                    "lun":0
                 },
                 {
                    "diskSizeGB":1023,
                    "createOption":"Empty",
                    "lun":1
                 }
              ]
           },
           "osProfile":{
              "adminUsername":"azureuser",
              "computerName":"myVM",
              "adminPassword":"myPassword12"
           },
           "networkProfile":{
              "networkInterfaces":[
                 {
                    "id":"/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myNic",
                    "properties":{
                       "primary":true
                    }
                 }
              ]
           }
        }
     }
    

ユーザー割り当てマネージド ID を既存の Azure VM に割り当てる

ユーザー割り当て ID を VM に割り当てるには、お使いのアカウントに仮想マシン共同作成者ロールとマネージド ID オペレーター ロールの割り当てが必要です。 その他の Microsoft Entra ディレクトリ ロールを割り当てる必要はありません。

  1. Bearer アクセス トークンを取得します。このトークンは、Authorization ヘッダーでシステム割り当てマネージド ID を使用して VM を作成する次の手順で使用します。

    az account get-access-token
    
  2. Create a user assigned managed identity」(ユーザー割り当てマネージド ID を作成する) に示されている手順を使用して、ユーザー割り当てマネージド ID を作成します。

  3. VM に割り当てられている既存のユーザーまたはシステム割り当てマネージド ID を削除しないようにするには、次の CURL コマンドを使用して、VM に割り当てられている ID の種類を一覧表示する必要があります。 仮想マシン スケール セットにマネージド ID が割り当てられている場合、identity 値に一覧表示されます。

    curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/virtualMachines/<VM NAME>?api-version=2018-06-01' -H "Authorization: Bearer <ACCESS TOKEN>" 
    
    GET https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/virtualMachines/<VM NAME>?api-version=2018-06-01 HTTP/1.1
    

    要求ヘッダー

    要求ヘッダー 説明
    承認 必須。 有効な Bearer アクセス トークンを設定します。

    応答の identity 値で識別される、ユーザーまたはシステム割り当てマネージド ID が VM に割り当てられている場合は、VM でユーザー割り当てマネージド ID を追加しながら、システム割り当てマネージド ID を保持する方法を示す手順 5 に進みます。

  4. VM にユーザー割り当てマネージド ID が割り当てられていない場合は、次の CURL コマンドを使用して Azure Resource Manager REST エンドポイントを呼び出し、VM に最初のユーザー割り当てマネージド ID を割り当てます。

    次の例では、リソース グループの myResourceGroup 内の myVM という VM に、ユーザー割り当てマネージド ID ID1 を割り当てます。 <ACCESS TOKEN> は前の手順で Bearer アクセス トークンを要求したときに受け取った値に置き換え、<SUBSCRIPTION ID> 値はご利用の環境に合わせて置き換えます。

    API バージョン 2018-06-01

    curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"UserAssigned", "userAssignedIdentities":{"/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1":{}}}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
    
    PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
    

    要求ヘッダー

    要求ヘッダー 説明
    Content-Type 必須。 application/json を設定します。
    承認 必須。 有効な Bearer アクセス トークンを設定します。

    要求本文

     {
        "identity":{
           "type":"UserAssigned",
           "userAssignedIdentities":{
              "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1":{
    
              }
           }
        }
     }
    

    API バージョン 2017-12-01

    curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01' -X PATCH -d '{"identity":{"type":"userAssigned", "identityIds":["/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1"]}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
    
    PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01 HTTP/1.1
    

    要求ヘッダー

    要求ヘッダー 説明
    Content-Type 必須。 application/json を設定します。
    承認 必須。 有効な Bearer アクセス トークンを設定します。

    要求本文

     {
        "identity":{
           "type":"userAssigned",
           "identityIds":[
              "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1"
           ]
        }
     }
    
  5. VM に既存のユーザー割り当てマネージド ID またはシステム割り当てマネージド ID が割り当てられている場合:

    API バージョン 2018-06-01

    ユーザー割り当てマネージド ID を userAssignedIdentities ディクショナリ値に追加します。

    たとえば、現在、VM にシステム割り当てマネージド ID とユーザー割り当てマネージド ID ID1 が割り当てられており、これにユーザー割り当てマネージド ID ID2 を追加する場合は、次のようにします。

    curl  'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"SystemAssigned, UserAssigned", "userAssignedIdentities":{"/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1":{},"/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2":{}}}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
    
    PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
    

    要求ヘッダー

    要求ヘッダー 説明
    Content-Type 必須。 application/json を設定します。
    承認 必須。 有効な Bearer アクセス トークンを設定します。

    要求本文

     {
        "identity":{
           "type":"SystemAssigned, UserAssigned",
           "userAssignedIdentities":{
              "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1":{
    
              },
              "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2":{
    
              }
           }
        }
     }
    

    API バージョン 2017-12-01

    新しいユーザー割り当てマネージド ID を追加する一方で、identityIds 配列値に維持するユーザー割り当てマネージド ID を保持します。

    たとえば、現在、VM にシステム割り当てマネージド ID とユーザー割り当てマネージド ID ID1 が割り当てられており、これにユーザー割り当てマネージド ID ID2 を追加する場合は、次のようにします。

    curl  'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01' -X PATCH -d '{"identity":{"type":"SystemAssigned,UserAssigned", "identityIds":["/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1","/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2"]}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
    
    PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01 HTTP/1.1
    

    要求ヘッダー

    要求ヘッダー 説明
    Content-Type 必須。 application/json を設定します。
    承認 必須。 有効な Bearer アクセス トークンを設定します。

    要求本文

     {
        "identity":{
           "type":"SystemAssigned,UserAssigned",
           "identityIds":[
              "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1",
              "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2"
           ]
        }
     }
    

Azure VM からユーザー割り当てのマネージド ID を削除する

VM からユーザー割り当ての ID を削除にするには、お使いのアカウントに仮想マシン共同作成者ロールの割り当てが必要です。

  1. Bearer アクセス トークンを取得します。このトークンは、Authorization ヘッダーでシステム割り当てマネージド ID を使用して VM を作成する次の手順で使用します。

    az account get-access-token
    
  2. VM に割り当てたままにする既存のユーザー割り当てマネージド ID を削除しないようにするか、システム割り当てマネージド ID を削除するには、次の CURL コマンドを使用して、マネージド ID を一覧表示する必要があります。

    curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/virtualMachines/<VM NAME>?api-version=2018-06-01' -H "Authorization: Bearer <ACCESS TOKEN>"
    
    GET https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/virtualMachines/<VM NAME>?api-version=2018-06-01 HTTP/1.1
    

    要求ヘッダー

    要求ヘッダー 説明
    Content-Type 必須。 application/json を設定します。
    承認 必須。 有効な Bearer アクセス トークンを設定します。

    VM にマネージド ID が割り当てられている場合、応答の identity 値に一覧表示されます。

    たとえば、ユーザー割り当てマネージド ID ID1ID2 が VM 割り当てられており、ID1 を割り当てられたままにしてシステム割り当て ID を保持する場合:

    API バージョン 2018-06-01

    次のように、削除するユーザー割り当てマネージド ID に null を追加します。

    curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"SystemAssigned, UserAssigned", "userAssignedIdentities":{"/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2":null}}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
    
    PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
    

    要求ヘッダー

    要求ヘッダー 説明
    Content-Type 必須。 application/json を設定します。
    承認 必須。 有効な Bearer アクセス トークンを設定します。

    要求本文

     {
        "identity":{
           "type":"SystemAssigned, UserAssigned",
           "userAssignedIdentities":{
              "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2":null
           }
        }
     }
    

    API バージョン 2017-12-01

    次のように、identityIds 配列に維持するユーザー割り当てマネージド ID のみを保持します。

    curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01' -X PATCH -d '{"identity":{"type":"SystemAssigned, UserAssigned", "identityIds":["/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1"]}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
    
    PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01 HTTP/1.1
    

    要求ヘッダー

    要求ヘッダー 説明
    Content-Type 必須。 application/json を設定します。
    承認 必須。 有効な Bearer アクセス トークンを設定します。

    要求本文

     {
        "identity":{
           "type":"SystemAssigned, UserAssigned",
           "identityIds":[
              "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1"
           ]
        }
     }
    

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

curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"SystemAssigned"}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1

要求ヘッダー

要求ヘッダー 説明
Content-Type 必須。 application/json を設定します。
承認 必須。 有効な Bearer アクセス トークンを設定します。

要求本文

{
   "identity":{
      "type":"SystemAssigned"
   }
}

VM にユーザー割り当てマネージド ID のみがあり、そのすべてを削除する場合は、次のコマンドを使用します。

curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"None"}}' -H "Content-Type: application/json" -H Authorization:"Bearer <ACCESS TOKEN>"
PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1

要求ヘッダー

要求ヘッダー 説明
Content-Type 必須。 application/json を設定します。
承認 必須。 有効な Bearer アクセス トークンを設定します。

要求本文

{
   "identity":{
      "type":"None"
   }
}

次のステップ

REST を使用してユーザー割り当てマネージド ID を作成、一覧表示、削除する方法については、以下を参照してください。

この記事では、Azure SDK を使用して Azure VM のマネージド ID を有効にする方法と削除する方法について説明します。

前提条件

  • Azure リソースのマネージド ID 機能に慣れていない場合は、こちらの概要を参照してください。 Azure アカウントをお持ちでない場合は、無料のアカウントにサインアップしてから先に進んでください。

Azure リソースのマネージド ID をサポートする Azure SDK

Azure は、一連の Azure SDK によって、複数のプログラミング プラットフォームをサポートしています。 その一部は、Azure リソースのマネージド ID をサポートするために更新されています。また、使用方法を示す対応するサンプルが用意されています。 次の一覧は、他のサポートが追加されると更新されます。

SDK サンプル
.NET Azure リソースのマネージド ID が有効な VM からリソースを管理する
Java Azure リソースのマネージド ID が有効な VM からストレージを管理する
Node.js システム割り当てマネージド ID が有効な VM を作成する
Python システム割り当てマネージド ID が有効な VM を作成する
Ruby システム割り当て ID が有効な Azure VM を作成する

次の手順

  • Azure portal、PowerShell、CLI、およびリソース テンプレートを使用する方法については、Azure VM 用の ID の構成に関するページを参照してください。