Hızlı Başlangıç: ARM şablonunu kullanarak Azure anahtar kasası oluşturma

Azure Key Vault , anahtarlar, parolalar ve sertifikalar gibi gizli diziler için güvenli bir depo sağlayan bir bulut hizmetidir. Bu hızlı başlangıç, bir anahtar kasası oluşturmak için Azure Resource Manager (ARM) şablonunun dağıtılması sürecine odaklanır.

Azure Resource Manager şablonu, projenizin altyapısını ve yapılandırmasını tanımlayan bir JavaScript Nesne Gösterimi (JSON) dosyasıdır. Şablon deklaratif sözdizimi kullanır. Dağıtımı oluşturmak için programlama komutlarının sırasını yazmadan hedeflenen dağıtımınızı açıklarsınız.

Ortamınız önkoşulları karşılıyorsa ve ARM şablonlarını kullanma hakkında bilginiz varsa, Azure’a dağıtma düğmesini seçin. Şablon Azure portalında açılacak.

Azure'a Resource Manager şablonunu konuşlandırmak için buton.

Prerequisites

Bu makaleyi tamamlamak için:

Şablonu gözden geçir

Bu hızlı başlangıçta kullanılan şablon Azure Hızlı Başlangıç Şablonlarından alınmıştır.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "metadata": {
    "_generator": {
      "name": "bicep",
      "version": "0.42.1.51946",
      "templateHash": "5424899472990749957"
    }
  },
  "parameters": {
    "keyVaultName": {
      "type": "string",
      "metadata": {
        "description": "Specifies the name of the key vault."
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "Specifies the Azure location where the key vault should be created."
      }
    },
    "enabledForDeployment": {
      "type": "bool",
      "defaultValue": false,
      "metadata": {
        "description": "Specifies whether Azure Virtual Machines are permitted to retrieve certificates stored as secrets from the key vault."
      }
    },
    "enabledForDiskEncryption": {
      "type": "bool",
      "defaultValue": false,
      "metadata": {
        "description": "Specifies whether Azure Disk Encryption is permitted to retrieve secrets from the vault and unwrap keys."
      }
    },
    "enabledForTemplateDeployment": {
      "type": "bool",
      "defaultValue": false,
      "metadata": {
        "description": "Specifies whether Azure Resource Manager is permitted to retrieve secrets from the key vault."
      }
    },
    "tenantId": {
      "type": "string",
      "defaultValue": "[subscription().tenantId]",
      "metadata": {
        "description": "Specifies the Azure Active Directory tenant ID that should be used for authenticating requests to the key vault. Get it by using Get-AzSubscription cmdlet."
      }
    },
    "skuName": {
      "type": "string",
      "defaultValue": "standard",
      "allowedValues": [
        "standard",
        "premium"
      ],
      "metadata": {
        "description": "Specifies whether the key vault is a standard vault or a premium vault."
      }
    },
    "secretName": {
      "type": "string",
      "metadata": {
        "description": "Specifies the name of the secret that you want to create."
      }
    },
    "secretValue": {
      "type": "securestring",
      "metadata": {
        "description": "Specifies the value of the secret that you want to create."
      }
    }
  },
  "resources": [
    {
      "type": "Microsoft.KeyVault/vaults",
      "apiVersion": "2023-07-01",
      "name": "[parameters('keyVaultName')]",
      "location": "[parameters('location')]",
      "properties": {
        "enabledForDeployment": "[parameters('enabledForDeployment')]",
        "enabledForDiskEncryption": "[parameters('enabledForDiskEncryption')]",
        "enabledForTemplateDeployment": "[parameters('enabledForTemplateDeployment')]",
        "enableRbacAuthorization": true,
        "tenantId": "[parameters('tenantId')]",
        "enableSoftDelete": true,
        "softDeleteRetentionInDays": 90,
        "enablePurgeProtection": true,
        "sku": {
          "name": "[parameters('skuName')]",
          "family": "A"
        },
        "networkAcls": {
          "defaultAction": "Allow",
          "bypass": "AzureServices"
        }
      }
    },
    {
      "type": "Microsoft.KeyVault/vaults/secrets",
      "apiVersion": "2023-07-01",
      "name": "[format('{0}/{1}', parameters('keyVaultName'), parameters('secretName'))]",
      "properties": {
        "value": "[parameters('secretValue')]"
      },
      "dependsOn": [
        "[resourceId('Microsoft.KeyVault/vaults', parameters('keyVaultName'))]"
      ]
    }
  ],
  "outputs": {
    "location": {
      "type": "string",
      "value": "[parameters('location')]"
    },
    "name": {
      "type": "string",
      "value": "[parameters('keyVaultName')]"
    },
    "resourceGroupName": {
      "type": "string",
      "value": "[resourceGroup().name]"
    },
    "resourceId": {
      "type": "string",
      "value": "[resourceId('Microsoft.KeyVault/vaults', parameters('keyVaultName'))]"
    }
  }
}

