Azure Container Instances でマネージド ID を使用する方法How to use managed identities with Azure Container Instances

Azure リソース用のマネージド ID を使用して、他の Azure サービスと対話する Azure Container Instances 内のコードを実行します。こうするとシークレットや資格情報をコード内に保持する必要がありません。Use managed identities for Azure resources to run code in Azure Container Instances that interacts with other Azure services - without maintaining any secrets or credentials in code. この機能により、Azure Active Directory で自動管理される ID が Azure Container Instances のデプロイに提供されます。The feature provides an Azure Container Instances deployment with an automatically managed identity in Azure Active Directory.

この記事では、Azure Container Instances でのマネージド ID の詳細について、および次の点について説明します。In this article, you learn more about managed identities in Azure Container Instances and:

  • コンテナー グループでユーザー割り当て ID またはシステム割り当て ID を有効にするEnable a user-assigned or system-assigned identity in a container group
  • ID に Azure Key Vault へのアクセス権を付与するGrant the identity access to an Azure Key Vault
  • マネージド ID を使用して、実行中のコンテナーから Key Vault にアクセスするUse the managed identity to access a Key Vault from a running container

サンプルを調整することにより、Azure Container Instances 内の ID を有効にし、それを使って他の Azure サービスにアクセスします。Adapt the examples to enable and use identities in Azure Container Instances to access other Azure services. これらのサンプルは対話型です。These examples are interactive. ただし実際には、コンテナー イメージがコードを実行して Azure サービスにアクセスします。However, in practice your container images would run code to access Azure services.

注意

現在、仮想ネットワークにデプロイされたコンテナー グループ内でマネージド ID を使用することはできません。Currently you cannot use a managed identity in a container group deployed to a virtual network.

マネージド ID を使用する理由Why use a managed identity?

実行中のコンテナーでマネージド ID を使用すると、資格情報をコンテナー コード内で管理しなくても、Azure AD 認証をサポートするサービスに対して認証することができます。Use a managed identity in a running container to authenticate to any service that supports Azure AD authentication without managing credentials in your container code. AD 認証をサポートしないサービスについては、Azure Key Vault の中にシークレットを格納し、マネージド ID を使って Key Vault にアクセスして資格情報を取得できます。For services that don't support AD authentication, you can store secrets in Azure Key Vault and use the managed identity to access Key Vault to retrieve credentials. マネージド ID の使用法の詳細については、「Azure リソースのマネージド ID とは」を参照してください。For more information about using a managed identity, see What is managed identities for Azure resources?

重要

現在、この機能はプレビュー段階にあります。This feature is currently in preview. プレビュー版は、追加使用条件に同意することを条件に使用できます。Previews are made available to you on the condition that you agree to the supplemental terms of use. この機能の一部の側面は、一般公開 (GA) 前に変更される可能性があります。Some aspects of this feature may change prior to general availability (GA). 現在、マネージド ID は Linux コンテナー インスタンスでのみサポートされています。Currently, managed identities are only supported on Linux container instances.

マネージド ID の有効化Enable a managed identity

Azure Container Instances では、REST API バージョン 2018-10-01 以降および対応する SDK とツールで、Azure リソース用のマネージド ID がサポートされます。In Azure Container Instances, managed identities for Azure resources are supported as of REST API version 2018-10-01 and corresponding SDKs and tools. コンテナー グループを作成するときに、ContainerGroupIdentity プロパティを設定することで 1 つまたは複数のマネージド ID を有効にできます。When you create a container group, enable one or more managed identities by setting a ContainerGroupIdentity property. また、コンテナー グループが実行状態になった後でマネージド ID を有効化または更新できます。どちらの場合も、それによりコンテナー グループが再起動します。You can also enable or update managed identities after a container group is running; either action causes the container group to restart. 新規または既存のコンテナー グループで ID を設定するには、Azure CLI、Resource Manager テンプレート、または YAML ファイルを使用します。To set the identities on a new or existing container group, use the Azure CLI, a Resource Manager template, or a YAML file.

