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.

Image of the aforementioned operations, which you should be performing.

  1. Langkah 1: Siapkan AKV dengan Kunci yang Dapat Diekspor dan lampirkan kebijakan rilis. Selengkapnya di sini
  2. Langkah 2: Siapkan identitas terkelola dengan ID Microsoft Entra dan lampirkan ke AKV. Selengkapnya di sini
  3. Langkah 3: Sebarkan aplikasi kontainer Anda dengan parameter yang diperlukan dalam ACI dengan menyiapkan kebijakan penegakan komputasi rahasia. Selengkapnya di sini
  4. 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
  5. Langkah 5: Ambil rantai sertifikasi AMD SEV-SNP untuk grup kontainer. Sertifikasi ini dikirimkan dari titik akhir IMDS host Azure. Selengkapnya di sini
  6. Langkah 6: Kirim laporan perangkat keras dan detail sertifikasi SNP RAW ke MAA untuk verifikasi dan kembalikan klaim. Selengkapnya di sini
  7. 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

Microsoft Azure Attestation (MAA)

Contoh Kebijakan SKR