Şablonda bir Azure kaynağı tanımlanmıştır:

  • Microsoft.KeyVault/vaults: Bir Azure anahtar kasası oluşturun. Şablon Azure RBAC yetkilendirmesini (enableRbacAuthorization: true), geçici silmeyi ve temizleme korumasını etkinleştirir.

Azure Hızlı Başlangıç Şablonları'nda daha fazla Azure Key Vault şablonu örneği bulunabilir.

Şablonu dağıt

  1. Aşağıdaki görüntüyü seçerek Azure'da oturum açıp bir şablon açın. Şablon bir anahtar kasası oluşturur.

    Azure'a Resource Manager şablonunu konuşlandırmak için buton.

  2. Aşağıdaki değerleri seçin veya girin. Belirtilmediği sürece varsayılan değeri kullanın.

    • Abonelik: Bir Azure aboneliği seçin.
    • Kaynak grubu: Yeni oluştur'u seçin, kaynak grubu için benzersiz bir ad girin ve tamam'ı seçin.
    • Bölge: bir konum seçin. Örneğin Orta ABD.
    • Kasa Adı: anahtar kasası için, vault.azure.net ad alanı genelinde benzersiz olması gereken bir ad girin.
    • Sku Adı: standart veya premium'ı seçin. Varsayılan değer standarttır.
  3. Gözden geçir + oluştur'u seçin, ardından oluştur'u seçin. Anahtar kasası başarıyla dağıtıldıktan sonra bir bildirim alırsınız.

Şablonu dağıtmak için Azure PowerShell, Azure CLI veya REST API'yi de kullanabilirsiniz. Diğer dağıtım yöntemlerini öğrenmek için bkz. Deploy templates.

Key Vault RBAC rolü atayın

Bu şablon tarafından oluşturulan anahtar kasası yetkilendirme için Azure RBAC kullanır. Veri düzlemi aracılığıyla anahtarlar, gizli diziler veya sertifikalar oluşturmak veya okumak için kendinize uygun bir rol atamanız gerekir. Örneğin, gizli anahtarları yönetmek için kendinize Key Vault Secrets Officer rolünü atayın:

echo "Enter your key vault name:" &&
read keyVaultName &&
az role assignment create --role "Key Vault Secrets Officer" \
    --assignee-object-id $(az ad signed-in-user show --query id -o tsv) \
    --scope $(az keyvault show --name $keyVaultName --query id -o tsv)

Note

Diğer yerleşik roller için bkz. Azure Key Vault veri düzlemi işlemleri için yerleşik roller. Rol atamalarının yayılması bir veya iki dakika sürebilir.

Dağıtılmış kaynakları gözden geçir.

Anahtar kasasını denetlemek için Azure portalını veya aşağıdaki Azure CLI veya Azure PowerShell betiğini kullanabilirsiniz:

echo "Enter your key vault name:" &&
read keyVaultName &&
az keyvault show --name $keyVaultName

Kaynakları temizle

Key Vault ile ilgili diğer hızlı başlangıç kılavuzları ve öğreticiler bu hızlı başlangıç kılavuzuna dayanır. Sonraki hızlı başlangıçlar ve öğreticilerle çalışmaya devam etmeyi planlıyorsanız, bu kaynakları yerinde bırakmayı tercih edebilirsiniz. Artık gerekli olmadığında kaynak grubunu silin; bu işlem anahtar kasasını ve ilgili kaynakları da siler.

echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName

Note

Kaynak grubu silindiğinde anahtar kasası da silinir, ancak kasa geçici olarak silinmiş bir duruma girer ve saklama süresi (varsayılan olarak 90 gün) için kurtarılabilir durumda kalır. Bu süre boyunca kasa adı küresel olarak rezerve edilir ve temizleme koruması etkin olduğundan kasa süresi dolmadan temizlenemez. Standart anahtar kasalarında geçici olarak silinen kasalar için ücret uygulanmaz. Daha fazla bilgi için, Key Vault geçici silme özelliğine genel bakış bölümüne bakın.

Diğer Key Vault Resource Manager şablonları

Diğer hızlı başlangıçlar, bir anahtar kasasını gizli bilgiler, anahtarlar veya sertifikalarla nasıl dolduracağınızı gösterir:

Sırlar Keys Sertifikalar

Daha fazla Key Vault şablonuna buradan ulaşabilirsiniz: Key Vault Resource Manager başvurusu.

Sonraki Adımlar