Azure Container Instances は、ユーザー割り当て、システム割り当ての両方の種類の Azure マネージド ID をサポートしています。Azure Container Instances supports both types of managed Azure identities: user-assigned and system-assigned. 各コンテナー グループで、1 つのシステム割り当て ID、1 つまたは複数のユーザー割り当て ID、または両方の種類の ID を有効化できます。On a container group, you can enable a system-assigned identity, one or more user-assigned identities, or both types of identities.

  • ユーザー割り当てのマネージド ID は、使用中のサブスクリプションで信頼される Azure AD テナント内のスタンドアロン Azure リソースとして作成されます。A user-assigned managed identity is created as a standalone Azure resource in the Azure AD tenant that's trusted by the subscription in use. ID を作成した後、(Azure Container Instances または他の Azure サービスにある) 1 つまたは複数の Azure リソースにその ID を割り当てることができます。After the identity is created, the identity can be assigned to one or more Azure resources (in Azure Container Instances or other Azure services). ユーザー割り当て ID のライフサイクルは、割り当て先となるコンテナー グループまたはその他のサービス リソースのライフサイクルとは別個に管理されます。The lifecycle of a user-assigned identity is managed separately from the lifecycle of the container groups or other service resources to which it's assigned. この動作は、Azure Container Instances で特に役立ちます。This behavior is especially useful in Azure Container Instances. コンテナー グループの有効期間を超えて ID が存続するので、他の標準的な設定とともにそれを再利用することで、コンテナー グループのデプロイの反復可能性を高くすることができます。Because the identity extends beyond the lifetime of a container group, you can reuse it along with other standard settings to make your container group deployments highly repeatable.

  • システム割り当てのマネージド ID は、Azure Container Instances 内のコンテナー グループに対して直接有効になります。A system-assigned managed identity is enabled directly on a container group in Azure Container Instances. これが有効になると、Azure は、そのインスタンスのサブスクリプションで信頼されている Azure AD テナント内にグループの ID を作成します。When it's enabled, Azure creates an identity for the group in the Azure AD tenant that's trusted by the subscription of the instance. ID が作成されると、コンテナー グループの各コンテナーに資格情報がプロビジョニングされます。After the identity is created, the credentials are provisioned in each container in the container group. システム割り当て ID のライフサイクルは、対象となるコンテナー グループに直接関連付けられます。The lifecycle of a system-assigned identity is directly tied to the container group that it's enabled on. グループが削除された場合、Azure は、Azure AD 内の資格情報と ID を自動的にクリーンアップします。When the group is deleted, Azure automatically cleans up the credentials and the identity in Azure AD.

マネージド ID の使用Use a managed identity

マネージド ID を使用するには、サブスクリプション内の 1 つ以上の Azure サービス リソース (Web アプリ、Key Vault、ストレージ アカウントなど) へのアクセス権を最初に ID に付与する必要があります。To use a managed identity, the identity must initially be granted access to one or more Azure service resources (such as a Web App, a Key Vault, or a Storage Account) in the subscription. 実行中のコンテナーから Azure リソースにアクセスするには、Azure AD エンドポイントからのアクセス トークンをコードの中で取得する必要があります。To access the Azure resources from a running container, your code must acquire an access token from an Azure AD endpoint. その後、Azure AD 認証をサポートするサービスを呼び出すときにアクセス トークンをコードから送信します。Then, your code sends the access token on a call to a service that supports Azure AD authentication.

実行中のコンテナーでマネージド ID を使用する方法は、Azure VM での ID の使用と基本的に同じです。Using a managed identity in a running container is essentially the same as using an identity in an Azure VM. トークンAzure PowerShell または Azure CLI、または Azure SDK の使用に関する VM ガイダンス資料を参照してください。See the VM guidance for using a token, Azure PowerShell or Azure CLI, or the Azure SDKs.

Azure Cloud Shell を開くOpen Azure Cloud Shell

