Memecahkan masalah kebijakan organisasi

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:

  1. Tinjau pesan error respons API. Dapatkah Anda mengidentifikasi batasan keamanan mana yang dilanggar oleh deployment Anda?

    Contoh berikut memberi tahu Anda bahwa batasan sql.restrictPublicIp adalah masalahnya:

    Organization Policy check failure
    The external IP of this instance violates the constraints/sql.restrictPublicIp enforced
    
  2. 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.

  3. 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.