Tutorial: Menyiapkan penyebaran untuk kontainer rahasia di Azure Container Instances
Artikel
Di Azure Container Instances, Anda dapat menggunakan kontainer rahasia pada platform tanpa server untuk menjalankan aplikasi kontainer di lingkungan eksekusi tepercaya (TEE) berbasis perangkat keras dan dibuktikan. Kemampuan ini dapat membantu melindungi data yang digunakan dan menyediakan enkripsi dalam memori melalui Halaman Berlapis Aman.
Dalam tutorial ini, Anda akan mempelajari cara:
Buat templat Azure Resource Manager (templat ARM) untuk grup kontainer rahasia.
Buat kebijakan penegakan komputasi rahasia (CCE).
Sebarkan grup kontainer rahasia ke Azure.
Prasyarat
Untuk menyelesaikan tutorial ini, Anda harus memenuhi persyaratan berikut:
Azure CLI: Anda harus menginstal Azure CLI versi 2.44.1 atau yang lebih baru di komputer lokal Anda. Untuk menemukan versi Anda, jalankan az --version. Jika Anda perlu memasang atau meningkatkan, Pasang Azure CLI.
Ekstensi confcom Azure CLI: Anda harus menginstal ekstensi confcom Azure CLI versi 0.30+ untuk menghasilkan kebijakan penegakan komputasi rahasia.
Bash
az extension add -n confcom
Docker: Anda memerlukan Docker yang diinstal secara lokal. Docker menyediakan paket yang mengonfigurasi lingkungan Docker di macOS, Windows, dan Linux.
Tutorial ini mengasumsikan pemahaman dasar tentang konsep Docker inti seperti kontainer, gambar kontainer, dan perintah dasar docker . Untuk primer tentang Docker dan dasar kontainer, lihat Gambaran umum Docker.
Penting
Karena Azure Cloud Shell tidak menyertakan daemon Docker, Anda harus menginstal Azure CLI dan Docker Engine di komputer lokal Anda untuk menyelesaikan tutorial ini. Anda tidak dapat menggunakan Azure Cloud Shell untuk tutorial ini.
Membuat templat ARM untuk grup kontainer Container Instances
Dalam tutorial ini, Anda menyebarkan aplikasi Halo Dunia yang menghasilkan laporan pengesahan perangkat keras. Anda mulai dengan membuat templat ARM dengan sumber daya grup kontainer untuk menentukan properti aplikasi ini. Anda kemudian menggunakan templat ARM ini dengan alat confcom Azure CLI untuk menghasilkan kebijakan CCE untuk pengesahan.
Contoh templat menambahkan dua properti ke definisi sumber daya Container Instances untuk membuat grup kontainer rahasia:
sku: Memungkinkan Anda memilih antara penyebaran grup kontainer rahasia dan standar. Jika Anda tidak menambahkan properti ini ke sumber daya, grup kontainer adalah penyebaran standar.
confidentialComputeProperties: Memungkinkan Anda meneruskan kebijakan CCE kustom untuk pengesahan grup kontainer Anda. Jika Anda tidak menambahkan objek ini ke sumber daya, komponen perangkat lunak yang berjalan dalam grup kontainer tidak akan memvalidasi.
Catatan
Parameter ccePolicy di bawah confidentialComputeProperties kosong. Anda akan mengisinya saat membuat kebijakan nanti dalam tutorial.
Gunakan editor teks pilihan Anda untuk menyimpan templat ARM ini di komputer lokal Anda sebagai template.json.
ARM
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"name": {
"type": "string",
"defaultValue": "helloworld",
"metadata": {
"description": "Name for the container group"
}
},
"location": {
"type": "string",
"defaultValue": "North Europe",
"metadata": {
"description": "Location for all resources."
}
},
"image": {
"type": "string",
"defaultValue": "mcr.microsoft.com/acc/samples/aci/helloworld:2.8",
"metadata": {
"description": "Container image to deploy. Should be of the form repoName/imagename:tag for images stored in public Docker Hub, or a fully qualified URI for other registries. Images from private registries require additional registry credentials."
}
},
"port": {
"type": "int",
"defaultValue": 80,
"metadata": {
"description": "Port to open on the container and the public IP address."
}
},
"cpuCores": {
"type": "int",
"defaultValue": 1,
"metadata": {
"description": "The number of CPU cores to allocate to the container."
}
},
"memoryInGb": {
"type": "int",
"defaultValue": 1,
"metadata": {
"description": "The amount of memory to allocate to the container in gigabytes."
}
},
"restartPolicy": {
"type": "string",
"defaultValue": "Never",
"allowedValues": [
"Always",
"Never",
"OnFailure"
],
"metadata": {
"description": "The behavior of Azure runtime if container has stopped."
}
}
},
"resources": [
{
"type": "Microsoft.ContainerInstance/containerGroups",
"apiVersion": "2023-05-01",
"name": "[parameters('name')]",
"location": "[parameters('location')]",
"properties": {
"confidentialComputeProperties": {
"ccePolicy": ""
},
"containers": [
{
"name": "[parameters('name')]",
"properties": {
"image": "[parameters('image')]",
"ports": [
{
"port": "[parameters('port')]",
"protocol": "TCP"
}
],
"resources": {
"requests": {
"cpu": "[parameters('cpuCores')]",
"memoryInGB": "[parameters('memoryInGb')]"
}
}
}
}
],
"sku": "Confidential",
"osType": "Linux",
"restartPolicy": "[parameters('restartPolicy')]",
"ipAddress": {
"type": "Public",
"ports": [
{
"port": "[parameters('port')]",
"protocol": "TCP"
}
]
}
}
}
],
"outputs": {
"containerIPv4Address": {
"type": "string",
"value": "[reference(resourceId('Microsoft.ContainerInstance/containerGroups', parameters('name'))).ipAddress.ip]"
}
}
}
Membuat kebijakan CCE kustom
Dengan templat ARM yang Anda buat dan ekstensi confcom Azure CLI, Anda dapat membuat kebijakan CCE kustom. Kebijakan CCE digunakan untuk pengesahan. Alat ini mengambil templat ARM sebagai input untuk menghasilkan kebijakan. Kebijakan memberlakukan gambar kontainer, variabel lingkungan, pemasangan, dan perintah tertentu, yang kemudian dapat divalidasi saat grup kontainer dimulai. Untuk informasi selengkapnya tentang ekstensi confcom Azure CLI, lihat dokumentasi di GitHub.
Untuk menghasilkan kebijakan CCE, jalankan perintah berikut dengan menggunakan templat ARM sebagai input:
Azure CLI
az confcom acipolicygen -a .\template.json
Ketika perintah ini selesai, string Base64 yang dihasilkan sebagai output akan secara otomatis muncul di ccePolicy properti templat ARM.
Menyebarkan templat
Dalam langkah-langkah berikut, Anda menggunakan portal Azure untuk menyebarkan templat. Anda juga dapat menggunakan Azure PowerShell, Azure CLI, atau REST API. Untuk mempelajari tentang metode penyebaran lainnya, lihat Menyebarkan templat.
Pilih tombol Sebarkan ke Azure untuk masuk ke Azure dan mulai penyebaran Container Instances.
Pilih Buat template Anda sendiri di editor.
JSON templat yang muncul sebagian besar kosong.
Pilih Muat file dan unggah template.json, yang Anda ubah dengan menambahkan kebijakan CCE di langkah-langkah sebelumnya.
Pilih Simpan.
Pilih atau masukkan nilai berikut:
Langganan: Pilih langganan Azure.
Grup sumber daya: Pilih Buat baru, masukkan nama unik untuk grup sumber daya, lalu pilih OK.
Nama: Terima nama yang dihasilkan untuk instans, atau masukkan nama.
Lokasi: Pilih lokasi untuk grup sumber daya. Pilih wilayah tempat kontainer rahasia didukung. Contoh: Eropa Utara.
Gambar: Terima nama gambar default. Contoh gambar Linux ini menampilkan pengesahan perangkat keras.
Terima nilai default untuk properti yang tersisa, lalu pilih Tinjau + buat.
Tinjau syarat dan ketentuan. Jika setuju, pilih Saya menyetujui syarat dan ketentuan yang dinyatakan di atas.
Tunggu hingga pemberitahuan Penyebaran berhasil muncul. Ini mengonfirmasi bahwa Anda berhasil membuat instans.
Meninjau sumber daya yang disebarkan
Dalam langkah-langkah berikut, Anda menggunakan portal Azure untuk meninjau properti instans kontainer. Anda juga dapat menggunakan alat seperti Azure CLI.
Di portal, cari Container Instances, lalu pilih instans kontainer yang Anda buat.
Pada halaman Gambaran Umum , perhatikan status instans dan alamat IP-nya.
Saat status instans Berjalan, buka alamat IP di browser Anda.
Kehadiran laporan pengesahan di bawah logo Azure Container Instances mengonfirmasi bahwa kontainer berjalan pada perangkat keras yang mendukung TEE.
Jika Anda menyebarkan ke perangkat keras yang tidak mendukung TEE (misalnya, dengan memilih wilayah di mana Confidential Container Instances tidak tersedia), tidak ada laporan pengesahan yang muncul.
Konten terkait
Sekarang setelah Anda menyebarkan grup kontainer rahasia di Container Instances, Anda dapat mempelajari selengkapnya tentang bagaimana kebijakan diberlakukan:
Menunjukkan keterampilan yang diperlukan untuk menerapkan kontrol keamanan, mempertahankan postur keamanan organisasi, dan mengidentifikasi dan memulihkan kerentanan keamanan.
Dalam tutorial ini, Anda mempelajari cara meneyebarkan grup kontainer dengan beberapa kontainer di Azure Container Instances dengan menggunakan file YAML dengan Azure CLI.