PowerShell を使用して Azure VM 上の Azure リソースのマネージド ID を構成するConfigure managed identities for Azure resources on an Azure VM using PowerShell

Azure リソースのマネージドID は、Azure Active Directory の機能です。Managed identities for Azure resources is a feature of Azure Active Directory. Azure リソースのマネージド ID をサポートする各 Azure サービスは、それぞれ固有のタイムラインの下で提供されます。Each of the Azure services that support managed identities for Azure resources are subject to their own timeline. ご利用のリソースに対するマネージド ID の提供状態と既知の問題をあらかじめ確認しておいてください。Make sure you review the availability status of managed identities for your resource and known issues before you begin.

Azure リソースのマネージド ID は、Azure Active Directory で自動的に管理される ID を Azure サービスに提供します。Managed identities for Azure resources provides Azure services with an automatically managed identity in Azure Active Directory. この ID を使用して、コードに資格情報が含まれていなくても、Azure AD の認証をサポートする任意のサービスに認証することができます。You can use this identity to authenticate to any service that supports Azure AD authentication, without having credentials in your code.

この記事では、PowerShell を使用して、Azure VM 上に次の Azure リソースのマネージド ID 操作を実行する方法について説明します。In this article, using PowerShell, you learn how to perform the following managed identities for Azure resources operations on an Azure VM.

注意

この記事は、新しい Azure PowerShell Az モジュールを使用するために更新されました。This article has been updated to use the new Azure PowerShell Az module. AzureRM モジュールはまだ使用でき、少なくとも 2020 年 12 月までは引き続きバグ修正が行われます。You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Az モジュールと AzureRM の互換性の詳細については、「Introducing the new Azure PowerShell Az module (新しい Azure PowerShell Az モジュールの概要)」を参照してください。To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Az モジュールのインストール手順については、Azure PowerShell のインストールを参照してください。For Az module installation instructions, see Install Azure PowerShell.

前提条件Prerequisites

システム割り当てマネージド IDSystem-assigned managed identity

このセクションでは、Azure PowerShell を使用してシステム割り当てマネージド ID を有効および無効にする方法について説明します。In this section, you will learn how to enable and disable the system-assigned managed identity using Azure PowerShell.

Azure VM の作成中にシステム割り当てマネージド ID を有効にするEnable system-assigned managed identity during creation of an Azure VM

システム割り当てマネージド ID を有効にして Azure VM を作成するには、お使いのアカウントに仮想マシン共同作成者ロールの割り当てが必要です。To create an Azure VM with the system-assigned managed identity enabled,your account needs the Virtual Machine Contributor role assignment. Azure AD ディレクトリ ロールを追加で割り当てる必要はありません。No additional Azure AD directory role assignments are required.

  1. 次のいずれかの Azure VM クイック スタートを参照して、必要なセクション (「Azure へのサインイン」、「リソース グループの作成」、「ネットワーク グループの作成」、「VM の作成」) のみを実行してください。Refer to one of the following Azure VM Quickstarts, completing only the necessary sections ("Sign in to Azure", "Create resource group", "Create networking group", "Create the VM").

    「VM の作成」セクションに到達したときに、New-AzVMConfig コマンドレットの構文にわずかな変更を加えます。When you get to the "Create the VM" section, make a slight modification to the New-AzVMConfig cmdlet syntax. 必ず -AssignIdentity:$SystemAssigned パラメーターを追加し、システム割り当て ID を有効にして VM のプロビジョニングを行います。次に例を示します。Be sure to add a -AssignIdentity:$SystemAssigned parameter to provision the VM with the system-assigned identity enabled, for example:

    $vmConfig = New-AzVMConfig -VMName myVM -AssignIdentity:$SystemAssigned ...
    

既存の Azure VM 上でシステム割り当てマネージド ID を有効にするEnable system-assigned managed identity on an existing Azure VM

もともとシステム割り当てマネージド ID をプロビジョニングされていなかった VM でシステム割り当てマネージド ID を有効にするには、お使いのアカウントに仮想マシン共同作成者ロールの割り当てが必要です。To enable system-assigned managed identity on a VM that was originally provisioned without it, your account needs the Virtual Machine Contributor role assignment. Azure AD ディレクトリ ロールを追加で割り当てる必要はありません。No additional Azure AD directory role assignments are required.

  1. Connect-AzAccount を使用して Azure にサインインします。Sign in to Azure using Connect-AzAccount. 目的の VM が含まれる Azure サブスクリプションに関連付けられたアカウントを使用します。Use an account that is associated with the Azure subscription that contains the VM.

    Connect-AzAccount
    
  2. 最初に、Get-AzVM コマンドレットを使用して VM プロパティを取得します。First retrieve the VM properties using the Get-AzVM cmdlet. システム割り当てマネージド ID を有効にするには、Update-AzVM コマンドレットで -AssignIdentity スイッチを使用します。Then to enable a system-assigned managed identity, use the -AssignIdentity switch on the Update-AzVM cmdlet:

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

VM のシステム割り当て ID をグループに追加するAdd VM system assigned identity to a group