Azure でホストされる対話型のシェル環境である Azure Cloud Shell は、ブラウザーを介して使用されます。Azure Cloud Shell is an interactive shell environment hosted in Azure and used through your browser. Azure Cloud Shell では、bash または PowerShell のいずれかのシェルを使用して、Azure サービスで動作するさまざまなツールを実行できます。Azure Cloud Shell allows you to use either bash or PowerShell shells to run a variety of tools to work with Azure services. Azure Cloud Shell にはコマンドがプレインストールされており、ローカル環境に何もインストールしなくても、この記事の内容を実行できるようになっています。Azure Cloud Shell comes pre-installed with the commands to allow you to run the content of this article without having to install anything on your local environment.

この記事に含まれるコードを Azure Cloud Shell で実行するには、Cloud Shell セッションを開き、コード ブロック上の [コピー] ボタンを使ってコードをコピーし、Ctrl + Shift + V キー (Windows と Linux) または command + Shift + V キー (macOS) を押して Cloud Shell セッションに貼り付けます。To run any code contained in this article on Azure Cloud Shell, open a Cloud Shell session, use the Copy button on a code block to copy the code, and paste it into the Cloud Shell session with Ctrl+Shift+V on Windows and Linux, or Cmd+Shift+V on macOS. テキストを貼り付けても自動的には実行されません。コードを実行するには、Enter キーを押します。Pasted text is not automatically executed, so press Enter to run code.

Azure Cloud Shell は次の方法で起動できます。You can launch Azure Cloud Shell with:

オプションOption 例とリンクExample/Link
コード ブロックの右上隅にある [使ってみる] を選択します。Select Try It in the upper-right corner of a code block. テキストが自動的に Cloud Shell にコピーされるわけでは__ありません__。This doesn't automatically copy text to Cloud Shell. Azure Cloud Shell の [使ってみる] の例
ご使用のブラウザー内で Azure Cloud Shell を開きます。Open Azure 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 menu in the upper-right corner of the Azure portal. Azure Portal の [Cloud Shell] ボタン

CLI をローカルにインストールして使用する場合、この記事では、Azure CLI バージョン 2.0.49 以降を実行していることが要件となります。If you choose to install and use the CLI locally, this article requires that you are running the Azure CLI version 2.0.49 or later. バージョンを確認するには、az --version を実行します。Run az --version to find the version. インストールまたはアップグレードする必要がある場合は、Azure CLI のインストールに関するページを参照してください。If you need to install or upgrade, see Install Azure CLI.

Azure Key Vault を作成するCreate an Azure Key Vault

この記事の例では、Azure Container Instances でマネージド ID を使用して Azure Key Vault シークレットにアクセスします。The examples in this article use a managed identity in Azure Container Instances to access an Azure Key Vault secret.

まず、次の az group create コマンドを使用して、myResourceGroup という名前のリソース グループを eastus の場所に作成します。First, create a resource group named myResourceGroup in the eastus location with the following az group create command:

az group create --name myResourceGroup --location eastus

Key Vault を作成するには az keyvault create コマンドを使用します。Use the az keyvault create command to create a Key Vault. 必ず一意の Key Vault 名を指定してください。Be sure to specify a unique Key Vault name.

az keyvault create --name mykeyvault --resource-group myResourceGroup --location eastus

次のように az keyvault secret set コマンドを使用して、シークレット例を Key Vault に保存します。Store a sample secret in the Key Vault using the az keyvault secret set command:

az keyvault secret set --name SampleSecret --value "Hello Container Instances!" --description ACIsecret  --vault-name mykeyvault

次に示す例に従い、Azure Container Instances のユーザー定義/システム定義のいずれかのマネージド ID を使って Key Vault にアクセスします。Continue with the following examples to access the Key Vault using either a user-assigned or system-assigned managed identity in Azure Container Instances.

例 1:ユーザー割り当ての ID を使用して Azure Key Vault にアクセスするExample 1: Use a user-assigned identity to access Azure Key Vault

