Kepatuhan audit pendaftar kontainer Azure menggunakan Azure Policy

Azure Policy adalah layanan di Azure yang Anda gunakan untuk membuat, menetapkan, dan mengelola kebijakan. Kebijakan ini memberlakukan aturan dan efek yang berbeda atas sumber daya Anda, sehingga sumber daya tersebut tetap sesuai dengan standar perusahaan dan perjanjian tingkat layanan Anda.

Artikel ini memperkenalkan kebijakan bawaan untuk Azure Container Registry. Gunakan kebijakan ini untuk mengaudit kepatuhan registri baru dan yang sudah ada.

Tidak ada biaya untuk menggunakan Azure Policy.

Definisi kebijakan bawaan

Definisi kebijakan bawaan berikut ini khusus untuk Azure Container Registry:

Nama
(portal Microsoft Azure)
Deskripsi Efek Versi
(GitHub)
[Pratinjau]: [Pratinjau]: Container Registry harus menggunakan titik akhir layanan jaringan virtual Kebijakan ini mengaudit setiap Container Registry yang tidak dikonfigurasi untuk menggunakan titik akhir layanan jaringan virtual. Audit, Dinonaktifkan 1.0.0-pratinjau
Konfigurasikan registri kontainer untuk menonaktifkan autentikasi anonim. Nonaktifkan tarikan anonim untuk registri Anda sehingga data tidak dapat diakses oleh pengguna yang tidak diautentikasi. Menonaktifkan metode autentikasi lokal seperti pengguna admin, token akses cakupan repositori, dan penarikan anonim meningkatkan keamanan dengan memastikan bahwa pendaftar kontainer secara eksklusif memerlukan identitas Azure Active Directory untuk autentikasi. Pelajari selengkapnya di: https://aka.ms/acr/authentication. Ubah, Dinonaktifkan 1.0.0
Konfigurasikan registri kontainer untuk menonaktifkan autentikasi token audiens ARM. Nonaktifkan token audiens Azure Active Directory ARM untuk autentikasi ke registri Anda. Hanya token audiens Azure Container Registry (ACR) yang akan digunakan untuk autentikasi. Ini akan memastikan hanya token yang dimaksudkan untuk penggunaan pada registri yang dapat digunakan untuk autentikasi. Menonaktifkan token audiens ARM tidak memengaruhi autentikasi token akses pengguna admin atau token akses tercakup. Pelajari selengkapnya di: https://aka.ms/acr/authentication. Ubah, Dinonaktifkan 1.0.0
Konfigurasikan registri kontainer untuk menonaktifkan akun admin lokal. Nonaktifkan akun admin untuk registri Anda sehingga tidak dapat diakses oleh admin lokal. Menonaktifkan metode autentikasi lokal seperti pengguna admin, token akses cakupan repositori, dan tarikan anonim meningkatkan keamanan dengan memastikan bahwa pendaftar kontainer secara eksklusif memerlukan identitas Azure Active Directory untuk autentikasi. Pelajari selengkapnya di: https://aka.ms/acr/authentication. Ubah, Dinonaktifkan 1.0.1
Mengonfigurasi Container registry untuk menonaktifkan akses jaringan publik Nonaktifkan akses jaringan publik untuk sumber daya Container Registry Anda sehingga tidak dapat diakses melalui internet publik. Hal ini dapat mengurangi risiko kebocoran data. Pelajari selengkapnya di https://aka.ms/acr/portal/public-network dan https://aka.ms/acr/private-link. Ubah, Non-fungsikan 1.0.0
Konfigurasikan registri kontainer untuk menonaktifkan token akses terlingkup repositori. Nonaktifkan token akses cakupan repositori untuk registri Anda sehingga repositori tidak dapat diakses oleh token. Menonaktifkan metode autentikasi lokal seperti pengguna admin, token akses cakupan repositori, dan penarikan anonim meningkatkan keamanan dengan memastikan bahwa pendaftar kontainer secara eksklusif memerlukan identitas Azure Active Directory untuk autentikasi. Pelajari selengkapnya di: https://aka.ms/acr/authentication. Ubah, Dinonaktifkan 1.0.0
Mengonfigurasi Container registry dengan titik akhir pribadi Titik akhir privat menyambungkan jaringan virtual Anda ke layanan Azure tanpa alamat IP publik di sumber atau tujuan. Dengan memetakan titik akhir pribadi ke sumber daya container registry premium Anda, Anda dapat mengurangi risiko kebocoran data. Pelajari selengkapnya di: https://aka.ms/privateendpoints dan https://aka.ms/acr/private-link. DeployIfNotExists, Dinonaktifkan 1.0.0
Registri kontainer harus dienkripsi dengan kunci yang dikelola pelanggan Gunakan kunci yang dikelola pelanggan untuk mengelola enkripsi tidak aktif di seluruh isi disk terkelola Anda. Secara default, data dienkripsi saat tidak aktif dengan kunci yang dikelola layanan, tetapi kunci yang dikelola pelanggan biasanya diperlukan untuk memenuhi standar kepatuhan peraturan. Kunci yang dikelola pelanggan memungkinkan data dienkripsi dengan kunci Azure Key Vault yang dibuat dan dimiliki oleh Anda. Anda memiliki kontrol dan tanggung jawab penuh atas siklus hidup kunci, termasuk perputaran dan manajemen. Pelajari lebih lanjut di https://aka.ms/acr/CMK. Audit, Tolak, Dinonaktifkan 1.1.2
Registri kontainer harus menonaktifkan autentikasi anonim. Nonaktifkan tarikan anonim untuk registri Anda sehingga data tidak dapat diakses oleh pengguna yang tidak diautentikasi. Menonaktifkan metode autentikasi lokal seperti pengguna admin, token akses cakupan repositori, dan penarikan anonim meningkatkan keamanan dengan memastikan bahwa pendaftar kontainer secara eksklusif memerlukan identitas Azure Active Directory untuk autentikasi. Pelajari selengkapnya di: https://aka.ms/acr/authentication. Audit, Tolak, Dinonaktifkan 1.0.0
Registri kontainer harus menonaktifkan autentikasi token audiens ARM. Nonaktifkan token audiens Azure Active Directory ARM untuk autentikasi ke registri Anda. Hanya token audiens Azure Container Registry (ACR) yang akan digunakan untuk autentikasi. Ini akan memastikan hanya token yang dimaksudkan untuk penggunaan pada registri yang dapat digunakan untuk autentikasi. Menonaktifkan token audiens ARM tidak memengaruhi autentikasi token akses pengguna admin atau token akses tercakup. Pelajari selengkapnya di: https://aka.ms/acr/authentication. Audit, Tolak, Dinonaktifkan 1.0.0
Fitur ekspor di registri kontainer harus telah dinonaktifkan Menonaktifkan fitur ekspor meningkatkan keamanan dengan memastikan bahwa data dalam registri diakses hanya melalui dataplane ('docker pull'). Data tidak dapat dipindahkan dari registri melalui 'acr import' atau melalui 'acr transfer'. Untuk menonaktifkan ekspor, akses jaringan publik harus dinonaktifkan. Pelajari selengkapnya di: https://aka.ms/acr/export-policy. Audit, Tolak, Dinonaktifkan 1.0.0
Registri kontainer harus menonaktifkan akun admin lokal. Nonaktifkan akun admin untuk registri Anda sehingga tidak dapat diakses oleh admin lokal. Menonaktifkan metode autentikasi lokal seperti pengguna admin, token akses cakupan repositori, dan tarikan anonim meningkatkan keamanan dengan memastikan bahwa pendaftar kontainer secara eksklusif memerlukan identitas Azure Active Directory untuk autentikasi. Pelajari selengkapnya di: https://aka.ms/acr/authentication. Audit, Tolak, Dinonaktifkan 1.0.1
Registri kontainer harus menonaktifkan token akses terlingkup repositori. Nonaktifkan token akses cakupan repositori untuk registri Anda sehingga repositori tidak dapat diakses oleh token. Menonaktifkan metode autentikasi lokal seperti pengguna admin, token akses cakupan repositori, dan penarikan anonim meningkatkan keamanan dengan memastikan bahwa pendaftar kontainer secara eksklusif memerlukan identitas Azure Active Directory untuk autentikasi. Pelajari selengkapnya di: https://aka.ms/acr/authentication. Audit, Tolak, Dinonaktifkan 1.0.0
Container registry harus memiliki SKU yang mendukung Private Link Azure Private Link memungkinkan Anda menyambungkan jaringan virtual ke layanan Azure tanpa alamat IP publik di sumber atau tujuan. Platform tautan privat menangani konektivitas antara konsumen dan layanan melalui jaringan backbone Azure. Dengan memetakan titik akhir pribadi ke container registry Anda alih-alih seluruh layanan, risiko kebocoran data berkurang. Pelajari selengkapnya di: https://aka.ms/acr/private-link. Audit, Tolak, Dinonaktifkan 1.0.0
Registri kontainer tidak boleh mengizinkan akses jaringan yang tidak terbatas Azure container registry secara default menerima koneksi melalui internet dari host di jaringan apa pun. Untuk melindungi registri Anda dari potensi ancaman, izinkan akses hanya dari titik akhir privat tertentu, alamat IP publik atau rentang alamat tertentu. Jika registri Anda tidak memiliki aturan jaringan yang dikonfigurasi, registri akan muncul di sumber daya yang tidak sehat. Pelajari lebih lanjut tentang aturan jaringan Container Registry di sini: https://aka.ms/acr/privatelink,https://aka.ms/acr/portal/public-network dan https://aka.ms/acr/vnet. Audit, Tolak, Dinonaktifkan 2.0.0
Registri kontainer harus menggunakan tautan privat Azure Private Link memungkinkan Anda menyambungkan jaringan virtual ke layanan Azure tanpa alamat IP publik di sumber atau tujuan. Platform private link menangani konektivitas antara konsumen dan layanan melalui jaringan Azure backbone.Dengan memetakan titik akhir pribadi ke container registry Anda alih-alih seluruh layanan, Anda juga akan terlindungi dari risiko kebocoran data. Pelajari selengkapnya di: https://aka.ms/acr/private-link. Audit, Dinonaktifkan 1.0.1
Gambar registri kontainer harus memiliki temuan kerentanan yang telah diselesaikan Penilaian kerentanan citra kontainer memindai registri Anda dari kerentanan keamanan dan memaparkan temuan terperinci untuk setiap citra. Menyelesaikan kerentanan dapat meningkatkan postur keamanan kontainer Anda dengan pesat dan melindunginya dari serangan. AuditIfNotExists, Dinonaktifkan 2.0.1
Akses jaringan publik harus dinonaktifkan untuk registri Kontainer Menonaktifkan akses jaringan publik meningkatkan keamanan dengan memastikan bahwa container registry tidak terekspos di internet publik. Membuat titik akhir pribadi dapat membatasi paparan sumber daya container registry. Pelajari selengkapnya di: https://aka.ms/acr/portal/public-network dan https://aka.ms/acr/private-link. Audit, Tolak, Dinonaktifkan 1.0.0

