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

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.

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

  • Azure VM 上でシステム割り当てマネージド ID を有効および無効にするEnable and disable the system-assigned managed identity on an Azure VM
  • Azure VM 上でユーザー割り当てマネージド ID を追加および削除するAdd and remove a user-assigned managed identity on an Azure VM

前提条件Prerequisites

Azure Cloud Shell を使用するUse Azure Cloud Shell

Azure では、ブラウザーを介して使用できる対話型のシェル環境、Azure Cloud Shell がホストされています。Azure hosts Azure Cloud Shell, an interactive shell environment that you can use through your browser. Cloud Shell では、bashPowerShell のいずれかを使用して Azure サービスを操作できます。Cloud Shell lets you use either bash or PowerShell to work with Azure services. ローカル環境に何もインストールしなくても、Cloud Shell にプレインストールされているコマンドを使用して、この記事のコードを実行できます。You can use the Cloud Shell pre-installed commands to run the code in this article without having to install anything on your local environment.

Azure Cloud Shell を起動するには:To launch Azure Cloud Shell:

オプションOption 例とリンクExample/Link
コード ブロックの右上隅にある [使ってみる] を選択します。Select Try It in the upper-right corner of a code block. [試してみる] を選択しても、コードは Cloud Shell に自動的にコピーされません。Selecting Try It doesn't automatically copy the code to Cloud Shell. Azure Cloud Shell の [使ってみる] の例
https://shell.azure.com に移動するか、 [Cloud Shell を起動する] ボタンを選択して、ブラウザーで Cloud Shell を開きます。Go to https://shell.azure.com or select the Launch Cloud Shell button to open Cloud Shell in your browser. <a href="https://shell.azure.com" title="Azure Cloud Shell を起動する
Azure portal の右上にあるメニュー バーの [Cloud Shell] ボタンを選択します。Select the Cloud Shell button on the top-right menu bar in the Azure portal. Azure Portal の [Cloud Shell] ボタン

Azure Cloud Shell でこの記事のコードを実行するには:To run the code in this article in Azure Cloud Shell:

  1. Cloud Shell を起動します。Launch Cloud Shell.
  2. [コピー] ボタンを選択して、コード ブロックをコードにコピーします。Select the Copy button on a code block to copy the code.
  3. Windows と Linux では Ctrl + Shift + V キー、macOS では Cmd + Shift + V キーを使用して、コードを Cloud Shell セッションに貼り付けます。Paste the code into the Cloud Shell session with Ctrl+Shift+V on Windows and Linux, or Cmd+Shift+V on macOS.
  4. Enter キーを押して、コードを実行します。Press Enter to run the code.

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

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

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 CLI を使用している場合は、最初に az login を使用して Azure にサインインします。If you're using the Azure CLI in a local console, first sign in to Azure using az login. 次のように、VM をデプロイする Azure サブスクリプションに関連付けられているアカウントを使用します。Use an account that is associated with the Azure subscription under which you would like to deploy the VM:

    az login
    
  2. az group create を使用して、VM とその関連リソースの管理およびデプロイ用にリソース グループを作成します。Create a resource group for containment and deployment of your VM and its related resources, using az group create. 代わりに使用するリソース グループが既にある場合は、この手順をスキップできます。You can skip this step if you already have resource group you would like to use instead:

    az group create --name myResourceGroup --location westus
    
  3. az vm create を使用して VM を作成します。Create a VM using az vm create. 次の例では、--assign-identity パラメーターの要求どおりに、システム割り当てマネージド ID を持つ myVM という名前の VM を作成します。The following example creates a VM named myVM with a system-assigned managed identity, as requested by the --assign-identity parameter. --admin-username および --admin-password パラメーターは、仮想マシンのサインイン用の管理ユーザー名とパスワードを指定します。The --admin-username and --admin-password parameters specify the administrative user name and password account for virtual machine sign-in. これらの値は、お使いの環境に合わせて更新してください。Update these values as appropriate for your environment:

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

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

VM でシステム割り当てマネージド ID を有効にするには、お使いのアカウントに仮想マシン共同作成者ロールの割り当てが必要です。To enable 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.

  1. ローカルのコンソールで Azure CLI を使用している場合は、最初に az login を使用して Azure にサインインします。If you're using the Azure CLI in a local console, first sign in to Azure using az login. 目的の VM が含まれる Azure サブスクリプションに関連付けられたアカウントを使用します。Use an account that is associated with the Azure subscription that contains the VM.

    az login
    
  2. az vm identity assignidentity assign コマンドを使用して、既存の VM に対するシステム割り当て ID を有効にします。Use az vm identity assign with the identity assign command enable the system-assigned identity to an existing VM:

    az vm identity assign -g myResourceGroup -n myVm
    

Azure VM でシステム割り当て ID を無効にするDisable system-assigned 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 identity, but still needs user-assigned identities, use the following command:

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

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

注意

none では、大文字と小文字が区別されます。The value none is case sensitive. 小文字にする必要があります。It must be lowercase.

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

注意

Azure リソースの VM 拡張機能 (非推奨になる予定) のマネージド ID をプロビジョニングしている場合は、az vm extension delete を使用して削除する必要があります。If you have provisioned the managed identity for Azure resources VM extension (to be deprecated), you need to remove it using az vm extension delete. 詳細については、認証のための VM 拡張機能から Azure IMDS への移行に関するページを参照してください。For more information, see Migrate from VM extension to Azure IMDS for authentication.

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

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

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