ID の作成Create an identity

まず az identity create コマンドを使用して、サブスクリプション内で ID を作成します。First create an identity in your subscription using the az identity create command. Key Vault の作成に使ったのと同じリソース グループを使用することも、別のものを使用することもできます。You can use the same resource group used to create the Key Vault, or use a different one.

az identity create --resource-group myResourceGroup --name myACIId

後続のステップで ID を使用するために、az identity show コマンドを使って ID のサービス プリンシパル ID とリソース ID を変数に格納します。To use the identity in the following steps, use the az identity show command to store the identity's service principal ID and resource ID in variables.

# Get service principal ID of the user-assigned identity
spID=$(az identity show --resource-group myResourceGroup --name myACIId --query principalId --output tsv)

# Get resource ID of the user-assigned identity
resourceID=$(az identity show --resource-group myResourceGroup --name myACIId --query id --output tsv)

コンテナー グループでユーザー割り当て ID を有効にするEnable a user-assigned identity on a container group

次の az container create コマンドを実行して、Ubuntu Server に基づくコンテナー インスタンスを作成します。Run the following az container create command to create a container instance based on Ubuntu Server. この例で作成される単一コンテナーのグループを使用すると、他の Azure サービスに対話的にアクセスできます。This example provides a single-container group that you can use to interactively access other Azure services. --assign-identity パラメーターは、ユーザー割り当てのマネージド ID をグループに渡します。The --assign-identity parameter passes your user-assigned managed identity to the group. 実行時間の長いこのコマンドにより、コンテナーの実行状態が続きます。The long-running command keeps the container running. この例では、Key Vault の作成に使ったのと同じリソース グループを使用していますが、別のものを指定することもできます。This example uses the same resource group used to create the Key Vault, but you could specify a different one.

az container create --resource-group myResourceGroup --name mycontainer --image microsoft/azure-cli --assign-identity $resourceID --command-line "tail -f /dev/null"

数秒以内に、Azure CLI からデプロイが完了したことを示す応答を受信します。Within a few seconds, you should get a response from the Azure CLI indicating that the deployment has completed. az container show コマンドを使用して、その状態を確認します。Check its status with the az container show command.

az container show --resource-group myResourceGroup --name mycontainer

出力の identity セクションが次のように表示されたら、コンテナー グループで ID が設定されています。The identity section in the output looks similar to the following, showing the identity is set in the container group. userAssignedIdentities の下の principalID は、Azure Active Directory で作成した ID のサービス プリンシパルです。The principalID under userAssignedIdentities is the service principal of the identity you created in Azure Active Directory:

...
"identity": {
    "principalId": "null",
    "tenantId": "xxxxxxxx-f292-4e60-9122-xxxxxxxxxxxx",
    "type": "UserAssigned",
    "userAssignedIdentities": {
      "/subscriptions/xxxxxxxx-0903-4b79-a55a-xxxxxxxxxxxx/resourcegroups/danlep1018/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myACIId": {
        "clientId": "xxxxxxxx-5523-45fc-9f49-xxxxxxxxxxxx",
        "principalId": "xxxxxxxx-f25b-4895-b828-xxxxxxxxxxxx"
      }
    }
  },
...

Key Vault へのアクセス権をユーザー割り当て ID に付与するGrant user-assigned identity access to the Key Vault

次の az keyvault set-policy コマンドを実行して、Key Vault に対するアクセス ポリシーを設定します。Run the following az keyvault set-policy command to set an access policy on the Key Vault. 次の例により、ユーザー割り当て ID が Key Vault からシークレットを取得できるようになります。The following example allows the user-assigned identity to get secrets from the Key Vault:

 az keyvault set-policy --name mykeyvault --resource-group myResourceGroup --object-id $spID --secret-permissions get

ユーザー定義 ID を使用して Key Vault からシークレットを取得するUse user-assigned identity to get secret from Key Vault