Penetapan Kebijakan

Catatan

Setelah Anda menetapkan atau memperbarui kebijakan, perlu beberapa waktu untuk penetapan diterapkan ke sumber daya dalam cakupan yang ditentukan. Lihat informasi tentang pemicu evaluasi kebijakan.

Meninjau kepatuhan kebijakan

Akses informasi kepatuhan yang dihasilkan oleh penetapan kebijakan Anda menggunakan portal Microsoft Azure, alat baris perintah Azure, atau Azure Policy SDK. Untuk detailnya, lihat Mendapatkan data kepatuhan sumber daya Azure.

Ketika sumber daya tidak sesuai, ada banyak kemungkinan alasan. Untuk menentukan alasan atau menemukan perubahan yang bertanggung jawab, lihat Menentukan ketidakpatuhan.

Kepatuhan kebijakan di portal:

  1. Pilih Semua layanan, dan telusuri Kebijakan.

  2. Pilih Kepatuhan.

  3. Gunakan filter untuk membatasi status kepatuhan atau untuk mencari kebijakan.

    Kepatuhan kebijakan di portal

  4. Pilih kebijakan untuk meninjau detail dan peristiwa kepatuhan gabungan. Jika diinginkan, pilih registri khusus untuk kepatuhan sumber daya.

Kepatuhan kebijakan di Azure CLI

