Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Azure Key Vault adalah layanan cloud yang menyediakan penyimpanan aman untuk rahasia, seperti kunci, kata sandi, dan sertifikat. Panduan Cepat ini berfokus pada proses penerapan templat Azure Resource Manager (templat ARM) untuk membuat brankas kunci dan kunci.
Templat Azure Resource Manager adalah file JavaScript Object Notation (JSON) yang menentukan infrastruktur dan konfigurasi untuk proyek Anda. Template tersebut menggunakan sintaksis deklaratif. Anda menggambarkan penyebaran yang diinginkan tanpa harus menulis urutan perintah pemrograman untuk membuat penyebaran tersebut.
Jika lingkungan Anda telah memenuhi prasyarat dan Anda terbiasa menggunakan templat ARM, pilih tombol Sebarkan ke Azure. Templat akan terbuka di portal Microsoft Azure.
Prasyarat
Untuk menyelesaikan artikel ini:
- Jika Anda tidak memiliki langganan Azure, buatlah akun gratis sebelum Anda memulai.
- Pengguna perlu memiliki peran bawaan Azure yang ditetapkan, dengan peran yang direkomendasikan adalah kontributor. Pelajari selengkapnya di sini
Meninjau templat
Template yang digunakan dalam quickstart ini berasal dari Azure Quickstart Templates.
{
"$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": "9113739717796369919"
}
},
"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": "2023-07-01",
"name": "[parameters('vaultName')]",
"location": "[parameters('location')]",
"properties": {
"enableRbacAuthorization": true,
"enableSoftDelete": true,
"softDeleteRetentionInDays": 90,
"enablePurgeProtection": true,
"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": "2023-07-01",
"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')), '2023-07-01')]"
},
"location": {
"type": "string",
"value": "[parameters('location')]"
},
"name": {
"type": "string",
"value": "[parameters('vaultName')]"
},
"resourceGroupName": {
"type": "string",
"value": "[resourceGroup().name]"
},
"resourceId": {
"type": "string",
"value": "[resourceId('Microsoft.KeyVault/vaults', parameters('vaultName'))]"
}
}
}
Dua sumber daya didefinisikan dalam templat:
- Microsoft. KeyVault/vault: buat brankas kunci Azure.
- Microsoft.KeyVault/vaults/keys: membuat kunci Key Vault.
Templat ini membuat Key Vault dengan otorisasi Azure RBAC yang diaktifkan. Ini berarti brankas menggunakan kontrol akses berbasis peran Azure (Azure RBAC) untuk otorisasi bidang data, alih-alih kebijakan akses.
Sampel templat Azure Key Vault lainnya dapat ditemukan di Templat Mulai Cepat Azure.
Parameter templat
| Pengaturan | Description |
|---|---|
| vaultName | Nama brankas kunci baru. Harus unik secara global dalam ruang nama vault.azure.net. |
| keyName | Nama kunci yang akan dibuat di vault. |
| Lokasi | Wilayah Azure untuk sumber daya. Diatur ke lokasi grup sumber daya. |
| skuName | SKU Vault
standard (default) atau premium. |
| keyType | Jenis kunci yang akan dibuat. Salah satu dari RSA, RSA-HSM, EC, EC-HSM. Defaultnya adalah RSA. Lihat JsonWebKeyType. |
| keySize | Ukuran kunci dalam bit (khusus RSA). Defaultnya adalah 2048. |
| curveName | Nama kurva elips (hanya kunci EC). Salah satu dari P-256, P-256K, P-384, P-521. Lihat JsonWebKeyCurveName. |
| keyOps | Operasi JSON Web Key yang diizinkan untuk kunci (misalnya, ["sign","verify","encrypt","decrypt","wrapKey","unwrapKey"]). Array kosong (default) memungkinkan semua operasi. |
Menyebarkan templat
Pilih gambar berikut untuk masuk ke Azure dan buka templat. Template tersebut membuat Key Vault dan sebuah kunci.
Pilih atau masukkan nilai berikut. Kecuali ditentukan, gunakan nilai default.
- Langganan: pilih langganan Azure.
- Grup sumber daya: pilih Buat baru, masukkan nama unik untuk grup sumber daya, lalu pilih OK.
- Wilayah: pilih lokasi. Misalnya, US Tengah.
-
Nama Vault: masukkan nama untuk Key Vault, yang harus unik secara global dalam ruang nama
vault.azure.net. - Nama Kunci: masukkan nama untuk kunci yang Anda simpan di brankas kunci.
- Nama Sku: pilih standar atau premium. Defaultnya adalah standar.
- Jenis Kunci: pilih jenis kunci. Defaultnya adalah RSA.
- Ukuran Kunci: masukkan ukuran kunci (kunci RSA). Defaultnya adalah 2048.
- Nama Kurva: untuk kunci EC, pilih kurva. Biarkan kosong untuk kunci RSA.
Pilih Tinjau + buat, lalu pilih Buat. Setelah Key Vault dan kunci berhasil diterapkan, Anda akan menerima pemberitahuan.
Anda juga dapat menggunakan Azure PowerShell, Azure CLI, atau REST API untuk menyebarkan templat. Untuk mempelajari metode penyebaran lainnya, lihat Menyebarkan templat.
Menetapkan peran RBAC Key Vault
Brankas kunci yang dibuat oleh templat ini menggunakan Azure RBAC untuk otorisasi. Untuk mengakses kunci melalui bidang data (misalnya, menggunakan Azure CLI atau Azure PowerShell), Anda perlu menetapkan peran yang sesuai untuk diri Anda sendiri.
Dapatkan ID objek pengguna Microsoft Entra Anda:
az ad signed-in-user show --query id -o tsvTetapkan peran Key Vault Crypto Officer untuk diri Anda sendiri di key vault:
echo "Enter your key vault name:" && read keyVaultName && az role assignment create --role "Key Vault Crypto 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
Penetapan peran mungkin memerlukan waktu satu atau dua menit untuk disebarluaskan.
Meninjau sumber daya yang disebarkan
Anda dapat menggunakan portal Microsoft Azure untuk memeriksa brankas kunci dan kunci. Atau, gunakan skrip Azure CLI atau Azure PowerShell berikut untuk mencantumkan kunci yang dibuat.
echo "Enter your key vault name:" &&
read keyVaultName &&
az keyvault key list --vault-name $keyVaultName &&
echo "Press [ENTER] to continue ..."
Membuat kunci menggunakan templat ARM berbeda dari membuat kunci melalui bidang data
Membuat kunci melalui ARM
Anda hanya dapat membuat kunci baru . Tidak dimungkinkan untuk memperbarui kunci yang ada, atau membuat versi baru dari kunci yang ada. Jika kunci sudah ada, maka kunci yang ada diambil dari penyimpanan dan digunakan (tidak ada operasi tulis yang akan terjadi).
Untuk diotorisasi menggunakan API ini, pemanggil perlu memiliki Tindakan Kontrol Akses Berbasis Peran (Azure RBAC) pada "Microsoft.KeyVault/vaults/keys/write". Peran "Kontributor Key Vault" bawaan sudah cukup, karena mengotorisasi semua Tindakan RBAC Azure yang cocok dengan pola "Microsoft.KeyVault/*".
API yang ada (membuat kunci melalui lintasan data)
- Anda dapat membuat kunci baru, memperbarui kunci yang ada, dan membuat versi baru kunci yang ada.
- Pemanggil harus berwenang untuk menggunakan API ini. Jika vault diaktifkan untuk RBAC Azure, pemanggil harus memiliki "Microsoft. KeyVault/vaults/keys/create/action" Azure RBAC DataAction.
Membersihkan sumber daya
Panduan awal dan tutorial Key Vault lainnya mengembangkan materi dari panduan awal ini. Jika Anda berencana untuk terus menggunakan panduan memulai cepat dan tutorial selanjutnya, Anda mungkin ingin membiarkan sumber daya ini tetap ada. Jika tidak lagi diperlukan, hapus grup sumber daya, yang menghapus Key Vault dan sumber daya terkait. Untuk menghapus grup sumber daya menggunakan Azure CLI atau Azure PowerShell:
echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."
Note
Menghapus grup sumber daya juga akan menghapus Key Vault, tetapi vault tersebut kemudian masuk ke status hapus sementara dan tetap dapat dipulihkan selama periode retensi (90 hari secara bawaan). Nama brankas tetap dicadangkan secara global selama periode tersebut, dan karena proteksi penghapusan permanen diaktifkan, brankas tidak dapat dihapus secara permanen lebih awal. Untuk Key Vault standar, Key Vault yang dihapus sementara tidak dikenakan biaya. Untuk informasi selengkapnya, lihat gambaran umum penghapusan sementara Key Vault.
Langkah selanjutnya
Dalam quickstart ini, Anda membuat key vault dan kunci menggunakan templat ARM, serta memvalidasi penerapan. Untuk mempelajari selengkapnya tentang Key Vault dan Azure Resource Manager, lihat artikel ini.
- Baca Gambaran Umum Azure Key Vault
- Pelajari lebih lanjut tentang Azure Resource Manager
- Tinjau Ringkasan keamanan Azure Key Vault