これで、実行中のコンテナー インスタンス内でマネージド ID を使って Key Vault にアクセスすることができます。Now you can use the managed identity to access the Key Vault within the running container instance. この例では、まずコンテナーで bash シェルを次のように起動します。For this example, first launch a bash shell in the container:

az container exec --resource-group myResourceGroup --name mycontainer --exec-command "/bin/bash"

コンテナーの bash シェルで、次のコマンドを実行します。Run the following commands in the bash shell in the container. Azure Active Directory を使って Key Vault に認証するためのアクセス トークンを取得するには、次のコマンドを実行します。To get an access token to use Azure Active Directory to authenticate to Key Vault, run the following command:

curl 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https%3A%2F%2Fvault.azure.net' -H Metadata:true -s

出力:Output:

{"access_token":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Imk2bEdrM0ZaenhSY1ViMkMzbkVRN3N5SEpsWSIsImtpZCI6Imk2bEdrM0ZaenhSY1ViMkMzbkVRN3N5SEpsWSJ9......xxxxxxxxxxxxxxxxx","refresh_token":"","expires_in":"28799","expires_on":"1539927532","not_before":"1539898432","resource":"https://vault.azure.net/","token_type":"Bearer"}

後続のコマンドで認証に使うためにアクセス トークンを変数に格納するには、次のコマンドを実行します。To store the access token in a variable to use in subsequent commands to authenticate, run the following command:

token=$(curl 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https%3A%2F%2Fvault.azure.net' -H Metadata:true | jq -r '.access_token')

次に、アクセス トークンを使って Key Vault に対して認証し、シークレットを読み取ります。Now use the access token to authenticate to Key Vault and read a secret. URL 内のキー コンテナー名を必ず置き換えてください ( https://mykeyvault.vault.azure.net/... ):Be sure to substitute the name of your key vault in the URL (https://mykeyvault.vault.azure.net/...):

curl https://mykeyvault.vault.azure.net/secrets/SampleSecret/?api-version=2016-10-01 -H "Authorization: Bearer $token"

応答では次のようにシークレットが表示されます。The response looks similar to the following, showing the secret. コードの中でこの出力を解析して、シークレットを取得できます。In your code, you would parse this output to obtain the secret. その後、後続の操作でシークレットを使用して、別の Azure リソースにアクセスします。Then, use the secret in a subsequent operation to access another Azure resource.

{"value":"Hello Container Instances!","contentType":"ACIsecret","id":"https://mykeyvault.vault.azure.net/secrets/SampleSecret/xxxxxxxxxxxxxxxxxxxx","attributes":{"enabled":true,"created":1539965967,"updated":1539965967,"recoveryLevel":"Purgeable"},"tags":{"file-encoding":"utf-8"}}

例 2:システム割り当ての ID を使用して Azure Key Vault にアクセスするExample 2: Use a system-assigned identity to access Azure Key Vault

コンテナー グループでシステム割り当て ID を有効にするEnable a system-assigned identity on a container group

次の az container create コマンドを実行して、Ubuntu Server に基づくコンテナー インスタンスを作成します。Run the following az container create command to create a container instance based on Ubuntu Server. この例で作成される単一コンテナーのグループを使用すると、他の Azure サービスに対話的にアクセスできます。This example provides a single-container group that you can use to interactively access other Azure services. --assign-identity パラメーター (他の値なし) を指定すると、システム割り当てのマネージド ID がグループで有効になります。The --assign-identity parameter with no additional value enables a system-assigned managed identity on the group. 実行時間の長いこのコマンドにより、コンテナーの実行状態が続きます。The long-running command keeps the container running. この例では、Key Vault の作成に使ったのと同じリソース グループを使用していますが、別のものを指定することもできます。This example uses the same resource group used to create the Key Vault, but you could specify a different one.

az container create --resource-group myResourceGroup --name mycontainer --image microsoft/azure-cli --assign-identity --command-line "tail -f /dev/null"

数秒以内に、Azure CLI からデプロイが完了したことを示す応答を受信します。Within a few seconds, you should get a response from the Azure CLI indicating that the deployment has completed. az container show コマンドを使用して、その状態を確認します。Check its status with the az container show command.

az container show --resource-group myResourceGroup --name mycontainer

出力の identity セクションが次のように表示され、システム割り当て ID が Azure Active Directory で作成されたことを示します。The identity section in the output looks similar to the following, showing that a system-assigned identity is created in Azure Active Directory:

...
"identity": {
    "principalId": "xxxxxxxx-528d-7083-b74c-xxxxxxxxxxxx",
    "tenantId": "xxxxxxxx-f292-4e60-9122-xxxxxxxxxxxx",
    "type": "SystemAssigned",
    "userAssignedIdentities": null
},
...

後続のステップで使用するために、この ID の変数の値を principalId (サービス プリンシパル ID) に設定します。Set a variable to the value of principalId (the service principal ID) of the identity, to use in later steps.

spID=$(az container show --resource-group myResourceGroup --name mycontainer --query identity.principalId --out tsv)

Key Vault へのアクセス権をコンテナー グループに付与するGrant container group access to the Key Vault

次の az keyvault set-policy コマンドを実行して、Key Vault に対するアクセス ポリシーを設定します。Run the following az keyvault set-policy command to set an access policy on the Key Vault. 次の例により、システム定義 ID が Key Vault からシークレットを取得できるようになります。The following example allows the system-managed identity to get secrets from the Key Vault:

 az keyvault set-policy --name mykeyvault --resource-group myResourceGroup --object-id $spID --secret-permissions get

コンテナー グループ ID を使用して Key Vault からシークレットを取得するUse container group identity to get secret from Key Vault

これで、実行中のコンテナー インスタンス内でマネージド ID を使って Key Vault にアクセスすることができます。Now you can use the managed identity to access the Key Vault within the running container instance. この例では、まずコンテナーで bash シェルを次のように起動します。For this example, first launch a bash shell in the container:

az container exec --resource-group myResourceGroup --name mycontainer --exec-command "/bin/bash"

コンテナーの bash シェルで、次のコマンドを実行します。Run the following commands in the bash shell in the container. Azure Active Directory を使って Key Vault に認証するためのアクセス トークンを取得するには、次のコマンドを実行します。To get an access token to use Azure Active Directory to authenticate to Key Vault, run the following command:

curl 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https%3A%2F%2Fvault.azure.net%2F' -H Metadata:true -s

出力:Output:

{"access_token":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Imk2bEdrM0ZaenhSY1ViMkMzbkVRN3N5SEpsWSIsImtpZCI6Imk2bEdrM0ZaenhSY1ViMkMzbkVRN3N5SEpsWSJ9......xxxxxxxxxxxxxxxxx","refresh_token":"","expires_in":"28799","expires_on":"1539927532","not_before":"1539898432","resource":"https://vault.azure.net/","token_type":"Bearer"}

後続のコマンドで認証に使うためにアクセス トークンを変数に格納するには、次のコマンドを実行します。To store the access token in a variable to use in subsequent commands to authenticate, run the following command:

token=$(curl 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https%3A%2F%2Fvault.azure.net' -H Metadata:true | jq -r '.access_token')

次に、アクセス トークンを使って Key Vault に対して認証し、シークレットを読み取ります。Now use the access token to authenticate to Key Vault and read a secret. URL 内のキー コンテナー名を必ず置き換えてください (https://mykeyvault.vault.azure.net/... )。Be sure to substitute the name of your key vault in the URL (https://mykeyvault.vault.azure.net/...):

curl https://mykeyvault.vault.azure.net/secrets/SampleSecret/?api-version=2016-10-01 -H "Authorization: Bearer $token"

応答では次のようにシークレットが表示されます。The response looks similar to the following, showing the secret. コードの中でこの出力を解析して、シークレットを取得できます。In your code, you would parse this output to obtain the secret. その後、後続の操作でシークレットを使用して、別の Azure リソースにアクセスします。Then, use the secret in a subsequent operation to access another Azure resource.

{"value":"Hello Container Instances!","contentType":"ACIsecret","id":"https://mykeyvault.vault.azure.net/secrets/SampleSecret/xxxxxxxxxxxxxxxxxxxx","attributes":{"enabled":true,"created":1539965967,"updated":1539965967,"recoveryLevel":"Purgeable"},"tags":{"file-encoding":"utf-8"}}

Resource Manager テンプレートを使用してマネージド ID を有効にするEnable managed identity using Resource Manager template

Resource Manager テンプレートを使用してコンテナー グループのマネージド ID を有効にするには、ContainerGroupIdentity オブジェクトを使って Microsoft.ContainerInstance/containerGroups オブジェクトの identity プロパティを設定します。To enable a managed identity in a container group using a Resource Manager template, set the identity property of the Microsoft.ContainerInstance/containerGroups object with a ContainerGroupIdentity object. 次のスニペットは、さまざまなシナリオ別の identity プロパティの構成を示しています。The following snippets show the identity property configured for different scenarios. Resource Manager テンプレート リファレンスを参照してください。See the Resource Manager template reference. apiVersion2018-10-01 を指定します。Specify an apiVersion of 2018-10-01.

ユーザー割り当て IDUser-assigned identity

ユーザー割り当て ID は、次の形式のリソース ID です。A user-assigned identity is a resource ID of the form:

"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}"

1 つまたは複数のユーザー割り当て ID を有効にすることができます。You can enable one or more user-assigned identities.

"identity": {
    "type": "UserAssigned",
    "userAssignedIdentities": {
        "myResourceID1": {
            }
        }
    }

システム割り当て IDSystem-assigned identity

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

システム割り当て/ユーザー割り当て IDSystem- and user-assigned identities

各コンテナー グループで、1 つのシステム割り当て ID と、1 つまたは複数のユーザー割り当て ID の両方を有効化できます。On a container group, you can enable both a system-assigned identity and one or more user-assigned identities.

"identity": {
    "type": "System Assigned, UserAssigned",
    "userAssignedIdentities": {
        "myResourceID1": {
            }
        }
    }
...

マネージド ID を有効にするには YAML ファイルを使用します。Enable managed identity using YAML file

YAML ファイルを使ってデプロイされるコンテナー グループでマネージド ID を有効にするには、次の YAML を含めます。To enable a managed identity in a container group deployed using a YAML file, include the following YAML. apiVersion2018-10-01 を指定します。Specify an apiVersion of 2018-10-01.

ユーザー割り当て IDUser-assigned identity

ユーザー割り当て ID は次の形式のリソース ID ですA user-assigned identity is a resource ID of the form

'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'

1 つまたは複数のユーザー割り当て ID を有効にすることができます。You can enable one or more user-assigned identities.

identity:
  type: UserAssigned
  userAssignedIdentities:
    {'myResourceID1':{}}

システム割り当て IDSystem-assigned identity

identity:
  type: SystemAssigned

システム割り当て/ユーザー割り当て IDSystem- and user-assigned identities

各コンテナー グループで、1 つのシステム割り当て ID と、1 つまたは複数のユーザー割り当て ID の両方を有効化できます。On a container group, you can enable both a system-assigned identity and one or more user-assigned identities.

identity:
  type: SystemAssigned, UserAssigned
  userAssignedIdentities:
   {'myResourceID1':{}}

次の手順Next steps

この記事では、Azure Container Instances でのマネージド ID について、および次の方法について説明しました。In this article, you learned about managed identities in Azure Container Instances and how to:

  • コンテナー グループでユーザー割り当て ID またはシステム割り当て ID を有効にするEnable a user-assigned or system-assigned identity in a container group
  • ID に Azure Key Vault へのアクセス権を付与するGrant the identity access to an Azure Key Vault
  • マネージド ID を使用して、実行中のコンテナーから Key Vault にアクセスするUse the managed identity to access a Key Vault from a running container