Sebaiknya tentukan batasan kebijakan yang menerapkan konfigurasi resource yang dapat diterima dan mencegah konfigurasi berisiko. Blueprint ini menggunakan kombinasi batasan kebijakan organisasi dan validasi infrastruktur sebagai kode (IaC) di pipeline Anda. Kontrol ini mencegah pembuatan resource yang tidak memenuhi pedoman kebijakan Anda. Menerapkan kontrol ini sejak awal dalam desain dan build workload membantu Anda menghindari pekerjaan perbaikan di lain waktu.
Batasan kebijakan organisasi
Layanan Kebijakan Organisasi menerapkan batasan untuk memastikan bahwa konfigurasi resource tertentu tidak dapat dibuat di organisasi Google Cloud Anda, bahkan oleh seseorang dengan peran IAM yang cukup istimewa.
Blueprint menerapkan kebijakan di node organisasi sehingga kontrol ini diwarisi oleh semua folder dan project dalam organisasi. Kumpulan kebijakan ini dirancang untuk mencegah konfigurasi berisiko tinggi tertentu, seperti mengekspos VM ke internet publik atau memberikan akses publik ke bucket penyimpanan, kecuali jika Anda sengaja mengizinkan pengecualian terhadap kebijakan.
Tabel berikut memperkenalkan batasan kebijakan organisasi yang diterapkan dalam blueprint:
Batasan kebijakan organisasi | Deskripsi |
---|---|
| Virtualisasi bertingkat di VM Compute Engine dapat menghindari pemantauan dan alat keamanan lainnya untuk VM Anda jika dikonfigurasi dengan buruk. Batasan ini mencegah pembuatan virtualisasi bertingkat. |
| Peran IAM seperti |
| Subnet IPv6 eksternal dapat terekspos ke akses internet yang tidak sah jika dikonfigurasi dengan buruk. Batasan ini mencegah pembuatan subnet IPv6 eksternal. |
| Perilaku default penetapan kunci SSH dalam metadata dapat mengizinkan akses jarak jauh yang tidak sah ke VM jika kunci terekspos. Batasan ini mewajibkan penggunaan Login OS, bukan kunci SSH berbasis metadata. |
|
Penerusan protokol VM untuk alamat IP eksternal dapat menyebabkan traffic keluar internet yang tidak sah jika penerusan dikonfigurasi dengan buruk. Batasan ini memungkinkan penerusan protokol VM hanya untuk alamat internal. |
|
Menghapus project host VPC Bersama dapat mengganggu semua project layanan yang menggunakan resource jaringan. Batasan ini mencegah penghapusan project host VPC Bersama secara tidak sengaja atau berbahaya dengan mencegah penghapusan lien project pada project ini. |
|
Setelan lama untuk DNS internal global (seluruh project) tidak direkomendasikan karena mengurangi ketersediaan layanan. Batasan ini mencegah penggunaan setelan lama. |
| Jaringan VPC default dan aturan firewall VPC default yang terlalu permisif dibuat di setiap project baru yang mengaktifkan Compute Engine API. Batasan ini akan melewati pembuatan jaringan default dan aturan firewall VPC default. |
| Secara default, VM dibuat dengan alamat IPv4 eksternal yang dapat menyebabkan akses internet tidak sah. Batasan ini mengonfigurasi daftar yang diizinkan kosong untuk alamat IP eksternal yang dapat digunakan VM dan menolak semua alamat IP lainnya. |
|
Secara default, Kontak Penting dapat dikonfigurasi untuk mengirim notifikasi tentang domain Anda ke domain lain. Batasan ini mewajibkan bahwa hanya alamat email di domain yang disetujui yang dapat ditetapkan sebagai penerima untuk Kontak Penting. |
| Secara default, izinkan kebijakan dapat diberikan ke Akun Google apa pun, termasuk akun yang tidak dikelola, dan akun milik organisasi eksternal. Batasan ini memastikan bahwa kebijakan izin di organisasi Anda hanya dapat diberikan ke akun terkelola dari domain Anda sendiri. Secara opsional, Anda dapat mengizinkan domain tambahan. |
|
Secara default, akun layanan default secara otomatis diberi peran yang terlalu permisif. Batasan ini mencegah pemberian peran IAM otomatis ke akun layanan default. |
|
Kunci akun layanan adalah kredensial persisten berisiko tinggi, dan dalam sebagian besar kasus, alternatif yang lebih aman untuk kunci akun layanan dapat digunakan. Batasan ini mencegah pembuatan kunci akun layanan. |
|
Mengupload materi kunci akun layanan dapat meningkatkan risiko jika materi kunci terekspos. Batasan ini mencegah upload kunci akun layanan. |
|
Instance Cloud SQL dapat terekspos ke akses internet yang tidak diautentikasi jika instance dikonfigurasi untuk menggunakan jaringan resmi tanpa Proxy Auth Cloud SQL. Kebijakan ini mencegah konfigurasi jaringan yang diotorisasi untuk akses database dan memaksa penggunaan Proxy Auth Cloud SQL. |
| Instance Cloud SQL dapat terekspos ke akses internet yang tidak diautentikasi jika instance dibuat dengan alamat IP publik. Batasan ini mencegah alamat IP publik di instance Cloud SQL. |
| Secara
default, objek di Cloud Storage dapat diakses melalui Daftar Kontrol Akses (ACL) lama,
bukan IAM, yang dapat menyebabkan kontrol akses
tidak konsisten dan eksposur yang tidak disengaja jika salah dikonfigurasi. Akses ACL lama tidak terpengaruh oleh batasan |
|
Bucket Cloud Storage dapat terekspos ke akses internet yang tidak diautentikasi jika salah dikonfigurasi. Batasan ini mencegah ACL dan izin IAM yang memberikan akses ke |
Kebijakan ini adalah titik awal yang kami rekomendasikan untuk sebagian besar pelanggan dan
sebagian besar skenario, tetapi Anda mungkin perlu mengubah batasan kebijakan organisasi untuk
menampung jenis beban kerja tertentu. Misalnya, beban kerja yang menggunakan bucket Cloud Storage sebagai backend untuk Cloud CDN guna menghosting resource publik diblokir oleh storage.publicAccessPrevention
, atau aplikasi Cloud Run yang ditampilkan ke publik dan tidak memerlukan autentikasi diblokir oleh iam.allowedPolicyMemberDomains
. Dalam kasus ini, ubah kebijakan organisasi di level folder atau project untuk mengizinkan pengecualian yang sempit.
Anda juga dapat menambahkan batasan secara bersyarat ke kebijakan organisasi
dengan menentukan tag yang memberikan pengecualian atau penerapan untuk kebijakan, lalu menerapkan tag tersebut ke project dan folder.
Untuk batasan tambahan, lihat batasan yang tersedia dan batasan kustom.
Validasi pra-deployment infrastruktur sebagai kode
Blueprint ini menggunakan pendekatan GitOps untuk mengelola infrastruktur, yang berarti bahwa semua perubahan infrastruktur diimplementasikan melalui infrastruktur-as-code (IaC) yang dikontrol versi dan dapat divalidasi sebelum di-deploy.
Kebijakan yang diterapkan dalam blueprint menentukan konfigurasi resource yang dapat diterima dan dapat di-deploy oleh pipeline Anda. Jika kode yang dikirim ke repositori GitHub Anda tidak lulus pemeriksaan kebijakan, tidak ada resource yang di-deploy.
Untuk mengetahui informasi tentang cara penggunaan pipeline dan cara kontrol diterapkan melalui otomatisasi CI/CD, lihat metodologi deployment.
Langkah selanjutnya
- Baca tentang metodologi deployment (dokumen berikutnya dalam rangkaian ini)