Anda juga dapat menggunakan Azure CLI untuk mendapatkan data kepatuhan. Misalnya, gunakan perintah az policy assignment list di CLI untuk mendapatkan ID kebijakan dari kebijakan Azure Container Registry yang diterapkan:

az policy assignment list --query "[?contains(displayName,'Container Registries')].{name:displayName, ID:id}" --output table

Contoh output:

Name                                                                                   ID
-------------------------------------------------------------------------------------  --------------------------------------------------------------------------------------------------------------------------------
Container Registries should not allow unrestricted network access           /subscriptions/<subscriptionID>/providers/Microsoft.Authorization/policyAssignments/b4faf132dc344b84ba68a441
Container Registries should be encrypted with a Customer-Managed Key (CMK)  /subscriptions/<subscriptionID>/providers/Microsoft.Authorization/policyAssignments/cce1ed4f38a147ad994ab60a

Kemudian jalankan az policy state list untuk mengembalikan status kepatuhan berformat JSON untuk semua sumber daya di bawah ID kebijakan tertentu:

az policy state list \
  --resource <policyID>

Atau jalankan az policy state list untuk mengembalikan status kepatuhan berformat JSON dari sumber daya registri tertentu, seperti myregistry:

az policy state list \
 --resource myregistry \
 --namespace Microsoft.ContainerRegistry \
 --resource-type registries \
 --resource-group myresourcegroup

Langkah berikutnya