VM でシステム割り当て ID を有効にした後は、その ID をグループに追加できます。After you have enabled system assigned identity on a VM, you can add it to a group. 以降の手順では、VM のシステム割り当て ID をグループに追加します。The following procedure adds a VM's system assigned identity to a group.

  1. Connect-AzAccount を使用して Azure にサインインします。Sign in to Azure using Connect-AzAccount. 目的の VM が含まれる Azure サブスクリプションに関連付けられたアカウントを使用します。Use an account that is associated with the Azure subscription that contains the VM.

    Connect-AzAccount
    
  2. VM のサービス プリンシパルの ObjectID (返された値の Id フィールドで指定されています) を取得し、メモします。Retrieve and note the ObjectID (as specified in the Id field of the returned values) of the VM's service principal:

    Get-AzADServicePrincipal -displayname "myVM"
    
  3. グループの ObjectID (返された値の Id フィールドで指定されています) を取得し、メモします。Retrieve and note the ObjectID (as specified in the Id field of the returned values) of the group:

    Get-AzADGroup -searchstring "myGroup"
    
  4. VM のサービス プリンシパルをグループに追加します。Add the VM's service principal to the group:

    Add-AzureADGroupMember -ObjectId "<objectID of group>" -RefObjectId "<object id of VM service principal>"
    

Azure VM でシステム割り当てマネージド ID を無効にするDisable system-assigned managed identity from an Azure VM

VM でシステム割り当てマネージド ID を無効にするには、お使いのアカウントに仮想マシン共同作成者ロールの割り当てが必要です。To disable system-assigned managed identity on a VM, your account needs the Virtual Machine Contributor role assignment. Azure AD ディレクトリ ロールを追加で割り当てる必要はありません。No additional Azure AD directory role assignments are required.

システム割り当てマネージド ID は不要になったが、ユーザー割り当てマネージド ID はまだ必要な仮想マシンがある場合は、次のコマンドレットを使用します。If you have a Virtual Machine that no longer needs the system-assigned managed identity but still needs user-assigned managed identities, use the following cmdlet:

  1. Connect-AzAccount を使用して Azure にサインインします。Sign in to Azure using Connect-AzAccount. 目的の VM が含まれる Azure サブスクリプションに関連付けられたアカウントを使用します。Use an account that is associated with the Azure subscription that contains the VM.

    Connect-AzAccount
    
  2. Get-AzVM コマンドレットを使用して VM プロパティを取得し、-IdentityType パラメーターを UserAssigned に設定します。Retrieve the VM properties using the Get-AzVM cmdlet and set the -IdentityType parameter to UserAssigned:

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

システム割り当てマネージド ID が不要になり、ユーザー割り当てマネージド ID がない仮想マシンがある場合は、次のコマンドを使用します。If you have a virtual machine that no longer needs system-assigned managed identity and it has no user-assigned managed identities, use the following commands:

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

ユーザー割り当てマネージド IDUser-assigned managed identity

このセクションでは、Azure PowerShell を使用して、VM との間でユーザー割り当てマネージド ID を追加および削除する方法について説明します。In this section, you learn how to add and remove a user-assigned managed identity from a VM using Azure PowerShell.

作成中にユーザー割り当てマネージド ID を VM に割り当てるAssign a user-assigned managed identity to a VM during creation

ユーザー割り当て ID を VM に割り当てるには、お使いのアカウントに仮想マシン共同作成者ロールとマネージド ID オペレーター ロールの割り当てが必要です。To assign a user-assigned identity to a VM, your account needs the Virtual Machine Contributor and Managed Identity Operator role assignments. Azure AD ディレクトリ ロールを追加で割り当てる必要はありません。No additional Azure AD directory role assignments are required.

  1. 次のいずれかの Azure VM クイック スタートを参照して、必要なセクション (「Azure へのサインイン」、「リソース グループの作成」、「ネットワーク グループの作成」、「VM の作成」) のみを実行してください。Refer to one of the following Azure VM Quickstarts, completing only the necessary sections ("Sign in to Azure", "Create resource group", "Create networking group", "Create the VM").

    「VM の作成」セクションに到達したときに、New-AzVMConfig コマンドレットの構文にわずかな変更を加えます。When you get to the "Create the VM" section, make a slight modification to the New-AzVMConfig cmdlet syntax. -IdentityType UserAssigned および -IdentityID パラメーターを追加し、ユーザー割り当て ID を使用して VM のプロビジョニングを行います。Add the -IdentityType UserAssigned and -IdentityID parameters to provision the VM with a user-assigned identity. <VM NAME><SUBSCRIPTION ID><RESROURCE GROUP>、および <USER ASSIGNED IDENTITY NAME> を独自の値に置き換えます。Replace <VM NAME>,<SUBSCRIPTION ID>, <RESROURCE GROUP>, and <USER ASSIGNED IDENTITY NAME> with your own values. 例:For example:

    $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 に割り当てるAssign a user-assigned managed identity to an existing Azure VM

