Azure Yönetilen Uygulamaları dağıtırken Key Vault gizli dizisine erişme

Dağıtım sırasında parametre olarak güvenli bir değer (parola gibi) geçirmeniz gerektiğinde, değeri bir Azure Key Vault'tan alabilirsiniz. Yönetilen Uygulamaları dağıtırken Key Vault'a erişmek için Alet Kaynak Sağlayıcısı hizmet sorumlusuna erişim vermelisiniz. Yönetilen Uygulamalar hizmeti, işlemleri çalıştırmak için bu kimliği kullanır. Dağıtım sırasında Key Vault'tan başarılı bir şekilde değer almak için hizmet sorumlusunun Key Vault'a erişebilmesi gerekir.

Bu makalede, Key Vault'un Yönetilen Uygulamalarla çalışacak şekilde nasıl yapılandırıldığı açıklanır.

Şablon dağıtımlarını etkinleştirme

  1. Azure Portal oturum açın.

  2. Anahtar kasanızı açın. Arama kutusuna anahtar kasaları girin veya Anahtar kasaları'nı seçin.

    Screenshot of the Azure home page to open a key vault using search or by selecting key vault.

  3. Erişim yapılandırması'nı seçin.

    Screenshot of the key vault setting to select access configuration.

  4. Şablon dağıtımı için Azure Resource Manager'ı seçin. Ardından Uygula'yı seçin.

    Screenshot of the key vault's access configuration that enables Azure Resource Manager for template deployment.

Katkıda bulunan olarak hizmet ekleme

Katkıda Bulunan rolünü anahtar kasası kapsamındaki Alet Kaynak Sağlayıcısı kullanıcısına atayın. Katkıda Bulunan rolü, rol ataması için ayrıcalıklı bir yönetici rolüdür . Ayrıntılı adımlar için Azure portalını kullanarak Azure rolleri atama bölümüne gidin.

Alet Kaynak Sağlayıcısı, Microsoft Entra kiracınızdaki bir hizmet sorumlusudur. Azure portalından Microsoft Entra ID>Enterprise uygulamaları'na gidip arama filtresini Microsoft Uygulamaları olarak değiştirerek kaydın kaydedilip kaydedilmediğini doğrulayabilirsiniz. Alet Kaynak Sağlayıcısı'yı arayın. Bulunamazsa kaynak sağlayıcısını Microsoft.Solutions kaydedin.

Key Vault gizli dizisine başvurma

Key Vault'tan Yönetilen Uygulamanızdaki bir şablona gizli dizi geçirmek için bağlantılı veya iç içe yerleştirilmiş bir şablon kullanmanız ve bağlantılı veya iç içe yerleştirilmiş şablonun parametrelerinde Key Vault'a başvurmanız gerekir. Key Vault'un kaynak kimliğini ve gizli dizinin adını belirtin.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "The location where the resources will be deployed."
      }
    },
    "vaultName": {
      "type": "string",
      "metadata": {
        "description": "The name of the key vault that contains the secret."
      }
    },
    "secretName": {
      "type": "string",
      "metadata": {
        "description": "The name of the secret."
      }
    },
    "vaultResourceGroupName": {
      "type": "string",
      "metadata": {
        "description": "The name of the resource group that contains the key vault."
      }
    },
    "vaultSubscription": {
      "type": "string",
      "defaultValue": "[subscription().subscriptionId]",
      "metadata": {
        "description": "The name of the subscription that contains the key vault."
      }
    }
  },
  "resources": [
    {
      "type": "Microsoft.Resources/deployments",
      "apiVersion": "2022-09-01",
      "name": "dynamicSecret",
      "properties": {
        "mode": "Incremental",
        "expressionEvaluationOptions": {
          "scope": "inner"
        },
        "template": {
          "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
          "contentVersion": "1.0.0.0",
          "parameters": {
            "adminLogin": {
              "type": "string"
            },
            "adminPassword": {
              "type": "securestring"
            },
            "location": {
              "type": "string"
            }
          },
          "variables": {
            "sqlServerName": "[concat('sql-', uniqueString(resourceGroup().id, 'sql'))]"
          },
          "resources": [
            {
              "type": "Microsoft.Sql/servers",
              "apiVersion": "2022-05-01-preview",
              "name": "[variables('sqlServerName')]",
              "location": "[parameters('location')]",
              "properties": {
                "administratorLogin": "[parameters('adminLogin')]",
                "administratorLoginPassword": "[parameters('adminPassword')]"
              }
            }
          ],
          "outputs": {
            "sqlFQDN": {
              "type": "string",
              "value": "[reference(variables('sqlServerName')).fullyQualifiedDomainName]"
            }
          }
        },
        "parameters": {
          "location": {
            "value": "[parameters('location')]"
          },
          "adminLogin": {
            "value": "ghuser"
          },
          "adminPassword": {
            "reference": {
              "keyVault": {
                "id": "[resourceId(parameters('vaultSubscription'), parameters('vaultResourceGroupName'), 'Microsoft.KeyVault/vaults', parameters('vaultName'))]"
              },
              "secretName": "[parameters('secretName')]"
            }
          }
        }
      }
    }
  ],
  "outputs": {
  }
}

Sonraki adımlar

Key Vault'unuzu Yönetilen Uygulama dağıtımı sırasında erişilebilir olacak şekilde yapılandırdıysanız.

  • Key Vault'tan bir değeri şablon parametresi olarak geçirme hakkında bilgi için Dağıtım sırasında güvenli parametre değeri geçirmek için Azure Key Vault kullanma bölümüne gidin.
  • Anahtar kasası güvenliği hakkında daha fazla bilgi edinmek için Azure Key Vault'ta Azure Key Vault güvenliği ve Kimlik Doğrulaması'na gidin.
  • Yönetilen uygulama örnekleri için Bkz . Azure yönetilen uygulamaları için örnek projeler.
  • Yönetilen bir uygulama için ui tanım dosyası oluşturmayı öğrenmek için CreateUiDefinition kullanmaya başlama konusuna gidin.