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 membantu Anda melindungi rahasia seperti kunci API dan string koneksi database yang dibutuhkan aplikasi, layanan, dan sumber daya Anda.
Dalam tutorial ini, Anda mengonfigurasi aplikasi konsol untuk membaca informasi dari Azure Key Vault. Aplikasi ini menggunakan identitas terkelola VM untuk mengautentikasi ke Key Vault.
Tutorial menunjukkan kepada Anda cara:
- Buat grup sumber daya.
- Buat brankas kunci.
- Menambahkan rahasia ke brankas kunci.
- Mengambil rahasia dari brankas kunci.
- Buat komputer virtual Azure.
- Mengaktifkan identitas terkelola untuk komputer virtual.
- Menetapkan izin ke identitas Mesin Virtual.
Sebelum memulai, baca konsep dasar Key Vault.
Jika Anda tidak memiliki langganan Azure, buat akun free.
Prasyarat
Untuk Windows, Mac, dan Linux:
Membuat sumber daya dan menetapkan izin
Sebelum Anda mulai memprogram, Anda perlu membuat beberapa sumber daya, menyimpan kunci rahasia ke dalam brankas kunci Anda, dan menetapkan izin.
Masuk ke Azure
Masuk ke Azure dengan Azure CLI atau Azure PowerShell:
az login
Buat grup sumber daya dan Key Vault.
Panduan mulai cepat ini menggunakan brankas kunci Azure yang sudah dibuat sebelumnya. Anda dapat membuat brankas kunci dengan mengikuti langkah-langkah dalam panduan cepat ini:
- Panduan Memulai Cepat Azure CLI
- Panduan Memulai Cepat Azure PowerShell
- Panduan cepat portal Azure
Atau, Anda dapat menjalankan perintah Azure CLI atau Azure PowerShell ini.
Penting
Setiap key vault harus memiliki nama yang unik. Ganti <vault-name> dengan nama brankas kunci Anda dalam contoh berikut.
az group create --name "myResourceGroup" -l "EastUS"
az keyvault create --name "<vault-name>" -g "myResourceGroup" --enable-rbac-authorization true
Isi penyimpanan kunci Anda dengan rahasia
Mari membuat rahasia yang disebut mySecret, dengan nilai Berhasil!. Rahasia mungkin berupa kata sandi, string koneksi SQL, atau informasi lain yang Anda butuhkan untuk menjaga keamanan dan ketersediaan aplikasi Anda.
Untuk menambahkan rahasia ke brankas kunci yang baru dibuat, gunakan perintah berikut:
az keyvault secret set --vault-name "<vault-name>" --name "mySecret" --value "Success!"
Membuat mesin virtual
Buat VM Windows atau Linux dengan menggunakan salah satu metode berikut:
| Windows | Linux |
|---|---|
| Azure CLI | Azure CLI |
| PowerShell | PowerShell |
| Portal Azure | Portal Azure |
Menetapkan identitas ke komputer virtual
Buat identitas terkelola yang ditetapkan sistem untuk VM:
az vm identity assign --name <vm-name> --resource-group <resource-group>
Catat identitas yang ditetapkan sistem yang ditampilkan dalam kode berikut. Output dari perintah sebelumnya adalah:
{
"systemAssignedIdentity": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"userAssignedIdentities": {}
}
Menetapkan izin ke identitas komputer virtual
Untuk mendapatkan izin ke brankas kunci Anda melalui Role-Based Access Control (RBAC), tetapkan peran ke "Nama Prinsipal Pengguna" (UPN) Anda menggunakan perintah Azure CLI az role assignment create.
az role assignment create --role "Key Vault Secrets User" --assignee "<upn>" --scope "/subscriptions/<subscription-id>/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/<vault-name>"
Ganti <upn>, <subscription-id>, dan <vault-name> dengan nilai aktual Anda. Jika Anda menggunakan nama grup sumber daya yang berbeda, ganti "myResourceGroup" juga. UPN Anda biasanya akan dalam format alamat email (misalnya, username@domain.com).
Masuk ke VM
Untuk masuk ke VM, ikuti instruksi di Sambungkan dan masuk ke komputer virtual Azure Windows atau Sambungkan dan masuk ke komputer virtual Linux Azure.
Menyiapkan aplikasi konsol
Buat aplikasi konsol dan instal paket yang diperlukan dengan dotnet perintah .
Menginstal .NET
Untuk menginstal .NET, buka halaman unduhan .NET.
Membuat dan menjalankan contoh aplikasi .NET
Buka prompt perintah dan jalankan:
dotnet new console -n keyvault-console-app
cd keyvault-console-app
dotnet run
Aplikasi mencetak "Halo Dunia" ke konsol.
Instal paket-paket tersebut
Dari jendela konsol, instal pustaka klien rahasia Azure Key Vault dan pustaka identitas Azure:
dotnet add package Azure.Security.KeyVault.Secrets
dotnet add package Azure.Identity
Mengedit aplikasi konsol
Buka Program.cs dan tambahkan arahan berikut using :
using System;
using Azure.Core;
using Azure.Identity;
using Azure.Security.KeyVault.Secrets;
Ganti metode Main dengan kode berikut, dan perbarui <vault-name> dengan nama brankas kunci Anda. Kode ini menggunakan DefaultAzureCredential untuk mengautentikasi ke Key Vault, yang menggunakan token dari identitas terkelola VM. Ini juga mengonfigurasi backoff eksponensial untuk percobaan ulang jika Key Vault mengalami pembatasan laju.
class Program
{
static void Main(string[] args)
{
string secretName = "mySecret";
string keyVaultName = "<vault-name>";
var kvUri = "https://<vault-name>.vault.azure.net";
SecretClientOptions options = new SecretClientOptions()
{
Retry =
{
Delay= TimeSpan.FromSeconds(2),
MaxDelay = TimeSpan.FromSeconds(16),
MaxRetries = 5,
Mode = RetryMode.Exponential
}
};
var client = new SecretClient(new Uri(kvUri), new DefaultAzureCredential(),options);
Console.Write("Input the value of your secret > ");
string secretValue = Console.ReadLine();
Console.Write("Creating a secret in " + keyVaultName + " called '" + secretName + "' with the value '" + secretValue + "' ...");
client.SetSecret(secretName, secretValue);
Console.WriteLine(" done.");
Console.WriteLine("Forgetting your secret.");
secretValue = "";
Console.WriteLine("Your secret is '" + secretValue + "'.");
Console.WriteLine("Retrieving your secret from " + keyVaultName + ".");
KeyVaultSecret secret = client.GetSecret(secretName);
Console.WriteLine("Your secret is '" + secret.Value + "'.");
Console.Write("Deleting your secret from " + keyVaultName + " ...");
client.StartDeleteSecret(secretName);
System.Threading.Thread.Sleep(5000);
Console.WriteLine(" done.");
}
}
Membersihkan sumber daya
Ketika Anda tidak lagi membutuhkannya, hapus VM dan brankas kunci.