Sebaiknya tentukan batasan kebijakan yang menerapkan konfigurasi resource yang dapat diterima dan mencegah konfigurasi yang berisiko. Blueprint menggunakan kombinasi batasan kebijakan organisasi dan validasi Infrastructure as Code (IaC) di pipeline Anda. Kontrol ini mencegah pembuatan resource yang tidak memenuhi panduan kebijakan Anda. Menerapkan kontrol ini sejak awal desain dan build workload membantu Anda menghindari pekerjaan perbaikan di kemudian hari.
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 yang memiliki peran IAM dengan hak istimewa yang memadai.
Blueprint menerapkan kebijakan pada node organisasi sehingga kontrol ini diwariskan oleh semua folder dan project dalam organisasi. Paket 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 kebijakan.
Tabel berikut memperkenalkan batasan kebijakan organisasi yang diterapkan dalam cetak biru:
Batasan kebijakan organisasi | Deskripsi |
---|---|
| Virtualisasi bertingkat pada 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 tanpa izin jika tidak dikonfigurasi dengan benar. Batasan ini mencegah pembuatan subnet IPv6 eksternal. |
| Perilaku default dalam menyetel kunci SSH dalam metadata dapat memungkinkan akses jarak jauh yang tidak sah ke VM jika kunci tersebut terekspos. Batasan ini menerapkan penggunaan OS Login, bukan kunci SSH berbasis metadata. |
|
Penerusan protokol VM untuk alamat IP eksternal dapat menyebabkan traffic keluar internet yang tidak sah jika penerusan tidak dikonfigurasi dengan baik. Batasan ini mengizinkan 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 yang tidak disengaja atau berbahaya pada project host VPC Bersama dengan mencegah penghapusan project lien pada project tersebut. |
|
Setelan lama untuk DNS internal global (seluruh) project tidak direkomendasikan karena akan 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 tidak akan membuat jaringan default dan aturan firewall VPC default. |
| Secara default, VM dibuat dengan alamat IPv4 eksternal yang dapat menyebabkan akses internet tanpa izin. Batasan ini mengonfigurasi daftar alamat IP eksternal yang diizinkan dan kosong yang dapat digunakan VM dan menolak yang lainnya. |
|
Secara default, Kontak Penting dapat dikonfigurasi untuk mengirim notifikasi tentang domain Anda ke domain lainnya. Batasan ini menetapkan bahwa hanya alamat email dalam domain yang disetujui yang dapat ditetapkan sebagai penerima untuk Kontak Penting. |
| Secara default, kebijakan izinkan dapat diberikan ke Akun Google mana pun, termasuk akun yang tidak dikelola, dan akun milik organisasi eksternal. Batasan ini memastikan bahwa kebijakan izinkan 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 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 yang diizinkan tanpa Proxy Auth Cloud SQL. Kebijakan ini mencegah konfigurasi jaringan yang diizinkan untuk akses database dan memaksa penggunaan Cloud SQL Auth Proxy sebagai gantinya. |
| Instance Cloud SQL dapat terekspos ke akses internet yang tidak diautentikasi jika instance dibuat dengan alamat IP publik. Batasan ini mencegah alamat IP publik pada instance Cloud SQL. |
| Secara default, objek dalam Cloud Storage dapat diakses melalui Daftar Kontrol Akses (ACL) lama, bukan IAM, yang dapat menyebabkan kontrol akses yang 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 izin ACL dan IAM
yang memberikan akses ke |
Kebijakan ini merupakan titik awal yang kami rekomendasikan untuk sebagian besar pelanggan dan sebagian besar skenario, tetapi Anda mungkin perlu mengubah batasan kebijakan organisasi untuk mengakomodasi 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 kepada publik dan tidak memerlukan autentikasi akan 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 ke kebijakan organisasi secara bersyarat dengan menentukan tag yang memberikan pengecualian atau penerapan untuk kebijakan, lalu menerapkan tag ke project dan folder.
Untuk batasan tambahan, lihat batasan yang tersedia dan batasan khusus.
Validasi pra-deployment infrastruktur sebagai kode
Blueprint ini menggunakan pendekatan GitOps untuk mengelola infrastruktur, yang berarti bahwa semua perubahan infrastruktur diterapkan melalui infrastruktur sebagai kode (IaC) yang dikontrol versi dan dapat divalidasi sebelum di-deploy.
Kebijakan yang diterapkan dalam blueprint menentukan konfigurasi resource yang dapat diterima yang dapat di-deploy oleh pipeline Anda. Jika kode yang dikirimkan ke repositori GitHub Anda tidak lulus pemeriksaan kebijakan, tidak ada resource yang di-deploy.
Untuk mendapatkan informasi tentang penggunaan pipeline dan cara penerapan kontrol melalui otomatisasi CI/CD, lihat metodologi deployment.
Langkah selanjutnya
- Baca tentang metodologi deployment (dokumen berikutnya dalam seri ini)