Dokumen kami sering kali ditulis untuk membantu Anda menyiapkan dan menjalankan produk atau fitur, tetapi beberapa dokumen mungkin tidak berfungsi dengan benar jika organisasi Anda menerapkan batasan keamanan. Misalnya, perusahaan Anda dapat menerapkan beberapa batasan keamanan dari Cloud Foundation Toolkit, Cloud de Confiance cetak biru keamanan, atau membuat batasan sendiri.
Artikel ini membantu Anda memecahkan masalah error deployment aplikasi yang mungkin Anda lihat di organisasi yang menggunakan batasan keamanan.
Memecahkan masalah batasan keamanan
Tim operasi IT atau keamanan Anda dapat mengaktifkan batasan keamanan melalui kebijakan organisasi. Batasan ini membatasi cara penggunaan resource organisasi Anda.
Saat Anda membuat permintaan API yang menampilkan error, respons API akan memberi tahu Anda apakah error tersebut disebabkan oleh pelanggaran kebijakan. Respons harus menjelaskan batasan yang dilanggar. Langkah-langkah pemecahan masalah berikut membantu Anda menentukan dan memahami apakah terjadi pelanggaran:
Tinjau pesan error respons API. Dapatkah Anda mengidentifikasi batasan keamanan mana yang dilanggar oleh deployment Anda?
Contoh berikut memberi tahu Anda bahwa batasan
sql.restrictPublicIpadalah masalahnya:Organization Policy check failure The external IP of this instance violates the constraints/sql.restrictPublicIp enforced
Jika Anda memahami pelanggaran kebijakan, perbarui konfigurasi deployment resource Anda agar sesuai dengan batasan.
Pada contoh sebelumnya tentang membatasi alamat IP publik eksternal, konfigurasi instance Cloud SQL Anda untuk menggunakan alamat IP pribadi internal.
Jika Anda tidak yakin mengapa batasan diterapkan atau apa yang harus dilakukan, bekerjasamalah dengan tim keamanan Anda untuk memahami di mana kebijakan diterapkan dalam hierarki organisasi Anda dan solusi yang disarankan.
Periksa apakah ada template deployment, seperti template Terraform, yang dibagikan di organisasi Anda. Template ini harus menjelaskan cara konfigurasi infrastrukturCloud de Confiance dan membatasi deployment aplikasi Anda.
Masalah batasan keamanan umum
Saat men-deploy aplikasi di Cloud de Confiance, Anda mungkin mengalami error seperti contoh berikut:
ERROR: (gcloud.alpha.sql.instances.create) HTTPError 400: Invalid request: Organization Policy check failure: the external IP of this instance violates the constraints/sql.restrictPublicIp enforced at the 123456789 project.
Dalam contoh ini, Anda tidak dapat mengonfigurasi instance Cloud SQL untuk menggunakan alamat IP publik eksternal. Batasan keamanan sedang diterapkan dari kebijakan yang diterapkan ke lingkungan Anda.
Batasan keamanan umum berikut dapat diaktifkan dan dijelaskan dalam respons error API saat Anda mengembangkan aplikasi.
Compute Engine
| Nama batasan | Alasan penerapan | Solusi sementara yang disarankan |
|---|---|---|
| constraints/compute.disableNestedVirtualization | Mencegah hypervisor yang kompatibel dengan KVM diinstal di dalam VM. Perilaku ini dapat menimbulkan risiko keamanan tanpa penerapan patch dan pengelolaan yang memadai. | Konfigurasi VM Anda untuk menonaktifkan virtualisasi bertingkat dengan akselerasi hardware. Secara default, fitur ini diaktifkan untuk semua VM Compute Engine yang berjalan di platform CPU Intel Haswell atau yang lebih baru. |
| constraints/compute.requireShieldedVm | Mewajibkan instance VM baru untuk menggunakan disk image Terlindung dengan opsi Booting Aman, vTPM, dan Pemantauan Integritas diaktifkan. Opsi ini mencegah VM dirusak dan data diakses atau dimodifikasi. | Jangan mengaktifkan VM terlindung saat Anda membuat VM. Untuk membuat cluster GKE, Anda harus mengaktifkan node GKE terlindung. Saat ini, Dataflow tidak mendukung pekerja VM terlindung. |
| constraints/compute.disableSerialPortAccess | Menghapus vektor keamanan untuk berinteraksi dengan VM atau melihat output diagnostik yang dapat digunakan untuk melakukan serangan. | Jangan aktifkan akses port serial saat Anda membuat VM. |
| constraints/compute.disableGuestAttributesAccess | Minimalkan jumlah informasi tentang host dan platform pokok yang dapat disalahgunakan oleh aplikasi berbahaya. | Jangan gunakan Compute Engine API untuk membaca atribut tamu VM Compute Engine Anda. |
| constraints/compute.vmExternalIpAccess | Mencegah aplikasi berjalan dengan alamat IP eksternal dan dapat diakses dari Internet. | Nonaktifkan
akses IP eksternal untuk VM Anda. Anda hanya dapat menggunakan alamat IP pribadi
internal. GKE dapat menggunakan cluster pribadi tanpa alamat IP publik. Dataprep dan Dataflow saat ini tidak mendukung alamat IP pribadi. |
Jaringan virtual dan alamat IP
| Nama batasan | Alasan penerapan | Solusi sementara yang disarankan |
|---|---|---|
| constraints/compute.skipDefaultNetworkCreation | Pastikan hanya Virtual Private Cloud (VPC) yang dikelola perusahaan yang dapat dibuat dan aturan pemfilteran atau traffic jaringan diterapkan. | Hubungkan aplikasi Anda ke VPC yang ada di organisasi Anda. VPC yang dibuat otomatis secara default tidak di-deploy untuk project baru. |
| constraints/compute.restrictXpnProjectLienRemoval | Mencegah VPC Bersama dihapus secara tidak sengaja saat resource di project lain mengandalkan layanan jaringan yang disediakan. | Jangan mencoba menghapus VPC bersama. Pastikan Anda menargetkan resource yang benar untuk dihapus. |
| constraints/sql.restrictPublicIp | Mencegah instance Cloud SQL berjalan dengan alamat IP eksternal dan dapat diakses dari Internet. | Jangan mengonfigurasi instance Cloud SQL Anda untuk menggunakan alamat IP publik
eksternal. Sebagai gantinya, konfigurasi instance Cloud SQL Anda agar menggunakan alamat IP pribadi internal. |
Identitas dan autentikasi
| Nama batasan | Alasan penerapan | Solusi sementara yang disarankan |
|---|---|---|
| constraints/iam.disableServiceAccountKeyCreation | Kunci akun layanan dapat menimbulkan risiko keamanan jika terekspos, jadi cegah kunci tersebut diekspor. | Lakukan autentikasi dengan menggunakan alternatif yang lebih aman untuk kunci akun layanan. |
| constraints/storage.uniformBucketLevelAccess | Minimalkan risiko izin yang salah atau tidak konsisten diterapkan ke bucket penyimpanan dengan hanya mengizinkan penggunaan Identity and Access Management (IAM). | Aktifkan akses level bucket yang seragam untuk mengamankan bucket Cloud Storage Anda. |
| constraints/iam.allowedPolicyMemberDomains | Membatasi Cloud de Confiance akses resource hanya ke domain yang disetujui. | Gunakan akun dalam salah satu domain yang disetujui. Masalah umum tambahan ada untuk batasan ini. |
Contoh error respons API
Pada contoh sebelumnya tentang membatasi alamat IP publik eksternal dengan Cloud SQL, pelanggaran kebijakan menyebabkan API menampilkan error. Contoh yang lebih mendetail berikut menunjukkan respons API yang memberi tahu Anda batasan mana yang menyebabkan permintaan gagal. Lihat respons API Anda sendiri untuk memahami alasan kegagalan deployment aplikasi.
Kegagalan Cloud SQL dengan Google Cloud CLI:
$ gcloud alpha sql instances create mysql-node --project my-sql-project ERROR: (gcloud.alpha.sql.instances.create) HTTPError 400: Invalid request: Organization Policy check failure: the external IP of this instance violates the constraints/sql.restrictPublicIp enforced at the 123456789 project.
Kegagalan Cloud SQL dengan Terraform:
$ terraform apply plan.out [...] module.mysql-db.google_sql_database_instance.default: Creating... Error: Error, failed to create instance backend01-db-1c81e0e3: googleapi: Error 400: Invalid request: Organization Policy check failure: the external IP of this instance violates the constraints/sql.restrictPublicIp enforced at the 123456789 project., invalid
Mencantumkan kebijakan organisasi yang diterapkan ke project Anda
Project Anda dapat mewarisi kebijakan dari tingkat folder atau organisasi. Bergantung pada peran akses Anda, Anda mungkin tidak dapat melihat kebijakan yang diterapkan di tingkat yang lebih tinggi dalam hierarki untuk melihat tempat penerapan batasan yang dilanggar.
Untuk melihat kebijakan atau pengecualian yang diterapkan untuk project Anda, gunakan perintah gcloud org-policies list:
gcloud org-policies list --project=PROJECT_ID
Ganti PROJECT_ID dengan project yang ingin Anda lihat kebijakan yang diterapkan.
Untuk mengetahui informasi selengkapnya tentang kebijakan yang diterapkan, gunakan perintah
gcloud org-policies describe. Berikan nama kebijakan yang akan dideskripsikan, dan project ID Anda dengan parameter --project:
gcloud org-policies describe POLICY_NAME \ --project=PROJECT_ID
Ganti kode berikut:
POLICY_NAME: nama kebijakan organisasi
PROJECT_ID: project yang kebijakannya ingin Anda lihat dan diterapkan
Langkah berikutnya
Jika Anda tidak dapat menentukan tempat penerapan kebijakan dan cara mengatasi batasan keamanan, hubungi tim operasi IT atau tim keamanan Anda. Setiap organisasi menerapkan kebijakan dan cetak biru yang disesuaikan dengan lingkungannya.
Untuk mengetahui informasi selengkapnya tentang semua kontrol yang dapat diterapkan di organisasi Anda, lihat daftar batasan kebijakan organisasi.