Rilis Kunci Aman dengan kontainer Rahasia di Azure Container Instance (ACI)
Alur Secure Key Release (SKR) dengan Azure Key Vault (AKV) dengan penawaran kontainer rahasia dapat diterapkan dalam beberapa cara. Kontainer rahasia menjalankan tamu yang tercerahkan mengekspos perangkat AMD SEV-SNP melalui Kernel Linux yang menggunakan firmware tamu dengan patch terkait Hyper-V yang diperlukan yang kami sebut sebagai Direct Linux Boot (DLB). Platform ini tidak menggunakan vTPM dan HCL berbasis VM Rahasia dengan dukungan AMD SEV-SNP. Dokumen konsep ini mengasumsikan Anda berencana untuk menjalankan kontainer di Dukungan Kontainer Azure memilih SKU komputasi rahasia
- Kontainer Pembantu Mobil Samping yang disediakan oleh Azure
- Implementasi kustom dengan aplikasi kontainer Anda
Kontainer pembantu Side-Car yang disediakan oleh Azure
Proyek GitHub sumber terbuka d "mobil samping rahasia" merinci cara membangun kontainer ini dan parameter/variabel lingkungan apa yang diperlukan bagi Anda untuk menyiapkan dan menjalankan kontainer mobil samping ini. Implementasi mobil samping saat ini menyediakan berbagai API HTTP REST yang dapat digunakan kontainer aplikasi utama Anda untuk mengambil kunci dari AKV. Integrasi melalui Microsoft Azure Attestation (MAA) sudah dibangun. Langkah-langkah persiapan untuk menjalankan kontainer SKR side-car dapat ditemukan secara rinci di sini.
Aplikasi kontainer aplikasi utama Anda dapat memanggil titik akhir API WEB side-car seperti yang didefinisikan dalam contoh di bawah ini. Mobil samping berjalan dalam grup kontainer yang sama dan merupakan titik akhir lokal untuk kontainer aplikasi Anda. Detail lengkap API dapat ditemukan di sini
Metode key/release
POST mengharapkan JSON dari format berikut:
{
"maa_endpoint": "<maa endpoint>", //https://learn.microsoft.com/en-us/azure/attestation/quickstart-portal#attestation-provider
"akv_endpoint": "<akv endpoint>", //AKV URI
"kid": "<key identifier>" //key name,
"access_token": "optional aad token if the command will run in a resource without proper managed identity assigned"
}
Setelah berhasil, key/release
respons metode POST membawa StatusOK
header dan payload format berikut:
{
"key": "<key in JSON Web Key format>"
}
Setelah kesalahan, key/release
respons metode POST membawa StatusForbidden
header dan payload format berikut:
{
"error": "<error message>"
}
Implementasi kustom dengan aplikasi kontainer Anda
Untuk melakukan aplikasi kontainer kustom yang memperluas kemampuan Azure Key Vault (AKV) - Rilis Kunci Aman dan Microsoft Azure Attestation (MAA), gunakan di bawah ini sebagai alur referensi tingkat tinggi. Pendekatan yang mudah adalah meninjau kode implementasi mobil samping saat ini dalam proyek GitHub side-car ini.
- Langkah 1: Siapkan AKV dengan Kunci yang Dapat Diekspor dan lampirkan kebijakan rilis. Selengkapnya di sini
- Langkah 2: Siapkan identitas terkelola dengan ID Microsoft Entra dan lampirkan ke AKV. Selengkapnya di sini
- Langkah 3: Sebarkan aplikasi kontainer Anda dengan parameter yang diperlukan dalam ACI dengan menyiapkan kebijakan penegakan komputasi rahasia. Selengkapnya di sini
- Langkah 4: Dalam langkah ini, aplikasi Anda akan mengambil laporan perangkat keras RAW AMD SEV-SNP dengan melakukan panggilan IOCTL Linux Socket. Anda tidak memerlukan pustaka pengesahan tamu untuk melakukan tindakan ini. Selengkapnya tentang implementasi side-car yang ada
- Langkah 5: Ambil rantai sertifikasi AMD SEV-SNP untuk grup kontainer. Sertifikasi ini dikirimkan dari titik akhir IMDS host Azure. Selengkapnya di sini
- Langkah 6: Kirim laporan perangkat keras dan detail sertifikasi SNP RAW ke MAA untuk verifikasi dan kembalikan klaim. Selengkapnya di sini
- Langkah 7: Kirim token MAA dan token identitas terkelola yang dihasilkan oleh ACI ke AKV untuk rilis kunci. Selengkapnya di sini
Setelah berhasil mengambil kunci dari AKV, Anda dapat menggunakan kunci untuk mendekripsi himpunan data atau mengenkripsi data yang keluar dari lingkungan kontainer rahasia.
Referensi
ACI dengan penyebaran kontainer Rahasia
Implementasi Side-Car dengan blob terenkripsi mengambil dan mendekripsi dengan kunci SKR AKV
AKV SKR dengan AMD SEV-SNP VM Rahasia