ユーザー割り当て ID を作成中の VM に割り当てるには、お使いのアカウントに仮想マシン共同作成者ロールとマネージド ID オペレーター ロールの割り当てが必要です。To assign a user-assigned identity to a VM during its creation, 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. 使用するリソース グループが既にある場合は、この手順をスキップできます。You can skip this step if you already have a resource group you would like to use. az group create を使用して、ユーザー割り当てマネージド ID の格納と配置を行うリソース グループを作成します。Create a resource group for containment and deployment of your user-assigned managed identity, using az group create. <RESOURCE GROUP><LOCATION> のパラメーターの値は、必ず実際の値に置き換えてください。Be sure to replace the <RESOURCE GROUP> and <LOCATION> parameter values with your own values. ::

    az group create --name <RESOURCE GROUP> --location <LOCATION>
    
  2. az identity create を使用して、ユーザー割り当てマネージド ID を作成します。Create a user-assigned managed identity using az identity create. -g パラメーターにはユーザー割り当てマネージド ID を作成するリソース グループを指定し、-n パラメーターにはその名前を指定します。The -g parameter specifies the resource group where the user-assigned managed identity is created, and the -n parameter specifies its name.

    重要

    ユーザー割り当て ID を作成するときは、英数字 (0-9、a-z、A-Z)、下線 (_)、およびハイフン (-) のみがサポートされます。When creating user assigned identities, only alphanumeric characters (0-9, a-z, A-Z), the underscore (_) and the hyphen (-) are supported. さらに、VM/VMSS への割り当てが適切に動作するためには、名前の長さを 3 文字以上 128 文字以下にする必要があります。Additionally, the name should be atleast 3 characters and up to 128 characters in length for the assignment to VM/VMSS to work properly. アップデートは後ほどご確認ください。Check back for updates. 詳細については、FAQ と既知の問題に関するページを参照してください。For more information, see FAQs and known issues.

    az identity create -g myResourceGroup -n myUserAssignedIdentity
    

    応答には、次のように、作成されたユーザー割り当てマネージド ID の詳細が含まれています。The response contains details for the user-assigned managed identity created, similar to the following. ユーザー割り当てマネージド ID に割り当てられたリソース ID 値は、次の手順で使用されます。The resource ID value assigned to the user-assigned managed identity is used in the following step.

    {
        "clientId": "73444643-8088-4d70-9532-c3a0fdc190fz",
        "clientSecretUrl": "https://control-westcentralus.identity.azure.net/subscriptions/<SUBSCRIPTON ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<myUserAssignedIdentity>/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. az vm create を使用して VM を作成します。Create a VM using az vm create. 次の例では、--assign-identity パラメーターで指定された新しいユーザー割り当て ID に関連付けられている VM を作成します。The following example creates a VM associated with the new user-assigned identity, as specified by the --assign-identity parameter. <RESOURCE GROUP><VM NAME><USER NAME><PASSWORD>、および <USER ASSIGNED IDENTITY NAME> の各パラメーターの値は、必ず実際の値に置き換えてください。Be sure to replace the <RESOURCE GROUP>, <VM NAME>, <USER NAME>, <PASSWORD>, and <USER ASSIGNED IDENTITY NAME> parameter values with your own values.

    az vm create --resource-group <RESOURCE GROUP> --name <VM NAME> --image UbuntuLTS --admin-username <USER NAME> --admin-password <PASSWORD> --assign-identity <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. az identity create を使用してユーザー割り当て ID を作成します。Create a user-assigned identity using az identity create. -g パラメーターにはユーザー割り当て ID を作成するリソース グループを指定し、-n パラメーターにはその名前を指定します。The -g parameter specifies the resource group where the user-assigned identity is created, and the -n parameter specifies its name. <RESOURCE GROUP><USER ASSIGNED IDENTITY NAME> のパラメーターの値は、必ず実際の値に置き換えてください。Be sure to replace the <RESOURCE GROUP> and <USER ASSIGNED IDENTITY NAME> parameter values with your own values:

    重要

    名前に特殊文字 (アンダースコアなど) が含まれるユーザー割り当てマネージド ID の作成は現在サポートされていません。Creating user-assigned managed identities with special characters (i.e. underscore) in the name is not currently supported. 英数字を使用してください。Please use alphanumeric characters. アップデートは後ほどご確認ください。Check back for updates. 詳細については、よく寄せられる質問と既知の問題に関する記事をご覧ください。For more information see FAQs and known issues

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

    応答には、次のように、作成されたユーザー割り当てマネージド ID の詳細が含まれています。The response contains details for the user-assigned managed identity created, similar to the following.

    {
         "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"    
    }
    
  2. az vm identity assign を使用して、ユーザー割り当て ID を VM に割り当てます。Assign the user-assigned identity to your VM using az vm identity assign. <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 のリソース name プロパティです。The <USER ASSIGNED IDENTITY NAME> is the user-assigned managed identity's resource name property, as created in the previous step:

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

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.

仮想マシンに割り当てられている唯一のユーザー割り当てマネージド ID の場合は、ID の種類の値から UserAssigned が削除されます。If this is the only user-assigned managed identity assigned to the virtual machine, UserAssigned will be removed from the identity type value. <RESOURCE GROUP><VM NAME> のパラメーターの値は、必ず実際の値に置き換えてください。Be sure to replace the <RESOURCE GROUP> and <VM NAME> parameter values with your own values. <USER ASSIGNED IDENTITY> はユーザー割り当て ID の name プロパティになります。これは、az vm identity show を使用して、仮想マシンの ID セクションで見つけることができます。The <USER ASSIGNED IDENTITY> will be the user-assigned identity's name property, which can be found in the identity section of the virtual machine using az vm identity show:

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

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

注意

none では、大文字と小文字が区別されます。The value none is case sensitive. 小文字にする必要があります。It must be lowercase.

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

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

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

次の手順Next steps