Hızlı Başlangıç: ARM şablonunu kullanarak Azure anahtar kasası ve anahtar oluşturma
Azure Key Vault , anahtarlar, parolalar ve sertifika gibi gizli diziler için güvenli bir depo sağlayan bir bulut hizmetidir. Bu hızlı başlangıçta, anahtar kasası ve anahtar oluşturmak için Azure Resource Manager şablonu (ARM şablonu) dağıtma işlemine odaklanılır.
Önkoşullar
Bu makaleyi tamamlamak için:
- Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.
- Kullanıcının azure yerleşik rolü atanmış, önerilen rol katkıda bulunanı olması gerekir. Burada daha fazla bilgi edinin
Şablonu gözden geçirme
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"vaultName": {
"type": "string",
"metadata": {
"description": "The name of the key vault to be created."
}
},
"keyName": {
"type": "string",
"metadata": {
"description": "The name of the key to be created."
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "The location of the resources"
}
},
"skuName": {
"type": "string",
"defaultValue": "standard",
"allowedValues": [
"standard",
"premium"
],
"metadata": {
"description": "The SKU of the vault to be created."
}
},
"keyType": {
"type": "string",
"defaultValue": "RSA",
"allowedValues": [
"EC",
"EC-HSM",
"RSA",
"RSA-HSM"
],
"metadata": {
"description": "The JsonWebKeyType of the key to be created."
}
},
"keyOps": {
"type": "array",
"defaultValue": [],
"metadata": {
"description": "The permitted JSON web key operations of the key to be created."
}
},
"keySize": {
"type": "int",
"defaultValue": 2048,
"metadata": {
"description": "The size in bits of the key to be created."
}
},
"curveName": {
"type": "string",
"defaultValue": "",
"allowedValues": [
"",
"P-256",
"P-256K",
"P-384",
"P-521"
],
"metadata": {
"description": "The JsonWebKeyCurveName of the key to be created."
}
}
},
"resources": [
{
"type": "Microsoft.KeyVault/vaults",
"apiVersion": "2021-11-01-preview",
"name": "[parameters('vaultName')]",
"location": "[parameters('location')]",
"properties": {
"accessPolicies": [],
"enableRbacAuthorization": true,
"enableSoftDelete": true,
"softDeleteRetentionInDays": "90",
"enabledForDeployment": false,
"enabledForDiskEncryption": false,
"enabledForTemplateDeployment": false,
"tenantId": "[subscription().tenantId]",
"sku": {
"name": "[parameters('skuName')]",
"family": "A"
},
"networkAcls": {
"defaultAction": "Allow",
"bypass": "AzureServices"
}
}
},
{
"type": "Microsoft.KeyVault/vaults/keys",
"apiVersion": "2021-11-01-preview",
"name": "[format('{0}/{1}', parameters('vaultName'), parameters('keyName'))]",
"properties": {
"kty": "[parameters('keyType')]",
"keyOps": "[parameters('keyOps')]",
"keySize": "[parameters('keySize')]",
"curveName": "[parameters('curveName')]"
},
"dependsOn": [
"[resourceId('Microsoft.KeyVault/vaults', parameters('vaultName'))]"
]
}
],
"outputs": {
"proxyKey": {
"type": "object",
"value": "[reference(resourceId('Microsoft.KeyVault/vaults/keys', parameters('vaultName'), parameters('keyName')))]"
}
}
}
Şablonda iki kaynak tanımlanır:
Azure Hızlı Başlangıç Şablonları'nda daha fazla Azure Key Vault şablonu örneği bulunabilir.
Parametreler ve tanımlar
Parametre | Tanım |
---|---|
keyOps | anahtarı kullanılarak gerçekleştirilebilecek işlemleri belirtir. Bu parametreyi belirtmezseniz, tüm işlemler gerçekleştirilebilir. Bu parametre için kabul edilebilir değerler, JSON Web Anahtarı (JWK) belirtimi tarafından tanımlanan anahtar işlemlerinin virgülle ayrılmış bir listesidir:["sign", "verify", "encrypt", "decrypt", " wrapKey", "unwrapKey"] |
CurveName | EC anahtar türü için elips eğrisi (EC) adı. Bkz. JsonWebKeyCurveName |
Kty | Oluşturulacak anahtarın türü. Geçerli değerler için bkz. JsonWebKeyType |
Etiketler | Anahtar-değer çiftleri biçiminde uygulamaya özgü meta veriler. |
nbf | DateTime nesnesi olarak, anahtarın kullanılamayacağı saati belirtir. Biçim Unix zaman damgası (1 Ocak 1970 UTC'de Unix Dönemi'nin ardından gelen saniye sayısı) olacaktır. |
Exp | DateTime nesnesi olarak süre sonunu belirtir. Biçim Unix zaman damgası (1 Ocak 1970 UTC'de Unix Dönemi'nin ardından gelen saniye sayısı) olacaktır. |
Şablonu dağıtma
Azure portalını, Azure PowerShell'i, Azure CLI'yı veya REST API'yi kullanabilirsiniz. Dağıtım yöntemleri hakkında bilgi edinmek için bkz . Şablonları dağıtma.
Dağıtılan kaynakları gözden geçirme
Anahtar kasasını ve anahtarı denetlemek için Azure portalını kullanabilirsiniz. Alternatif olarak, oluşturulan anahtarı listelemek için aşağıdaki Azure CLI veya Azure PowerShell betiğini kullanın.
echo "Enter your key vault name:" &&
read keyVaultName &&
az keyvault key list --vault-name $keyVaultName &&
echo "Press [ENTER] to continue ..."
ARM şablonu kullanarak anahtar oluşturmak, veri düzlemi aracılığıyla anahtar oluşturmaktan farklıdır
ARM aracılığıyla anahtar oluşturma
Yalnızca yeni anahtarlar oluşturulabilir. Mevcut anahtarları güncelleştirmek veya mevcut anahtarların yeni sürümlerini oluşturmak mümkün değildir. Anahtar zaten varsa, mevcut anahtar depolama alanından alınır ve kullanılır (yazma işlemi gerçekleşmez).
Bu API'yi kullanma yetkisine sahip olmak için çağıranın "Microsoft.KeyVault/vaults/keys/write" rol tabanlı erişim denetimi (RBAC) Eylemine sahip olması gerekir. Yerleşik "Key Vault Katılımcısı" rolü yeterlidir çünkü "Microsoft.KeyVault/*" deseniyle eşleşen tüm RBAC Eylemlerini yetkiler.
Mevcut API (veri düzlemi aracılığıyla anahtar oluşturma)
- Yeni anahtarlar oluşturmak, mevcut anahtarları güncelleştirmek ve mevcut anahtarların yeni sürümlerini oluşturmak mümkündür.
- Çağıranın bu API'yi kullanma yetkisine sahip olması gerekir. Kasa erişim ilkeleri kullanıyorsa, çağıranın "oluşturma" anahtar iznine sahip olması gerekir; Kasa RBAC için etkinleştirildiyse, çağıranın "Microsoft.KeyVault/vaults/keys/create/action" RBAC DataAction değeri olmalıdır.
Kaynakları temizleme
Diğer Key Vault hızlı başlangıçları ve öğreticileri bu hızlı başlangıcı temel alır. Sonraki hızlı başlangıç ve öğreticilerle çalışmaya devam etmeyi planlıyorsanız, bu kaynakları yerinde bırakmanız yararlı olabilir. Artık gerek kalmadığında kaynak grubunu silin; bunu yaptığınızda Key Vault ve ilgili kaynaklar silinir. Azure CLI veya Azure PowerShell kullanarak kaynak grubunu silmek için:
echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."
Sonraki adımlar
Bu hızlı başlangıçta ARM şablonu kullanarak bir anahtar kasası ve anahtar oluşturdunuz ve dağıtımı doğruladunuz. Key Vault ve Azure Resource Manager hakkında daha fazla bilgi edinmek için bu makalelere bakın.
- Azure Key Vault'a Genel Bakış
- Azure Resource Manager hakkında daha fazla bilgi edinin
- Key Vault güvenliğine genel bakış'a göz atın