Azure Managed Applications のデプロイ時に Key Vault シークレットにアクセスするAccess Key Vault secret when deploying Azure Managed Applications

デプロイ時に、セキュリティで保護された値 (パスワードなど) をパラメーターとして渡す必要がある場合は、Azure Key Vault からその値を取得できます。When you need to pass a secure value (like a password) as a parameter during deployment, you can retrieve the value from an Azure Key Vault. Managed Applications のデプロイ時に Key Vault にアクセスするには、アプライアンス リソース プロバイダー サービス プリンシパルにアクセス許可を付与する必要があります。To access the Key Vault when deploying Managed Applications, you must grant access to the Appliance Resource Provider service principal. マネージド アプリケーション サービスでは、この ID を使用して操作が実行されます。The Managed Applications service uses this identity to run operations. デプロイ時にキー コンテナーから正常に値を取得するには、サービス プリンシパルでキー コンテナーにアクセスできる必要があります。To successfully retrieve a value from a Key Vault during deployment, the service principal must be able to access the Key Vault.

この記事では、Managed Applications を使用するように Key Vault を構成する方法について説明します。This article describes how to configure the Key Vault to work with Managed Applications.

テンプレートのデプロイを有効にするEnable template deployment

  1. ポータルで Key Vault を選択します。In the portal, select your Key Vault.

  2. [アクセス ポリシー] を選択します。Select Access policies.

    [アクセス ポリシー] の選択

  3. [クリックして高度なアクセス ポリシーを表示する] を選択します。Select Click to show advanced access policies.

    高度なアクセス ポリシーの表示

  4. [テンプレートの展開に対して Azure Resource Manager へのアクセスを有効にする] を選択します。Select Enable access to Azure Resource Manager for template deployment. 次に、 [保存] を選択します。Then, select Save.

    テンプレートのデプロイを有効にする

サービスを共同作成者として追加するAdd service as contributor

  1. [アクセス制御 (IAM)] を選択します。Select Access control (IAM).

    [アクセス制御] の選択

  2. [ロールの割り当ての追加] を選択します。Select Add role assignment.

    [追加] の選択

  3. ロールとして [共同作成者] を選択します。Select Contributor for the role. アプライアンス リソース プロバイダーを検索し、使用可能なオプションから選択します。Search for Appliance Resource Provider and select it from the available options.

    プロバイダーの検索

  4. [保存] を選択します。Select Save.

Key Vault シークレットを参照するReference Key Vault secret

マネージド アプリケーションで Key Vault からテンプレートにシークレットを渡すには、リンクされたテンプレートを使用して、そのテンプレートのパラメータ内の Key Vault を参照する必要があります。To pass a secret from a Key Vault to a template in your Managed Application, you must use a linked template and reference the Key Vault in the parameters for the linked template. Key Vault のリソース ID とシークレットの名前を指定してください。Provide the resource ID of the Key Vault and the name of the secret.

"resources": [{
  "apiVersion": "2015-01-01",
  "name": "linkedTemplate",
  "type": "Microsoft.Resources/deployments",
  "properties": {
    "mode": "incremental",
    "templateLink": {
      "uri": "https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/azure-resource-manager/keyvaultparameter/sqlserver.json",
      "contentVersion": "1.0.0.0"
    },
    "parameters": {
      "adminPassword": {
        "reference": {
          "keyVault": {
            "id": "/subscriptions/<subscription-id>/resourceGroups/<rg-name>/providers/Microsoft.KeyVault/vaults/<key-vault-name>"
          },
          "secretName": "<secret-name>"
        }
      },
      "adminLogin": { "value": "[parameters('adminLogin')]" },
      "sqlServerName": {"value": "[parameters('sqlServerName')]"}
    }
  }
}],

次の手順Next steps

マネージド アプリケーションのデプロイ時にアクセスできるように Key Vault を構成しました。You've configured your Key Vault to be accessible during deployment of a Managed Application.