ユーザー割り当て ID を VM に割り当てるには、お使いのアカウントに仮想マシン共同作成者ロールとマネージド ID オペレーター ロールの割り当てが必要です。To assign a user-assigned identity to a VM, your account needs the Virtual Machine Contributor and Managed Identity Operator role assignments. Azure AD ディレクトリ ロールを追加で割り当てる必要はありません。No additional Azure AD directory role assignments are required.

  1. Connect-AzAccount を使用して Azure にサインインします。Sign in to Azure using Connect-AzAccount. 目的の VM が含まれる Azure サブスクリプションに関連付けられたアカウントを使用します。Use an account that is associated with the Azure subscription that contains the VM.

    Connect-AzAccount
    
  2. New-AzUserAssignedIdentity コマンドレットを使用して、ユーザー割り当てマネージド ID を作成します。Create a user-assigned managed identity using the New-AzUserAssignedIdentity cmdlet. 出力の Id は次の手順で必要になるので書き留めます。Note the Id in the output because you will need this in the next step.

    重要

    ユーザー割り当てのマネージド ID の作成では、英数字、下線、およびハイフン (0-9、a-z、A-Z、_、-) 文字のみがサポートされます。Creating user-assigned managed identities only supports alphanumeric, underscore and hyphen (0-9 or a-z or A-Z, _ or -) characters. また、VM/VMSS への割り当てを正常に機能させるには、名前の長さを 3 ~ 128 文字に制限する必要があります。Additionally, name should be limited from 3 to 128 character length for the assignment to VM/VMSS to work properly. 詳細については、よく寄せられる質問と既知の問題に関する記事をご覧ください。For more information see FAQs and known issues

    New-AzUserAssignedIdentity -ResourceGroupName <RESOURCEGROUP> -Name <USER ASSIGNED IDENTITY NAME>
    
  3. Get-AzVM コマンドレットを使用して VM プロパティを取得します。Retrieve the VM properties using the Get-AzVM cmdlet. 次に、ユーザー割り当てマネージド ID を Azure VM に割り当てるため、Update-AzVM コマンドレットで -IdentityType および -IdentityID スイッチを使用します。Then to assign a user-assigned managed identity to the Azure VM, use the -IdentityType and -IdentityID switch on the Update-AzVM cmdlet. -IdentityId パラメーターの値は、前の手順で書き留めた Id です。The value for the-IdentityId parameter is the Id you noted in the previous step. <VM NAME><SUBSCRIPTION ID><RESROURCE GROUP>、および <USER ASSIGNED IDENTITY NAME> を独自の値に置き換えます。Replace <VM NAME>, <SUBSCRIPTION ID>, <RESROURCE GROUP>, and <USER ASSIGNED IDENTITY NAME> with your own values.

    警告

    以前のユーザー割り当てマネージド ID を VM に割り当てておくには、VM オブジェクト (たとえば $vm.Identity) の Identity プロパティのクエリを実行します。To retain any previously user-assigned managed identities assigned to the VM, query the Identity property of the VM object (for example, $vm.Identity). ユーザー割り当てマネージド ID が返された場合、VM に割り当てる新しいユーザー割り当てマネージド ID とともにこれらを次のコマンドに含めます。If any user assigned managed identities are returned, include them in the following command along with the new user assigned managed identity you would like to assign to the VM.

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

Azure VM からユーザー割り当てのマネージド ID を削除するRemove a user-assigned managed identity from an Azure VM

VM からユーザー割り当ての ID を削除にするには、お使いのアカウントに仮想マシン共同作成者ロールの割り当てが必要です。To remove a user-assigned identity to a VM, your account needs the Virtual Machine Contributor role assignment.

VM に複数のユーザー割り当てマネージド ID がある場合は、次のコマンドを使用して、最後の ID 以外の ID をすべて削除できます。If your VM has multiple user-assigned managed identities, you can remove all but the last one using the following commands. <RESOURCE GROUP><VM NAME> のパラメーターの値は、必ず実際の値に置き換えてください。Be sure to replace the <RESOURCE GROUP> and <VM NAME> parameter values with your own values. <USER ASSIGNED IDENTITY NAME> はユーザー割り当てマネージド ID の名前プロパティであり、VM 上に残す必要があります。The <USER ASSIGNED IDENTITY NAME> is the user-assigned managed identity's name property, which should remain on the VM. この情報は、VM オブジェクトの Identity プロパティのクエリを実行することにより見つかります。This information can be found by querying the Identity property of the VM object. 例: $vm.IdentityFor example, $vm.Identity:

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

VM にシステム割り当てマネージド ID がないときに、ユーザー割り当てマネージド ID をすべて削除する場合は、次のコマンドを使用します。If your VM does not have a system-assigned managed identity and you want to remove all user-assigned managed identities from it, use the following command:

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

VM にシステム割り当てマネージド ID とユーザー割り当てマネージド ID の両方がある場合は、システム割り当てマネージド ID のみを使用するように切り替えることによって、すべてのユーザー割り当てマネージド ID を削除できます。If your VM has both system-assigned and user-assigned managed identities, you can remove all the user-assigned managed identities by switching to use only system-assigned managed identities.

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

次の手順Next steps