Konten ini terakhir diperbarui pada Desember 2023, dan menunjukkan status quo pada saat konten tersebut ditulis. Kebijakan dan sistem keamanan Google dapat berubah di masa mendatang, seiring upaya kami untuk terus meningkatkan perlindungan bagi pelanggan.
Dokumen ini menjelaskan praktik terbaik yang memungkinkan Anda men-deploy serangkaian resource dasar di Google Cloud. Fondasi cloud adalah dasar untuk resource, konfigurasi, dan kemampuan yang memungkinkan perusahaan mengadopsi Google Cloud untuk kebutuhan bisnis mereka. Fondasi yang dirancang dengan baik memungkinkan tata kelola, kontrol keamanan, skala, visibilitas, dan akses yang konsisten ke layanan bersama di seluruh workload di lingkungan Google Cloud Anda. Setelah men-deploy kontrol dan tata kelola yang dijelaskan dalam dokumen ini, Anda dapat men-deploy workload ke Google Cloud.
Blueprint fondasi perusahaan (sebelumnya dikenal sebagai blueprint security foundation) ditujukan untuk arsitek, praktisi keamanan, dan tim engineering platform yang bertanggung jawab untuk mendesain lingkungan yang siap digunakan perusahaan di Google Cloud. Cetak biru ini terdiri dari hal-hal berikut:
- Repositori GitHub fondasi Terraform-example-foundation yang berisi aset Terraform yang dapat di-deploy.
- Panduan yang menjelaskan arsitektur, desain, dan kontrol yang Anda implementasikan dengan cetak biru (dokumen ini).
Anda dapat menggunakan panduan ini dengan salah satu dari dua cara berikut:
- Untuk membuat fondasi lengkap berdasarkan praktik terbaik Google. Anda dapat men-deploy semua rekomendasi dari panduan ini sebagai titik awal, lalu menyesuaikan lingkungannya untuk memenuhi kebutuhan spesifik bisnis Anda.
- Untuk meninjau lingkungan yang ada di Google Cloud. Anda dapat membandingkan komponen tertentu pada desain Anda dengan praktik terbaik yang direkomendasikan Google.
Kasus penggunaan yang didukung
Blueprint fondasi perusahaan menyediakan lapisan dasar resource dan konfigurasi yang membantu mengaktifkan semua jenis workload di Google Cloud. Baik Anda memigrasikan workload komputasi yang ada ke Google Cloud, membangun aplikasi web dalam container, atau membuat big data dan workload machine learning, blueprint dasar perusahaan akan membantu Anda membangun lingkungan guna mendukung workload perusahaan dalam skala besar.
Setelah men-deploy blueprint enterprise foundation, Anda dapat men-deploy workload secara langsung atau men-deploy blueprint tambahan untuk mendukung workload kompleks yang membutuhkan kemampuan tambahan.
Model keamanan defense-in-depth
Layanan Google Cloud mendapatkan manfaat dari desain keamanan infrastruktur Google yang mendasarinya. Anda bertanggung jawab untuk mengintegrasikan keamanan ke dalam sistem yang Anda bangun di Google Cloud. Blueprint fondasi perusahaan membantu Anda menerapkan model keamanan defense in depth untuk layanan dan workload Google Cloud.
Diagram berikut menunjukkan model keamanan defense in depth untuk organisasi Google Cloud Anda yang menggabungkan kontrol arsitektur, kontrol kebijakan, dan kontrol detektif.
defense-in-depth<i}." class="l10n-absolute-url-src" l10n-attrs-original-order="src,alt,class" src="https://cloud.google.com/static/architecture/security-foundations/images/example-security-model.svg" />
Diagram menjelaskan kontrol berikut:
- Kontrol kebijakan adalah batasan terprogram yang menerapkan konfigurasi resource yang dapat diterima dan mencegah konfigurasi yang berisiko. Blueprint menggunakan kombinasi kontrol kebijakan, termasuk validasi infrastruktur sebagai kode (IaC) pada batasan kebijakan organisasi dan pipeline Anda.
- Kontrol arsitektur adalah konfigurasi resource Google Cloud, seperti jaringan dan hierarki resource. Arsitektur blueprint didasarkan pada praktik terbaik keamanan.
- Kontrol detektif memungkinkan Anda mendeteksi perilaku anomali atau berbahaya dalam organisasi. Blueprint menggunakan fitur platform seperti Security Command Center, terintegrasi dengan kontrol detektif dan alur kerja yang ada seperti pusat operasi keamanan (SOC), serta menyediakan kemampuan untuk menerapkan kontrol detektif kustom.
Keputusan penting
Bagian ini merangkum keputusan arsitektur tingkat tinggi dari blueprint.
Diagram ini menjelaskan kontribusi layanan Google Cloud terhadap keputusan arsitektur penting:
- Cloud Build: Resource infrastruktur dikelola menggunakan model GitOps. IaC deklaratif ditulis dalam Terraform dan dikelola dalam sistem kontrol versi untuk ditinjau dan disetujui, serta resource di-deploy menggunakan Cloud Build sebagai alat otomatisasi continuous integration dan continuous deployment (CI/CD). Pipeline ini juga menerapkan pemeriksaan kebijakan sebagai kode untuk memvalidasi bahwa resource memenuhi konfigurasi yang diharapkan sebelum deployment.
- Cloud Identity: Keanggotaan grup dan pengguna disinkronkan dari penyedia identitas Anda yang sudah ada. Kontrol untuk pengelolaan siklus proses akun pengguna dan single sign-on (SSO) mengandalkan kontrol dan proses penyedia identitas Anda yang sudah ada.
- Identity and Access Management (IAM): Mengizinkan kebijakan (sebelumnya dikenal sebagai kebijakan IAM) mengizinkan akses ke resource dan diterapkan ke grup berdasarkan fungsi tugas. Pengguna ditambahkan ke grup yang sesuai untuk menerima akses hanya lihat ke resource dasar. Semua perubahan pada resource fondasi di-deploy melalui pipeline CI/CD yang menggunakan identitas akun layanan dengan hak istimewa.
- Resource Manager: Semua resource dikelola dalam satu organisasi, dengan hierarki resource berupa folder yang mengatur project berdasarkan lingkungan. Project diberi label dengan metadata untuk tata kelola, termasuk atribusi biaya.
- Networking: Topologi jaringan menggunakan VPC Bersama guna menyediakan resource jaringan untuk workload di beberapa region dan zona, yang dipisahkan oleh lingkungan, dan dikelola secara terpusat. Semua jalur jaringan antara host lokal, resource Google Cloud di jaringan VPC, dan layanan Google Cloud bersifat pribadi. Secara default, tidak ada traffic keluar ke atau traffic masuk dari internet publik yang diizinkan.
- Cloud Logging: Sink log gabungan dikonfigurasi untuk mengumpulkan log yang relevan dengan keamanan dan pengauditan ke dalam project terpusat untuk retensi, analisis, dan ekspor jangka panjang ke sistem eksternal.
- Cloud Monitoring: Project pencakupan Monitoring dikonfigurasi untuk melihat metrik performa aplikasi di beberapa project di satu tempat.
- Layanan Kebijakan Organisasi: Batasan kebijakan organisasi dikonfigurasi untuk mencegah berbagai konfigurasi berisiko tinggi.
- Secret Manager: Project terpusat dibuat untuk tim yang bertanggung jawab mengelola dan mengaudit penggunaan secret aplikasi yang sensitif untuk membantu memenuhi persyaratan kepatuhan.
- Cloud Key Management Service (Cloud KMS): Project terpusat dibuat untuk tim yang bertanggung jawab mengelola dan mengaudit kunci enkripsi guna membantu memenuhi persyaratan kepatuhan.
- Security Command Center: Kemampuan deteksi dan pemantauan ancaman disediakan menggunakan kombinasi kontrol keamanan bawaan dari Security Command Center dan solusi kustom yang memungkinkan Anda mendeteksi dan merespons peristiwa keamanan.
Untuk alternatif keputusan utama ini, lihat alternatif.
Langkah selanjutnya
- Baca tentang autentikasi dan otorisasi (dokumen berikutnya dalam rangkaian ini).
Autentikasi dan otorisasi
Bagian ini memperkenalkan cara menggunakan Cloud Identity untuk mengelola identitas yang digunakan karyawan Anda untuk mengakses layanan Google Cloud.
Penyedia identitas eksternal sebagai sumber kebenaran
Sebaiknya gabungkan akun Cloud Identity Anda dengan penyedia identitas yang sudah ada. Federation membantu Anda memastikan bahwa proses pengelolaan akun yang ada berlaku untuk Google Cloud dan layanan Google lainnya.
Jika tidak memiliki penyedia identitas, Anda dapat membuat akun pengguna secara langsung di Cloud Identity.
Diagram berikut menunjukkan tampilan tingkat tinggi untuk penggabungan identitas dan single sign-on (SSO). Layanan ini menggunakan Microsoft Active Directory, yang terletak di lingkungan lokal, sebagai contoh penyedia identitas.
Diagram ini menjelaskan praktik terbaik berikut:
- Identitas pengguna dikelola dalam domain Active Directory yang terletak di lingkungan lokal dan digabungkan ke Cloud Identity. Active Directory menggunakan Google Cloud Directory Sync untuk menyediakan identitas ke Cloud Identity.
- Pengguna yang mencoba login ke layanan Google akan dialihkan ke penyedia identitas eksternal untuk single sign-on dengan SAML, menggunakan kredensial yang sudah ada untuk mengautentikasi. Tidak ada sandi yang disinkronkan dengan Cloud Identity.
Tabel berikut memberikan link ke panduan penyiapan untuk penyedia identitas.
Penyedia identitas | Panduan |
---|---|
Active Directory | |
Microsoft Entra ID (sebelumnya Azure AD) | |
Penyedia identitas eksternal lainnya (misalnya, Ping atau Okta) |
Sebaiknya terapkan autentikasi multi-faktor di penyedia identitas Anda dengan mekanisme yang tahan terhadap phishing, seperti Kunci Keamanan Titan.
Setelan yang direkomendasikan untuk Cloud Identity tidak diotomatiskan melalui kode Terraform dalam blueprint ini. Lihat kontrol administratif untuk Cloud Identity untuk mengetahui setelan keamanan yang direkomendasikan yang harus Anda konfigurasi selain men-deploy kode Terraform.
Grup untuk kontrol akses
Akun utama adalah identitas yang dapat diberi akses ke resource. Akun utama mencakup Akun Google untuk pengguna, grup Google, akun Google Workspace, domain Cloud Identity, dan akun layanan. Beberapa layanan juga memungkinkan Anda memberikan akses kepada semua pengguna yang melakukan autentikasi dengan Akun Google, atau kepada semua pengguna di internet. Agar akun utama dapat berinteraksi dengan layanan Google Cloud, Anda harus memberinya peran di Identity and Access Management (IAM).
Untuk mengelola peran IAM dalam skala besar, sebaiknya tetapkan pengguna ke grup berdasarkan fungsi tugas dan persyaratan akses mereka, lalu berikan peran IAM ke grup tersebut. Anda harus menambahkan pengguna ke grup menggunakan proses dalam penyedia identitas yang ada untuk pembuatan dan keanggotaan grup.
Sebaiknya jangan memberikan peran IAM kepada pengguna individu karena penetapan satu per satu dapat meningkatkan kompleksitas pengelolaan dan pengauditan peran.
Blueprint mengonfigurasi grup dan peran untuk akses hanya lihat ke resource fondasi. Sebaiknya deploy semua resource dalam blueprint melalui pipeline fondasi, dan jangan berikan peran kepada pengguna ke grup untuk mengubah resource fondasi di luar pipeline.
Tabel berikut menunjukkan grup yang dikonfigurasi oleh blueprint untuk melihat resource dasar.
Nama | Deskripsi | Peran | Cakupan |
---|---|---|---|
grp-gcp-org-admin@example.com |
Administrator dengan hak istimewa tinggi yang dapat memberikan peran IAM di tingkat organisasi. Mereka dapat mengakses peran lainnya. Hak istimewa ini tidak direkomendasikan untuk penggunaan sehari-hari. | Organization Administrator | organisasi |
grp-gcp-billing-admin@example.com |
Administrator dengan hak istimewa tinggi yang dapat mengubah akun Penagihan Cloud. Hak istimewa ini tidak direkomendasikan untuk penggunaan sehari-hari. | Admin Akun Penagihan | organisasi |
grp-gcp-billing-viewer@example.com |
Tim yang bertanggung jawab untuk melihat dan menganalisis pengeluaran di semua project. | Billing Account Viewer | organisasi |
Pengguna BigQuery | project penagihan | ||
grp-gcp-audit-viewer@example.com |
Tim yang bertanggung jawab untuk mengaudit log terkait keamanan. | project logging | |
grp-gcp-monitoring-users@example.com |
Tim yang bertanggung jawab untuk memantau metrik performa aplikasi. | Viewer Monitoring | memantau project |
grp-gcp-security-reviewer@example.com |
Tim yang bertanggung jawab untuk meninjau keamanan cloud. | Security Reviewer | organisasi |
grp-gcp-network-viewer@example.com |
Tim yang bertanggung jawab untuk melihat dan memelihara konfigurasi jaringan. | Penampil Jaringan Compute | organisasi |
grp-gcp-scc-admin@example.com |
Tim yang bertanggung jawab untuk mengonfigurasi Security Command Center. | Security Center Admin Editor | organisasi |
grp-gcp-secrets-admin@example.com |
Tim yang bertanggung jawab mengelola, menyimpan, dan mengaudit kredensial dan rahasia lain yang digunakan oleh aplikasi. | Secret Manager Admin | project secrets |
grp-gcp-kms-admin@example.com |
Tim yang bertanggung jawab untuk menerapkan pengelolaan kunci enkripsi guna memenuhi persyaratan kepatuhan. | Viewer Cloud KMS | km project |
Saat mem-build beban kerja Anda sendiri di atas fondasi, Anda membuat grup tambahan dan memberikan peran IAM yang didasarkan pada persyaratan akses untuk setiap beban kerja.
Sebaiknya hindari peran dasar (seperti Pemilik, Editor, atau Viewer) dan gunakan peran standar. Peran dasar terlalu permisif dan berpotensi menimbulkan risiko keamanan. Peran Pemilik dan Editor dapat menyebabkan eskalasi akses dan perpindahan lateral, dan peran Pelihat mencakup akses untuk membaca semua data. Untuk praktik terbaik tentang peran IAM, lihat Menggunakan IAM dengan aman.
Akun admin super
Pengguna Cloud Identity dengan akun admin super akan mengabaikan setelan SSO organisasi dan melakukan autentikasi langsung ke Cloud Identity. Pengecualian ini memang sengaja dibuat agar admin super masih dapat mengakses konsol Cloud Identity jika terjadi kesalahan konfigurasi atau pemadaman SSO. Namun, ini berarti Anda harus mempertimbangkan perlindungan tambahan untuk akun admin super.
Untuk melindungi akun admin super, sebaiknya selalu terapkan verifikasi 2 langkah dengan kunci keamanan di Cloud Identity. Untuk mengetahui informasi selengkapnya, lihat Praktik terbaik keamanan untuk akun administrator.
Masalah terkait akun pengguna konsumen
Jika Anda belum pernah menggunakan Cloud Identity atau Google Workspace sebelum login ke Google Cloud, karyawan organisasi Anda mungkin sudah menggunakan akun konsumen yang terkait dengan identitas email perusahaan mereka untuk mengakses layanan Google lainnya seperti Google Marketing Platform atau YouTube. Akun konsumen adalah akun yang sepenuhnya dimiliki dan dikelola oleh individu yang membuatnya. Karena akun tersebut tidak berada di bawah kontrol organisasi Anda dan mungkin mencakup data pribadi dan perusahaan, Anda harus memutuskan cara menggabungkan akun ini dengan akun perusahaan lainnya.
Sebaiknya gabungkan akun pengguna konsumen yang ada sebagai bagian dari aktivasi ke Google Cloud. Jika Anda belum menggunakan Google Workspace untuk semua akun pengguna Anda, sebaiknya blokir pembuatan akun konsumen baru.
Kontrol administratif untuk Cloud Identity
Cloud Identity memiliki berbagai kontrol administratif yang tidak diotomatiskan oleh kode Terraform di blueprint. Sebaiknya terapkan setiap kontrol keamanan praktik terbaik ini di awal dalam proses pembuatan fondasi.
Kontrol | Deskripsi |
---|---|
Men-deploy verifikasi 2 langkah | Akun pengguna mungkin disusupi melalui phishing, manipulasi sosial, penyemprotan sandi, atau berbagai ancaman lainnya. Verifikasi 2 langkah membantu memitigasi ancaman ini. Sebaiknya terapkan verifikasi 2 langkah untuk semua akun pengguna di organisasi Anda dengan mekanisme yang tahan terhadap phishing seperti Kunci Keamanan Titan atau kunci lainnya yang didasarkan pada standar FIDO U2F (CTAP1) yang tahan terhadap phishing. |
Menetapkan durasi sesi untuk layanan Google Cloud | Token OAuth persisten di workstation developer dapat menjadi risiko keamanan jika terekspos. Sebaiknya Anda menetapkan kebijakan autentikasi ulang untuk mewajibkan autentikasi setiap 16 jam menggunakan kunci keamanan. |
Menetapkan durasi sesi untuk Layanan Google | (Khusus pelanggan Google Workspace)
Sesi web persisten di berbagai layanan Google lainnya dapat menimbulkan risiko keamanan jika terekspos. Sebaiknya terapkan durasi sesi web maksimum dan selaraskan dengan kontrol durasi sesi di penyedia SSO Anda. |
Berbagi data dari Cloud Identity dengan layanan Google Cloud | Log audit Aktivitas Admin dari Google Workspace atau Cloud Identity biasanya dikelola dan dilihat di Konsol Admin, secara terpisah dari log di lingkungan Google Cloud Anda. Log ini berisi informasi yang relevan untuk lingkungan Google Cloud Anda, seperti peristiwa login pengguna. Sebaiknya Anda membagikan log audit Cloud Identity ke lingkungan Google Cloud Anda untuk mengelola log secara terpusat dari semua sumber. |
Menyiapkan verifikasi pasca SSO | Blueprint mengasumsikan bahwa Anda menyiapkan SSO dengan penyedia identitas eksternal. Sebaiknya aktifkan lapisan kontrol tambahan berdasarkan analisis risiko login Google. Setelah Anda menerapkan setelan ini, pengguna mungkin melihat verifikasi login berbasis risiko tambahan saat login jika Google menganggap proses login pengguna mencurigakan. |
Memperbaiki masalah pada akun pengguna konsumen | Pengguna dengan alamat email yang valid di domain Anda, tetapi tidak memiliki Akun Google, dapat mendaftar ke akun konsumen yang tidak dikelola. Akun ini mungkin berisi data perusahaan, tetapi tidak dikontrol oleh proses pengelolaan siklus proses akun Anda. Sebaiknya Anda mengambil langkah-langkah untuk memastikan bahwa semua akun pengguna adalah akun terkelola. |
Nonaktifkan pemulihan akun untuk akun admin super | Pemulihan mandiri akun admin super dinonaktifkan secara default untuk semua pelanggan baru (pelanggan lama mungkin mengaktifkan setelan ini). Menonaktifkan setelan ini membantu mengurangi risiko ponsel yang disusupi, email yang disusupi, atau serangan manipulasi psikologis dapat memungkinkan penyerang mendapatkan hak istimewa admin super atas lingkungan Anda. Rencanakan proses internal bagi admin super untuk menghubungi admin super lain di organisasi Anda jika mereka kehilangan akses ke akunnya, dan pastikan bahwa semua admin super memahami proses pemulihan yang dibantu dukungan dukungan. |
Menerapkan dan memantau persyaratan sandi untuk pengguna | Pada umumnya, sandi pengguna dikelola melalui penyedia identitas eksternal Anda, tetapi akun admin super mengabaikan SSO dan harus menggunakan sandi untuk login ke Cloud Identity. Menonaktifkan penggunaan ulang sandi dan memantau kekuatan sandi bagi setiap pengguna yang menggunakan sandi untuk login ke Cloud Identity, terutama akun admin super. |
Menetapkan kebijakan seluruh organisasi untuk menggunakan grup | Secara default, akun pengguna eksternal dapat ditambahkan ke grup di Cloud Identity. Sebaiknya konfigurasikan setelan berbagi sehingga pemilik grup tidak dapat menambahkan anggota eksternal. Perhatikan bahwa pembatasan ini tidak berlaku untuk akun admin super atau administrator delegasi lainnya dengan izin admin Grup. Karena penggabungan dari penyedia identitas Anda berjalan dengan hak istimewa administrator, setelan berbagi grup tidak berlaku untuk sinkronisasi grup ini. Sebaiknya tinjau kontrol dalam penyedia identitas dan mekanisme sinkronisasi untuk memastikan bahwa anggota non-domain tidak ditambahkan ke grup, atau Anda menerapkan pembatasan grup. |
Langkah selanjutnya
- Baca tentang struktur organisasi (dokumen berikutnya dalam rangkaian ini).
Struktur organisasi
Node root untuk mengelola resource di Google Cloud adalah organisasi. Organisasi Google Cloud menyediakan hierarki resource yang menyediakan struktur kepemilikan untuk resource dan titik lampiran bagi kebijakan organisasi dan kontrol akses. Hierarki resource terdiri dari folder, project, dan resource, serta mendefinisikan struktur dan penggunaan layanan Google Cloud dalam sebuah organisasi.
Resource yang lebih rendah dalam hierarki mewarisi kebijakan seperti kebijakan izin dan kebijakan organisasi oleh IAM. Semua izin akses ditolak secara default, sampai Anda menerapkan kebijakan izinkan secara langsung ke resource atau resource mewarisi kebijakan izinkan dari level yang lebih tinggi dalam hierarki resource.
Diagram berikut menunjukkan folder dan project yang di-deploy oleh cetak biru.
Bagian berikut menjelaskan folder dan project dalam diagram.
Folder
Blueprint menggunakan folder untuk mengelompokkan project berdasarkan lingkungannya. Pengelompokan logis ini digunakan untuk menerapkan konfigurasi seperti kebijakan izinkan dan kebijakan organisasi pada level folder, lalu semua resource dalam folder mewarisi kebijakan tersebut. Tabel berikut menjelaskan folder yang merupakan bagian dari blueprint.
Folder | Deskripsi |
---|---|
bootstrap |
Berisi project yang digunakan untuk men-deploy komponen dasar. |
common |
Berisi project dengan resource yang digunakan bersama oleh semua lingkungan. |
production |
Berisi project dengan resource produksi. |
nonproduction |
Berisi salinan lingkungan production yang memungkinkan Anda menguji beban kerja sebelum mempromosikannya ke produksi. |
development |
Berisi resource cloud yang digunakan untuk pengembangan. |
networking |
Berisi resource jaringan yang digunakan bersama oleh semua lingkungan. |
Project
Blueprint menggunakan project untuk mengelompokkan resource individual berdasarkan fungsionalitasnya dan batas yang dimaksudkan untuk kontrol akses. Tabel berikut ini menjelaskan project yang termasuk dalam cetak biru tersebut.
Folder | Project | Deskripsi |
---|---|---|
bootstrap |
prj-b-cicd |
Berisi pipeline deployment yang digunakan untuk membangun komponen dasar organisasi. Untuk informasi selengkapnya, lihat metodologi deployment. |
prj-b-seed |
Berisi status Terraform infrastruktur Anda dan akun layanan Terraform yang diperlukan untuk menjalankan pipeline. Untuk informasi selengkapnya, lihat metodologi deployment. | |
common |
prj-c-secrets |
Berisi rahasia tingkat tinggi organisasi. Untuk mengetahui informasi selengkapnya, lihat menyimpan kredensial aplikasi dengan Secret Manager. |
prj-c-logging |
Berisi sumber log gabungan untuk log audit. Untuk mengetahui informasi selengkapnya, lihat logging terpusat untuk keamanan dan audit. | |
prj-c-scc |
Berisi resource untuk membantu mengonfigurasi pemberitahuan Security Command Center dan pemantauan keamanan kustom lainnya. Untuk mengetahui informasi selengkapnya, lihat pemantauan ancaman dengan Security Command Center. | |
prj-c-billing-logs |
Berisi set data BigQuery dengan ekspor penagihan organisasi. Untuk mengetahui informasi selengkapnya, lihat mengalokasikan biaya antara pusat biaya internal. | |
prj-c-infra-pipeline |
Berisi pipeline infrastruktur untuk men-deploy resource seperti VM dan database yang akan digunakan oleh beban kerja. Untuk informasi selengkapnya, lihat lapisan pipeline. | |
prj-c-kms |
Berisi kunci enkripsi tingkat organisasi. Untuk mengetahui informasi selengkapnya, lihat mengelola kunci enkripsi. | |
networking |
prj-net-{env}-shared-base |
Berisi project host untuk jaringan VPC Bersama untuk beban kerja yang tidak memerlukan Kontrol Layanan VPC. Untuk mengetahui informasi selengkapnya, lihat topologi jaringan. |
prj-net-{env}-shared-restricted |
Berisi project host untuk jaringan VPC Bersama untuk beban kerja yang memerlukan Kontrol Layanan VPC. Untuk mengetahui informasi selengkapnya, lihat topologi jaringan. | |
prj-net-interconnect |
Berisi koneksi Cloud Interconnect yang menyediakan konektivitas antara lingkungan lokal Anda dan Google Cloud. Untuk mengetahui informasi selengkapnya, lihat konektivitas hybrid. | |
prj-net-dns-hub |
Berisi resource untuk titik komunikasi pusat antara sistem DNS lokal dan Cloud DNS. Untuk mengetahui informasi selengkapnya, lihat penyiapan DNS terpusat. | |
folder lingkungan (production,
non-production dan development ) |
prj-{env}-monitoring |
Berisi project pencakupan untuk menggabungkan metrik dari project di lingkungan tersebut. Untuk informasi lebih lanjut, lihat pemberitahuan tentang metrik berbasis log dan metrik performa |
prj-{env}-secrets |
Berisi rahasia tingkat folder. Untuk mengetahui informasi selengkapnya, lihat menyimpan dan mengaudit kredensial aplikasi dengan Secret Manager. | |
prj-{env}-kms |
Berisi kunci enkripsi tingkat folder. Untuk mengetahui informasi selengkapnya, lihat mengelola kunci enkripsi. | |
project aplikasi | Berisi berbagai project tempat Anda membuat resource untuk aplikasi. Untuk mengetahui informasi selengkapnya, lihat pola deployment project dan lapisan pipeline. |
Tata kelola untuk kepemilikan aset
Sebaiknya Anda menerapkan label secara konsisten ke project untuk membantu pengelolaan dan alokasi biaya. Tabel berikut menjelaskan label project yang ditambahkan ke setiap project untuk tata kelola dalam blueprint.
Label | Deskripsi |
---|---|
application |
Nama aplikasi atau beban kerja yang dapat dibaca manusia yang terkait dengan project. |
businesscode |
Kode singkat yang menjelaskan unit bisnis mana yang memiliki project. Kode shared digunakan untuk project umum yang tidak terkait secara eksplisit ke unit bisnis. |
billingcode |
Kode yang digunakan untuk memberikan informasi penagihan balik. |
primarycontact |
Nama pengguna kontak utama yang bertanggung jawab atas project. Karena label project tidak dapat menyertakan karakter khusus seperti ampersand (@), label tersebut ditetapkan ke nama pengguna tanpa akhiran @example.com. |
secondarycontact |
Nama pengguna kontak sekunder sekunder yang bertanggung jawab atas project. Karena label project tidak dapat menyertakan karakter khusus seperti @, hanya tetapkan nama pengguna tanpa akhiran @example.com. |
environment |
Nilai yang mengidentifikasi jenis lingkungan, seperti
bootstrap , common , production ,
non-production,development , atau network. |
envcode |
Nilai yang mengidentifikasi jenis lingkungan, disingkat menjadi b , c , p , n , d , atau net . |
vpc |
ID jaringan VPC yang diharapkan untuk digunakan project ini. |
Google mungkin sesekali mengirimkan notifikasi penting seperti penangguhan akun atau pembaruan persyaratan produk. Blueprint menggunakan Kontak Penting untuk mengirimkan notifikasi tersebut ke grup yang Anda konfigurasi selama deployment. Kontak Penting dikonfigurasi pada node organisasi dan diwarisi oleh semua project di organisasi. Sebaiknya tinjau grup ini dan pastikan email dipantau dengan andal.
Kontak Penting digunakan untuk tujuan yang berbeda dengan kolom primarycontact
dan secondarycontact
yang dikonfigurasi di label project. Kontak dalam label project dimaksudkan untuk tata kelola internal. Misalnya, jika Anda mengidentifikasi resource yang tidak mematuhi kebijakan dalam project beban kerja dan perlu
menghubungi pemilik, Anda dapat menggunakan kolom primarycontact
untuk menemukan
orang atau tim yang bertanggung jawab atas beban kerja tersebut.
Langkah selanjutnya
- Baca tentang jaringan (dokumen berikutnya dalam seri ini).
Networking
Jaringan diperlukan agar resource dapat berkomunikasi dalam organisasi Google Cloud Anda serta antara lingkungan cloud dan lingkungan lokal Anda. Bagian ini menjelaskan struktur dalam blueprint untuk jaringan VPC, ruang alamat IP, DNS, kebijakan firewall, dan konektivitas ke lingkungan lokal.
Topologi jaringan
Repositori blueprint menyediakan opsi berikut untuk topologi jaringan Anda:
- Gunakan jaringan VPC Bersama terpisah untuk setiap lingkungan, tanpa traffic jaringan yang diizinkan secara langsung antar-lingkungan.
- Gunakan model hub-and-spoke yang menambahkan jaringan hub untuk menghubungkan setiap lingkungan di Google Cloud, dengan traffic jaringan antarlingkungan yang dilindungi oleh jaringan virtual appliance (NVA).
Pilih topologi jaringan VPC Bersama ganda jika Anda tidak menginginkan konektivitas jaringan langsung antar-lingkungan. Pilih topologi jaringan hub-and-spoke jika Anda ingin mengizinkan konektivitas jaringan antarlingkungan yang difilter oleh NVA, seperti saat Anda mengandalkan alat yang ada yang memerlukan jalur jaringan langsung ke setiap server di lingkungan Anda.
Kedua topologi tersebut menggunakan VPC Bersama sebagai konstruksi jaringan utama karena VPC Bersama memungkinkan pemisahan tanggung jawab yang jelas. Administrator jaringan mengelola resource jaringan dalam project host terpusat, dan tim beban kerja men-deploy resource aplikasinya sendiri serta menggunakan resource jaringan dalam project layanan yang terpasang pada project host.
Kedua topologi mencakup versi dasar dan versi terbatas dari setiap jaringan VPC. Jaringan VPC dasar digunakan untuk resource yang berisi data yang tidak sensitif, dan jaringan VPC terbatas digunakan untuk resource dengan data sensitif yang memerlukan Kontrol Layanan VPC. Untuk mengetahui informasi lebih lanjut tentang penerapan Kontrol Layanan VPC, baca artikel Melindungi resource Anda dengan Kontrol Layanan VPC.
Topologi jaringan VPC Bersama Ganda
Jika Anda memerlukan isolasi jaringan antara jaringan pengembangan, non-produksi, dan produksi di Google Cloud, sebaiknya gunakan topologi jaringan VPC Bersama ganda. Topologi ini menggunakan jaringan VPC Bersama yang terpisah untuk setiap lingkungan, dengan setiap lingkungan juga dipisahkan antara jaringan VPC Bersama dasar dan jaringan VPC Bersama terbatas.
Diagram berikut menunjukkan topologi jaringan VPC Bersama ganda.
Diagram ini menjelaskan konsep utama topologi VPC Bersama ganda:
- Setiap lingkungan (produksi, non-produksi, dan pengembangan) memiliki satu jaringan VPC Bersama untuk jaringan dasar dan satu jaringan VPC Bersama untuk jaringan yang dibatasi. Diagram ini hanya menampilkan lingkungan produksi, tetapi pola yang sama diulang untuk setiap lingkungan.
- Setiap jaringan VPC Bersama memiliki dua subnet, dengan setiap subnet di region yang berbeda.
- Konektivitas dengan resource lokal diaktifkan melalui empat lampiran VLAN ke instance Dedicated Interconnect untuk setiap jaringan VPC Bersama, menggunakan empat layanan Cloud Router (dua di setiap region untuk redundansi). Untuk mengetahui informasi selengkapnya, lihat Konektivitas hybrid antara lingkungan lokal dan Google Cloud.
Berdasarkan desain, topologi ini tidak memungkinkan traffic jaringan mengalir langsung antar lingkungan. Jika Anda memerlukan traffic jaringan untuk mengalir langsung di antara lingkungan, Anda harus mengambil langkah tambahan untuk mengizinkan jalur jaringan ini. Misalnya, Anda dapat mengonfigurasi endpoint Private Service Connect untuk mengekspos layanan dari satu jaringan VPC ke jaringan VPC lainnya. Atau, Anda dapat mengonfigurasi jaringan lokal agar traffic dapat mengalir dari satu lingkungan Google Cloud ke lingkungan lokal lalu ke lingkungan Google Cloud lainnya.
Topologi jaringan hub-and-spoke
Jika Anda men-deploy resource di Google Cloud yang memerlukan jalur jaringan langsung ke resource di beberapa lingkungan, sebaiknya gunakan topologi jaringan hub-and-spoke.
Topologi hub-and-spoke menggunakan beberapa konsep yang merupakan bagian dari topologi VPC Bersama ganda, tetapi memodifikasi topologi tersebut untuk menambahkan jaringan hub. Diagram berikut menunjukkan topologi hub-and-spoke.
Diagram ini menjelaskan konsep utama topologi jaringan hub-and-spoke:
- Model ini menambahkan jaringan hub, dan setiap jaringan pengembangan, non-produksi, dan produksi (spoke) terhubung ke jaringan hub melalui Peering Jaringan VPC. Atau, jika Anda mengantisipasi batas kuota akan terlampaui, Anda dapat menggunakan gateway VPN dengan ketersediaan tinggi (HA).
- Konektivitas ke jaringan lokal hanya diizinkan melalui jaringan hub. Semua jaringan spoke dapat berkomunikasi dengan resource bersama di jaringan hub dan menggunakan jalur ini untuk terhubung ke jaringan lokal.
- Jaringan hub mencakup NVA untuk setiap region, yang di-deploy secara redundan di belakang instance Load Balancer Jaringan internal. NVA ini berfungsi sebagai gateway untuk mengizinkan atau menolak traffic guna berkomunikasi antara jaringan spoke.
- Jaringan hub juga menghosting alat yang memerlukan konektivitas ke semua jaringan lainnya. Misalnya, Anda dapat men-deploy alat pada instance VM untuk pengelolaan konfigurasi di lingkungan umum.
- Model hub-and-spoke diduplikasi untuk versi dasar dan versi yang dibatasi dari setiap jaringan.
Untuk mengaktifkan traffic spoke-to-spoke, blueprint men-deploy NVA di jaringan VPC bersama hub yang berfungsi sebagai gateway antarjaringan. Rute dipertukarkan dari jaringan VPC hub-ke-spoke melalui pertukaran rute kustom. Dalam skenario ini, konektivitas antar spoke harus dirutekan melalui NVA karena Peering Jaringan VPC bersifat non-transitif, sehingga jaringan VPC bicara tidak dapat bertukar data satu sama lain secara langsung. Anda harus mengonfigurasi peralatan virtual untuk mengizinkan traffic di antara jari-jari secara selektif.
Untuk mengetahui informasi lebih lanjut tentang penggunaan NVA guna mengontrol traffic antar-jari, lihat peralatan jaringan terpusat di Google Cloud.
Pola deployment project
Saat membuat project baru untuk beban kerja, Anda harus memutuskan cara resource dalam project ini terhubung ke jaringan yang ada. Tabel berikut menjelaskan pola untuk men-deploy project yang digunakan dalam cetak biru.
Pola | Deskripsi | Contoh penggunaan |
---|---|---|
Project dasar bersama | Project ini dikonfigurasi sebagai project layanan ke project host VPC Bersama dasar. Gunakan pola ini jika resource dalam project Anda memiliki kriteria berikut:
|
example_base_shared_vpc_project.tf |
Project yang dibatasi bersama | Project ini dikonfigurasi sebagai project layanan ke project host VPC Bersama yang dibatasi. Gunakan pola ini jika resource dalam project Anda memiliki kriteria berikut:
|
example_restricted_shared_vpc_project.tf |
Project mengambang | Project floating tidak terhubung ke jaringan VPC lain dalam topologi Anda. Gunakan pola ini jika resource dalam project Anda memiliki kriteria berikut:
Anda mungkin memiliki skenario saat ingin jaringan VPC dari project floating tetap terpisah dari topologi jaringan VPC utama, tetapi juga ingin mengekspos endpoint dalam jumlah yang terbatas antarjaringan. Dalam hal ini, publikasikan layanan menggunakan Private Service Connect untuk membagikan akses jaringan ke setiap endpoint di seluruh jaringan VPC tanpa mengekspos seluruh jaringan. |
example_floating_project.tf |
Project peering | Project peering membuat jaringan VPC-nya sendiri dan melakukan peering ke jaringan VPC lain dalam topologi Anda. Gunakan pola ini jika resource dalam project Anda memiliki kriteria berikut:
Jika membuat project peering, Anda bertanggung jawab untuk mengalokasikan rentang alamat IP yang tidak mengalami konflik dan merencanakan kuota grup peering. |
example_peering_project.tf |
Alokasi alamat IP
Bagian ini memperkenalkan cara arsitektur blueprint mengalokasikan rentang alamat IP. Anda mungkin perlu mengubah rentang alamat IP spesifik yang digunakan berdasarkan ketersediaan alamat IP di lingkungan hybrid yang ada.
Tabel berikut menyediakan perincian ruang alamat IP yang dialokasikan untuk cetak biru. Lingkungan hub hanya berlaku di topologi hub-and-spoke.
Tujuan | Jenis VPC | Region | Lingkungan hub | Lingkungan pengembangan | Lingkungan non-produksi | Lingkungan produksi |
---|---|---|---|---|---|---|
Rentang subnet utama | Base | Region 1 | 10.0.0.0/18 | 10.0.64.0/18 | 10.0.128.0/18 | 10.0.192.0/18 |
Region 2 | 10.1.0.0/18 | 10.1.64.0/18 | 10.1.128.0/18 | 10.1.192.0/18 | ||
Belum dialokasikan | 10.{2-7}.0.0/18 | 10.{2-7}.64.0/18 | 10.{2-7}.128.0/18 | 10.{2-7}.192.0/18 | ||
Dibatasi | Region 1 | 10.8.0.0/18 | 10.8.64.0/18 | 10.8.128.0/18 | 10.8.192.0/18 | |
Region 2 | 10.9.0.0/18 | 10.9.64.0/18 | 10.9.128.0/18 | 10.9.192.0/18 | ||
Belum dialokasikan | 10.{10-15}.0.0/18 | 10.{10-15}.64.0/18 | 10.{10-15}.128.0/18 | 10.{10-15}.192.0/18 | ||
Akses layanan pribadi | Base | Global | 10.16.0.0/21 | 10.16.8.0/21 | 10.16.16.0/21 | 10.16.24.0/21 |
Dibatasi | Global | 10.16.32.0/21 | 10.16.40.0/21 | 10.16.48.0/21 | 10.16.56.0/21 | |
Endpoint Private Service Connect | Base | Global | 10.17.0.1/32 | 10.17.0.2/32 | 10.17.0.3/32 | 10.17.0.4/32 |
Dibatasi | Global | 10.17.0.5/32 | 10.17.0.6/32 | 10.17.0.7/32 | 10.17.0.8/32 | |
Subnet khusus proxy | Base | Region 1 | 10.18.0.0/23 | 10.18.2.0/23 | 10.18.4.0/23 | 10.18.6.0/23 |
Region 2 | 10.19.0.0/23 | 10.19.2.0/23 | 10.19.4.0/23 | 10.19.6.0/23 | ||
Belum dialokasikan | 10.{20-25}.0.0/23 | 10.{20-25}.2.0/23 | 10.{20-25}.4.0/23 | 10.{20-25}.6.0/23 | ||
Dibatasi | Region 1 | 10.26.0.0/23 | 10.26.2.0/23 | 10.26.4.0/23 | 10.26.6.0/23 | |
Region 2 | 10.27.0.0/23 | 10.27.2.0/23 | 10.27.4.0/23 | 10.27.6.0/23 | ||
Belum dialokasikan | 10.{28-33}.0.0/23 | 10.{28-33}.2.0/23 | 10.{28-33}.4.0/23 | 10.{28-33}.6.0/23 | ||
Rentang subnet sekunder | Base | Region 1 | 100.64.0.0/18 | 100.64.64.0/18 | 100.64.128.0/18 | 100.64.192.0/18 |
Region 2 | 100.65.0.0/18 | 100.65.64.0/18 | 100.65.128.0/18 | 100.65.192.0/18 | ||
Belum dialokasikan | 100.{66-71}.0.0/18 | 100.{66-71}.64.0/18 | 100.{66-71}.128.0/18 | 100.{66-71}.192.0/18 | ||
Dibatasi | Region 1 | 100.72.0.0/18 | 100.72.64.0/18 | 100.72.128.0/18 | 100.72.192.0/18 | |
Region 2 | 100.73.0.0/18 | 100.73.64.0/18 | 100.73.128.0/18 | 100.73.192.0/18 | ||
Belum dialokasikan | 100.{74-79}.0.0/18 | 100.{74-79}.64.0/18 | 100.{74-79}.128.0/18 | 100.{74-79}.192.0/18 |
Tabel sebelumnya menunjukkan konsep berikut untuk mengalokasikan rentang alamat IP:
- Alokasi alamat IP dibagi menjadi beberapa rentang untuk setiap kombinasi VPC Bersama dasar, VPC Bersama, region, dan lingkungan yang dibatasi.
- Beberapa resource bersifat global dan tidak memerlukan subdivisi untuk setiap region.
- Secara default, untuk resource regional, blueprint akan di-deploy di dua region. Selain itu, ada rentang alamat IP yang tidak digunakan sehingga Anda dapat memperluasnya ke enam region tambahan.
- Jaringan hub hanya digunakan dalam topologi jaringan hub-and-spoke, sedangkan lingkungan pengembangan, non-produksi, dan produksi digunakan di kedua topologi jaringan.
Tabel berikut memperkenalkan cara menggunakan setiap jenis rentang alamat IP.
Tujuan | Deskripsi |
---|---|
Rentang subnet utama | Resource yang Anda deploy ke jaringan VPC, seperti instance virtual machine, menggunakan alamat IP internal dari rentang ini. |
Akses layanan pribadi | Beberapa layanan Google Cloud seperti Cloud SQL mengharuskan Anda mengalokasikan lebih dahulu rentang subnet untuk akses layanan pribadi. Blueprint mencadangkan rentang /21 secara global untuk setiap jaringan VPC Bersama guna mengalokasikan alamat IP untuk layanan yang memerlukan akses layanan pribadi. Saat membuat layanan yang bergantung pada akses layanan pribadi, Anda mengalokasikan subnet /24 regional dari rentang /21 yang dicadangkan. |
Private Service Connect | Blueprint menyediakan setiap jaringan VPC dengan endpoint Private Service Connect untuk berkomunikasi dengan Google Cloud API. Endpoint ini memungkinkan resource Anda di jaringan VPC menjangkau Google Cloud API tanpa mengandalkan traffic keluar ke internet atau rentang internet yang diiklankan secara publik. |
Load balancer berbasis proxy | Beberapa jenis Load Balancer Aplikasi mengharuskan Anda untuk mengalokasikan subnet khusus proxy terlebih dahulu. Meskipun blueprint tidak men-deploy Load Balancer Aplikasi yang memerlukan rentang ini, mengalokasikan rentang terlebih dahulu akan membantu mengurangi hambatan beban kerja saat mereka perlu meminta rentang subnet baru untuk mengaktifkan resource load balancer tertentu. |
Rentang subnet sekunder | Beberapa kasus penggunaan, seperti workload berbasis container, memerlukan rentang sekunder. Blueprint mengalokasikan rentang dari ruang alamat IP RFC 6598 untuk rentang sekunder. |
Penyiapan DNS terpusat
Untuk resolusi DNS antara Google Cloud dan lingkungan lokal, sebaiknya gunakan pendekatan campuran dengan dua sistem DNS yang kredibel. Dalam pendekatan ini, Cloud DNS menangani resolusi DNS otoritatif untuk lingkungan Google Cloud Anda, dan server DNS lokal yang ada akan menangani resolusi DNS yang otoritatif untuk resource lokal. Lingkungan lokal dan lingkungan Google Cloud Anda melakukan pencarian DNS antarlingkungan melalui permintaan penerusan.
Diagram berikut menunjukkan topologi DNS di berbagai jaringan VPC yang digunakan dalam blueprint.
Diagram ini menjelaskan komponen desain DNS berikut yang di-deploy oleh blueprint:
- Project hub DNS di folder umum merupakan titik pusat pertukaran DNS antara lingkungan lokal dan lingkungan Google Cloud. Penerusan DNS menggunakan instance Dedicated Interconnect dan Cloud Router yang sama dengan yang sudah dikonfigurasi di topologi jaringan Anda.
- Dalam topologi VPC Bersama ganda, hub DNS menggunakan jaringan VPC Bersama produksi dasar.
- Dalam topologi hub-and-spoke, hub DNS menggunakan jaringan VPC bersama hub dasar.
- Server di setiap jaringan VPC Bersama dapat me-resolve data DNS dari jaringan VPC Bersama lainnya melalui penerusan DNS, yang dikonfigurasi antara Cloud DNS di setiap project host VPC Bersama dan hub DNS.
- Server lokal dapat me-resolve data DNS di lingkungan Google Cloud menggunakan kebijakan server DNS yang mengizinkan kueri dari server lokal. Blueprint mengonfigurasi kebijakan server masuk di hub DNS untuk mengalokasikan alamat IP, dan server DNS lokal meneruskan permintaan ke alamat ini. Semua permintaan DNS ke Google Cloud akan mencapai hub DNS terlebih dahulu, yang kemudian menyelesaikan data dari peer DNS.
- Server di Google Cloud dapat me-resolve data DNS di lingkungan lokal menggunakan zona penerusan yang mengkueri server lokal. Semua permintaan DNS ke lingkungan lokal berasal dari hub DNS. Sumber permintaan DNS adalah 35.199.192.0/19.
Kebijakan firewall
Google Cloud memiliki beberapa jenis kebijakan firewall. Kebijakan firewall hierarkis diterapkan pada tingkat organisasi atau folder untuk mewarisi aturan kebijakan firewall secara konsisten di semua resource dalam hierarki. Selain itu, Anda dapat mengonfigurasi kebijakan firewall jaringan untuk setiap jaringan VPC. Blueprint menggabungkan kebijakan firewall ini untuk menerapkan konfigurasi umum di semua lingkungan menggunakan kebijakan firewall Hierarkis dan untuk menerapkan konfigurasi yang lebih spesifik di setiap jaringan VPC menggunakan kebijakan firewall jaringan.
Blueprint tidak menggunakan aturan firewall VPC lama. Sebaiknya hanya gunakan kebijakan firewall dan hindari pencampuran penggunaan dengan aturan firewall VPC lama.
Kebijakan firewall hierarkis
Blueprint mendefinisikan satu kebijakan firewall hierarkis dan melampirkan kebijakan tersebut ke setiap folder produksi, non-produksi, pengembangan, bootstrap, dan umum. Kebijakan firewall hierarkis ini berisi aturan yang harus diterapkan secara luas di semua lingkungan, dan mendelegasikan evaluasi aturan yang lebih terperinci ke kebijakan firewall jaringan untuk setiap lingkungan.
Tabel berikut menjelaskan aturan kebijakan firewall hierarkis yang di-deploy oleh blueprint.
Deskripsi aturan | Arah traffic | Filter (rentang IPv4) | Protocols and ports | Tindakan |
---|---|---|---|---|
Delegasikan evaluasi traffic masuk dari RFC 1918 ke tingkat yang lebih rendah dalam hierarki. | Ingress |
192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12 |
all |
Go to next |
Delegasikan evaluasi traffic keluar ke RFC 1918 ke level yang lebih rendah dalam hierarki. | Egress |
192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12 |
all |
Go to next |
IAP untuk penerusan TCP | Ingress |
35.235.240.0/20 |
tcp:22,3390 |
Allow |
Aktivasi server Windows | Egress |
35.190.247.13/32 |
tcp:1688 |
Allow |
Health check untuk Cloud Load Balancing | Ingress |
130.211.0.0/22, 35.191.0.0/16, 209.85.152.0/22, 209.85.204.0/22 |
tcp:80,443 |
Allow |
Kebijakan firewall jaringan
Blueprint mengonfigurasi kebijakan firewall jaringan untuk setiap jaringan. Setiap kebijakan firewall jaringan dimulai dengan serangkaian aturan minimum yang mengizinkan akses ke layanan Google Cloud dan menolak traffic keluar ke semua alamat IP lainnya.
Dalam model hub-and-spoke, kebijakan firewall jaringan berisi aturan tambahan untuk memungkinkan komunikasi antar spoke. Kebijakan firewall jaringan memungkinkan traffic keluar dari satu hub atau spoke lainnya, dan memungkinkan traffic masuk dari NVA di jaringan hub.
Tabel berikut menjelaskan aturan dalam kebijakan firewall jaringan global yang di-deploy untuk setiap jaringan VPC dalam blueprint.
Deskripsi aturan | Arah traffic | Filter | Protocols and ports |
---|---|---|---|
Mengizinkan traffic keluar ke Google Cloud API. | Egress |
Endpoint Private Service Connect yang dikonfigurasi untuk setiap jaringan individual. Lihat Akses pribadi ke Google API. | tcp:443 |
Penolakan traffic keluar tidak cocok dengan aturan lain. | Egress |
semua | all |
Izinkan traffic keluar dari satu spoke ke spoke lainnya (hanya untuk model hub-dan-spoke). |
Egress |
Agregat semua alamat IP yang digunakan dalam topologi hub-and-spoke. Traffic yang keluar dari VPC spoke dirutekan ke NVA di jaringan hub terlebih dahulu. | all |
Memungkinkan traffic masuk ke spoke dari NVA di jaringan hub (hanya untuk model hub-and-spoke). |
Ingress |
Lalu lintas yang berasal dari NVA di jaringan hub. | all |
Saat Anda pertama kali men-deploy blueprint, instance VM di jaringan VPC dapat berkomunikasi dengan layanan Google Cloud, tetapi tidak dengan resource infrastruktur lain di jaringan VPC yang sama. Agar instance VM dapat berkomunikasi, Anda harus menambahkan aturan lain ke kebijakan firewall jaringan dan tag yang secara eksplisit mengizinkan instance VM untuk berkomunikasi. Tag ditambahkan ke instance VM, dan traffic dievaluasi berdasarkan tag tersebut. Tag juga memiliki kontrol IAM sehingga Anda dapat menentukannya secara terpusat dan mendelegasikan penggunaannya ke tim lain.
Diagram berikut menunjukkan contoh cara menambahkan tag kustom dan aturan kebijakan firewall jaringan untuk memungkinkan workload berkomunikasi di dalam jaringan VPC.
Diagram menunjukkan konsep berikut dari contoh ini:
- Kebijakan firewall jaringan berisi Aturan 1 yang menolak traffic keluar dari semua sumber di prioritas 65530.
- Kebijakan firewall jaringan berisi Aturan 2 yang mengizinkan traffic masuk dari instance dengan tag
service=frontend
ke instance dengan tagservice=backend
pada prioritas 999. - VM instance-2 dapat menerima traffic dari instance-1 karena traffic-nya cocok dengan tag yang diizinkan oleh Aturan 2. Aturan 2 dicocokkan sebelum Aturan 1 dievaluasi, berdasarkan nilai prioritas.
- VM instance-3 tidak menerima traffic. Satu-satunya aturan kebijakan firewall yang cocok dengan traffic ini adalah Aturan 1, sehingga traffic keluar dari instance-1 ditolak.
Akses pribadi ke Google Cloud API
Agar resource di jaringan VPC atau lingkungan lokal Anda menjangkau layanan Google Cloud, sebaiknya gunakan konektivitas pribadi, bukan traffic internet keluar ke endpoint API publik. Blueprint mengonfigurasi Akses Google Pribadi di setiap subnet dan membuat endpoint internal dengan Private Service Connect untuk berkomunikasi dengan layanan Google Cloud. Jika digunakan bersamaan, kontrol ini memungkinkan jalur pribadi ke layanan Google Cloud, tanpa mengandalkan traffic keluar internet atau rentang internet yang diiklankan secara publik.
Blueprint mengonfigurasi endpoint Private Service Connect dengan paket API untuk membedakan layanan mana yang dapat diakses di jaringan tertentu. Jaringan dasar menggunakan paket all-apis
dan dapat menjangkau layanan Google apa pun, sedangkan jaringan yang dibatasi menggunakan paket vpcsc
yang mengizinkan akses ke kumpulan layanan terbatas yang mendukung Kontrol Layanan VPC.
Untuk akses dari host yang berada di lingkungan lokal, sebaiknya gunakan konvensi FQDN kustom untuk setiap endpoint, seperti yang dijelaskan dalam tabel berikut. Blueprint menggunakan endpoint Private Service Connect unik untuk setiap jaringan VPC, yang dikonfigurasi untuk akses ke kumpulan paket API yang berbeda. Oleh karena itu, Anda harus mempertimbangkan cara merutekan traffic layanan dari lingkungan lokal ke jaringan VPC dengan endpoint API yang benar. Selain itu, jika Anda menggunakan Kontrol Layanan VPC, pastikan traffic ke layanan Google Cloud mencapai endpoint di dalam perimeter yang diinginkan. Konfigurasi kontrol lokal untuk DNS, firewall, dan router guna mengizinkan akses ke endpoint ini, serta mengonfigurasi host lokal agar menggunakan endpoint yang sesuai. Untuk informasi selengkapnya, lihat mengakses Google API melalui endpoint.
Tabel berikut menjelaskan endpoint Private Service Connect yang dibuat untuk setiap jaringan.
VPC | Lingkungan | Paket API | Alamat IP endpoint Private Service Connect | FQDN Kustom | ||||
---|---|---|---|---|---|---|---|---|
Base | Umum | all-apis |
10.17.0.1/32 | c.private.googleapis.com |
||||
Pengembangan | all-apis |
10.17.0.2/32 | d.private.googleapis.com |
|||||
Non-produksi | all-apis |
10.17.0.3/32 | n.private.googleapis.com |
|||||
Produksi | all-apis |
10.17.0.4/32 | p.private.googleapis.com |
|||||
Dibatasi | Umum | vpcsc |
10.17.0.5/32 | c.restricted.googleapis.com |
||||
Pengembangan | vpcsc |
10.17.0.6/32 | d.restricted.googleapis.com |
|||||
Non-produksi | vpcsc |
10.17.0.7/32 | n.restricted.googleapis.com |
|||||
Produksi | vpcsc |
10.17.0.8/32 | p.restricted.googleapis.com |
Guna memastikan traffic untuk layanan Google Cloud memiliki pencarian DNS ke endpoint yang benar, blueprint mengonfigurasi zona DNS pribadi untuk setiap jaringan VPC. Tabel berikut menjelaskan zona DNS pribadi ini.
Nama zona pribadi | Nama DNS | Jenis data | Data |
---|---|---|---|
googleapis.com. |
*.googleapis.com. |
CNAME |
private.googleapis.com. (untuk jaringan
dasar) atau restricted.googleapis.com. (untuk
jaringan yang dibatasi) |
private.googleapis.com (untuk jaringan
dasar) atau restricted.googleapis.com (untuk
jaringan yang dibatasi) |
A |
Alamat IP endpoint Private Service Connect untuk jaringan VPC tersebut. | |
gcr.io. |
*.gcr.io |
CNAME |
gcr.io. |
gcr.io |
A |
Alamat IP endpoint Private Service Connect untuk jaringan VPC tersebut. | |
pkg.dev. |
*.pkg.dev. |
CNAME |
pkg.dev. |
pkg.dev. |
A |
Alamat IP endpoint Private Service Connect untuk jaringan VPC tersebut. |
Blueprint memiliki konfigurasi tambahan untuk memastikan bahwa endpoint Private Service Connect ini digunakan secara konsisten. Setiap jaringan VPC Bersama juga menerapkan hal berikut:
- Aturan kebijakan firewall jaringan yang mengizinkan traffic keluar dari semua sumber ke alamat IP endpoint Private Service Connect di TCP:443.
- Aturan kebijakan firewall jaringan yang menolak traffic keluar ke 0.0.0.0/0, yang mencakup domain default yang digunakan untuk mengakses layanan Google Cloud.
Konektivitas internet
Blueprint tidak mengizinkan traffic masuk atau keluar antara jaringan VPC-nya dan internet. Untuk beban kerja yang memerlukan konektivitas internet, Anda harus mengambil langkah tambahan untuk mendesain jalur akses yang diperlukan.
Untuk beban kerja yang memerlukan traffic keluar ke internet, sebaiknya kelola traffic keluar melalui Cloud NAT untuk mengizinkan traffic keluar tanpa koneksi masuk yang tidak diminta, atau melalui Secure Web Proxy untuk kontrol yang lebih terperinci guna mengizinkan traffic keluar ke layanan web tepercaya saja.
Untuk workload yang memerlukan traffic masuk dari internet, sebaiknya desain workload dengan Cloud Load Balancing dan Google Cloud Armor untuk mendapatkan manfaat dari perlindungan DDoS dan WAF.
Sebaiknya jangan mendesain beban kerja yang memungkinkan konektivitas langsung antara internet dan VM menggunakan alamat IP eksternal di VM.
Konektivitas hybrid antara lingkungan lokal dan Google Cloud
Untuk membangun konektivitas antara lingkungan lokal dan Google Cloud, sebaiknya gunakan Dedicated Interconnect untuk memaksimalkan keamanan dan keandalan. Koneksi Dedicated Interconnect adalah link langsung antara jaringan lokal Anda dan Google Cloud.
Diagram berikut memperkenalkan konektivitas hybrid antara lingkungan lokal dan jaringan Virtual Private Cloud Google.
Diagram ini menjelaskan komponen pola berikut untuk ketersediaan 99,99% untuk Dedicated Interconnect:
- Empat koneksi Dedicated Interconnect, dengan dua koneksi di satu area metropolitan (metro) dan dua koneksi di metro lainnya.
- Koneksi dibagi menjadi dua pasangan, dan setiap pasangannya terhubung ke pusat data lokal yang terpisah.
- Lampiran VLAN digunakan untuk menghubungkan setiap instance Dedicated Interconnect ke Cloud Router yang terhubung ke topologi VPC Bersama. Lampiran VLAN ini
dihosting di project
prj-c-interconnect
. - Setiap jaringan VPC Bersama memiliki empat Cloud Router, dua di setiap region, dengan mode perutean dinamis yang ditetapkan ke
global
sehingga setiap Cloud Router dapat mengumumkan semua subnet, terlepas dari regionnya.
Dengan perutean dinamis global, Cloud Router mengiklankan rute ke semua subnet di jaringan VPC. Cloud Router mengiklankan rute ke subnet jarak jauh (subnet di luar region Cloud Router) dengan prioritas yang lebih rendah dibandingkan subnet lokal (subnet yang ada di region Cloud Router). Jika ingin, Anda dapat mengubah awalan dan prioritas yang diiklankan saat mengonfigurasi sesi BGP untuk Cloud Router.
Traffic dari Google Cloud ke lingkungan lokal menggunakan Cloud Router yang terdekat dengan resource cloud. Dalam satu region, beberapa rute ke jaringan lokal memiliki nilai multi-exit discriminator (MED) yang sama, dan Google Cloud menggunakan perutean equal cost multi-path (ECMP) untuk mendistribusikan traffic keluar di antara semua kemungkinan rute.
Perubahan konfigurasi lokal
Untuk mengonfigurasi konektivitas antara lingkungan lokal dan Google Cloud, Anda harus mengonfigurasi perubahan tambahan di lingkungan lokal Anda. Kode Terraform di blueprint otomatis mengonfigurasi resource Google Cloud, tetapi tidak mengubah resource jaringan lokal Anda.
Beberapa komponen untuk konektivitas hybrid dari lingkungan lokal Anda ke Google Cloud diaktifkan secara otomatis oleh blueprint, termasuk hal berikut:
- Cloud DNS dikonfigurasi dengan penerusan DNS di antara semua jaringan VPC Bersama ke satu hub, seperti yang dijelaskan dalam penyiapan DNS. Kebijakan server Cloud DNS dikonfigurasi dengan alamat IP forwarder masuk.
- Cloud Router dikonfigurasi untuk mengekspor rute bagi semua subnet dan rute kustom untuk alamat IP yang digunakan oleh endpoint Private Service Connect.
Untuk mengaktifkan konektivitas hybrid, Anda harus melakukan langkah-langkah tambahan berikut:
- Pesan koneksi Dedicated Interconnect.
- Konfigurasikan router dan firewall lokal untuk mengizinkan traffic keluar ke ruang alamat IP internal yang ditentukan dalam alokasi ruang alamat IP.
- Konfigurasikan server DNS lokal Anda untuk meneruskan pencarian DNS yang terikat untuk Google Cloud ke alamat IP forwarder masuk yang sudah dikonfigurasi oleh blueprint.
- Konfigurasikan server DNS, firewall, dan router lokal Anda untuk menerima kueri DNS dari zona penerusan Cloud DNS (35.199.192.0/19).
- Konfigurasikan server DNS lokal untuk merespons kueri dari host lokal ke layanan Google Cloud dengan alamat IP yang ditentukan dalam akses pribadi ke Cloud API.
- Untuk enkripsi dalam pengiriman melalui koneksi Dedicated Interconnect, konfigurasikan MACsec untuk Cloud Interconnect atau konfigurasi VPN dengan ketersediaan tinggi (HA) melalui Cloud Interconnect untuk enkripsi IPsec.
Untuk mengetahui informasi selengkapnya, lihat Akses Google Pribadi untuk host lokal.
Langkah selanjutnya
- Baca kontrol detektif (dokumen berikutnya dalam rangkaian ini).
Kontrol Detektif
Kemampuan deteksi dan pemantauan ancaman disediakan menggunakan kombinasi kontrol keamanan bawaan dari Security Command Center dan solusi kustom yang memungkinkan Anda mendeteksi dan merespons peristiwa keamanan.
Pencatatan terpusat untuk keamanan dan audit
Blueprint mengonfigurasi kemampuan logging untuk melacak dan menganalisis perubahan pada resource Google Cloud Anda dengan log yang digabungkan ke satu project.
Diagram berikut menunjukkan cara blueprint menggabungkan log dari beberapa sumber dalam beberapa project ke dalam sink log terpusat.
Diagram tersebut menjelaskan hal berikut:
- Sink log dikonfigurasi pada node organisasi untuk menggabungkan log dari semua project dalam hierarki resource.
- Beberapa sink log dikonfigurasi untuk mengirim log yang cocok dengan filter ke tujuan penyimpanan dan analisis yang berbeda.
- Project
prj-c-logging
berisi semua resource untuk analisis dan penyimpanan log. - Secara opsional, Anda dapat mengonfigurasi alat tambahan untuk mengekspor log ke SIEM.
Blueprint menggunakan sumber log yang berbeda dan menyertakan log tersebut dalam filter sink log sehingga log dapat diekspor ke tujuan terpusat. Tabel berikut menjelaskan sumber log.
Sumber log |
Deskripsi |
---|---|
Anda tidak dapat mengonfigurasi, menonaktifkan, atau mengecualikan log audit Aktivitas Admin. |
|
Anda tidak dapat mengonfigurasi, menonaktifkan, atau mengecualikan log audit Peristiwa Sistem. |
|
Anda tidak dapat mengonfigurasi atau menonaktifkan log audit Kebijakan Ditolak, tetapi Anda dapat memilih untuk mengecualikannya dengan filter pengecualian. |
|
Secara default, blueprint tidak mengaktifkan log akses data karena volume dan biaya log ini bisa tinggi. Untuk menentukan apakah Anda harus mengaktifkan log akses data, evaluasi di mana beban kerja Anda menangani data sensitif dan pertimbangkan apakah Anda memiliki persyaratan untuk mengaktifkan log akses data bagi setiap layanan dan lingkungan yang bekerja dengan data sensitif. |
|
Blueprint akan mengaktifkan VPC Flow Logs untuk setiap subnet. Blueprint mengonfigurasi sampling log untuk mengambil sampel 50% log guna mengurangi biaya. Jika membuat subnet tambahan, Anda harus memastikan bahwa Log Aliran VPC diaktifkan untuk setiap subnet. |
|
Blueprint tersebut akan mengaktifkan Firewall Rules Logging untuk setiap aturan kebijakan firewall. Jika membuat aturan kebijakan firewall tambahan untuk beban kerja, Anda harus memastikan bahwa Logging Aturan Firewall diaktifkan untuk setiap aturan baru. |
|
Blueprint akan mengaktifkan log Cloud DNS untuk zona terkelola. Jika membuat zona terkelola tambahan, Anda harus mengaktifkan log DNS tersebut. |
|
Memerlukan langkah pengaktifan satu kali yang tidak diotomatiskan oleh blueprint. Untuk mengetahui informasi selengkapnya, lihat Berbagi data dengan layanan Google Cloud. |
|
Memerlukan langkah pengaktifan satu kali yang tidak diotomatiskan oleh blueprint. Untuk informasi selengkapnya, lihat Mengaktifkan Transparansi Akses. |
Tabel berikut menjelaskan sink log dan cara penggunaannya dengan tujuan yang didukung dalam blueprint.
Sink |
Tujuan |
Tujuan |
---|---|---|
|
Log yang dirutekan ke bucket Cloud Logging dengan Log Analytics dan set data BigQuery tertaut diaktifkan |
Menganalisis log secara aktif. Jalankan investigasi ad hoc menggunakan Logs Explorer di konsol, atau tulis kueri, laporan, dan tampilan SQL menggunakan set data BigQuery tertaut. |
|
Menyimpan log dalam jangka panjang untuk tujuan kepatuhan, audit, dan pelacakan insiden. Secara opsional, jika Anda memiliki persyaratan kepatuhan untuk retensi data wajib, sebaiknya Anda juga mengonfigurasi Kunci Bucket. |
|
|
Ekspor log ke platform eksternal seperti SIEM Anda yang ada. Hal ini memerlukan upaya tambahan untuk berintegrasi dengan SIEM Anda, seperti mekanisme berikut:
|
Untuk panduan dalam mengaktifkan jenis log tambahan dan menulis filter sink log, lihat alat cakupan log.
Pemantauan ancaman dengan Security Command Center
Sebaiknya aktifkan Security Command Center Premium agar organisasi Anda dapat otomatis mendeteksi ancaman, kerentanan, dan kesalahan konfigurasi di resource Google Cloud Anda. Security Command Center membuat temuan keamanan dari berbagai sumber, termasuk:
- Security Health Analytics: mendeteksi kerentanan dan kesalahan konfigurasi umum di seluruh resource Google Cloud.
- Eksposur jalur serangan: menunjukkan simulasi jalur tentang cara penyerang mengeksploitasi resource bernilai tinggi Anda, berdasarkan kerentanan dan kesalahan konfigurasi yang terdeteksi oleh sumber Security Command Center lainnya.
- Event Threat Detection: menerapkan logika deteksi dan kecerdasan ancaman eksklusif terhadap log Anda untuk mengidentifikasi ancaman hampir secara real time.
- Container Threat Detection: mendeteksi serangan runtime container yang umum.
- Virtual Machine Threat Detection: mendeteksi aplikasi berpotensi berbahaya yang berjalan di virtual machine.
- Web Security Scanner: memindai kerentanan OWASP Top Sepuluh di aplikasi yang berinteraksi dengan web di Compute Engine, App Engine, atau Google Kubernetes Engine.
Untuk mengetahui informasi selengkapnya tentang kerentanan dan ancaman yang ditangani oleh Security Command Center, lihat Sumber Security Command Center.
Anda harus mengaktifkan Security Command Center setelah men-deploy blueprint. Untuk mengetahui petunjuknya, lihat Mengaktifkan Security Command Center untuk organisasi.
Setelah mengaktifkan Security Command Center, sebaiknya ekspor temuan yang dihasilkan oleh Security Command Center ke alat atau proses yang ada untuk menanggulangi dan merespons ancaman. Cetak biru ini membuat project prj-c-scc
dengan topik Pub/Sub yang akan digunakan untuk integrasi ini. Bergantung pada alat yang ada, gunakan salah satu metode berikut untuk mengekspor temuan:
- Jika Anda menggunakan konsol untuk mengelola temuan keamanan langsung di Security Command Center, konfigurasikan peran level folder dan level project untuk Security Command Center agar tim dapat melihat dan mengelola temuan keamanan hanya untuk project yang menjadi tanggung jawab mereka.
Jika Anda menggunakan Chronicle sebagai SIEM, serap data Google Cloud ke Chronicle.
Jika Anda menggunakan alat SIEM atau SOAR dengan integrasi ke Security Command Center, bagikan data ke Cortex XSOAR, Elastic Stack, ServiceNow, Splunk, atau QRadar.
Jika Anda menggunakan alat eksternal yang dapat menyerap temuan dari Pub/Sub, konfigurasikan ekspor berkelanjutan ke Pub/Sub dan konfigurasi alat yang sudah ada untuk menyerap temuan dari topik Pub/Sub.
Pemberitahuan terkait metrik berbasis log dan metrik performa
Saat Anda mulai men-deploy workload di atas fondasi Anda, sebaiknya gunakan Cloud Monitoring untuk mengukur metrik performa.
Blueprint akan membuat project pemantauan seperti prj-p-monitoring
untuk setiap lingkungan. Project ini dikonfigurasi sebagai project pencakupan untuk mengumpulkan metrik performa gabungan di beberapa project. Blueprint men-deploy contoh dengan metrik berbasis log dan kebijakan pemberitahuan untuk menghasilkan notifikasi email jika ada perubahan pada kebijakan IAM yang diterapkan ke bucket Cloud Storage. Hal ini membantu memantau aktivitas mencurigakan pada resource sensitif, seperti bucket dalam project prj-b-seed
yang berisi status Terraform.
Secara lebih umum, Anda juga dapat menggunakan Cloud Monitoring untuk mengukur metrik performa dan kondisi aplikasi beban kerja Anda. Bergantung pada tanggung jawab operasional untuk mendukung dan memantau aplikasi di organisasi, Anda dapat membuat project pemantauan yang lebih terperinci untuk tim yang berbeda. Gunakan pemantauan project ini untuk melihat metrik performa, membuat dasbor kondisi aplikasi, dan memicu pemberitahuan saat SLO yang Anda harapkan tidak terpenuhi.
Diagram berikut menunjukkan gambaran umum tentang cara Cloud Monitoring menggabungkan metrik performa.
Untuk panduan cara memantau workload secara efektif untuk keandalan dan ketersediaan, lihat buku Site Reliability Engineering Google, khususnya bab tentang pemantauan sistem terdistribusi.
Solusi kustom untuk analisis log otomatis
Anda mungkin memiliki persyaratan untuk membuat pemberitahuan peristiwa keamanan yang didasarkan pada kueri kustom terhadap log. Kueri kustom dapat membantu melengkapi kemampuan SIEM Anda dengan menganalisis log di Google Cloud dan hanya mengekspor peristiwa yang perlu diselidiki, terutama jika Anda tidak memiliki kapasitas untuk mengekspor semua log cloud ke SIEM.
Blueprint membantu memungkinkan analisis log ini dengan menyiapkan sumber log terpusat yang dapat Anda kueri menggunakan set data BigQuery tertaut. Untuk
mengotomatiskan kemampuan ini, Anda harus menerapkan contoh kode di
bq-log-alerting
dan memperluas kemampuan dasar. Kode contoh memungkinkan Anda membuat kueri
sumber log secara rutin dan mengirim temuan kustom ke Security Command Center.
Diagram berikut memperkenalkan alur analisis log otomatis secara garis besar.
Diagram menunjukkan konsep analisis log otomatis berikut:
- Log dari berbagai sumber digabungkan menjadi bucket log terpusat dengan analisis log dan set data BigQuery yang ditautkan.
- Tampilan BigQuery dikonfigurasikan untuk membuat kueri log untuk peristiwa keamanan yang ingin Anda pantau.
- Cloud Scheduler mengirim peristiwa ke topik Pub/Sub setiap 15 menit dan memicu Cloud Functions.
- Cloud Functions melakukan kueri tampilan untuk peristiwa baru. Jika menemukan peristiwa, maka akan diteruskan ke {i>Security Command Center<i} sebagai temuan khusus.
- Security Command Center memublikasikan notifikasi tentang temuan baru ke topik Pub/Sub lain.
- Alat eksternal seperti SIEM berlangganan topik Pub/Sub untuk menyerap temuan baru.
Contoh ini memiliki beberapa kasus penggunaan untuk membuat kueri perilaku yang berpotensi mencurigakan. Contohnya mencakup login dari daftar admin super atau akun dengan hak istimewa tinggi lainnya yang Anda tentukan, perubahan pada setelan logging, atau perubahan pada rute jaringan. Anda dapat memperluas kasus penggunaan dengan menulis tampilan kueri baru untuk persyaratan Anda. Tulis kueri Anda sendiri atau referensi analisis log keamanan untuk library kueri SQL guna membantu Anda menganalisis log Google Cloud.
Solusi kustom untuk merespons perubahan aset
Untuk merespons peristiwa secara real time, sebaiknya gunakan Inventaris Aset Cloud untuk memantau perubahan aset. Dalam solusi kustom ini, feed aset dikonfigurasi untuk memicu notifikasi ke Pub/Sub tentang perubahan pada resource secara real time, lalu Cloud Functions menjalankan kode kustom untuk menerapkan logika bisnis Anda sendiri berdasarkan apakah perubahan harus diizinkan atau tidak.
Blueprint tersebut memiliki contoh solusi tata kelola kustom yang memantau perubahan IAM yang menambahkan peran yang sangat sensitif, termasuk Admin Organisasi, Pemilik, dan Editor. Diagram berikut menjelaskan solusi ini.
Diagram sebelumnya menunjukkan konsep ini:
- Perubahan dilakukan pada kebijakan izinkan.
- Feed Inventaris Aset Cloud mengirimkan notifikasi real-time tentang perubahan kebijakan izin ke Pub/Sub.
- Pub/Sub memicu fungsi.
- Cloud Functions menjalankan kode kustom untuk menerapkan kebijakan Anda. Fungsi contoh memiliki logika untuk menilai apakah perubahan tersebut telah menambahkan peran Admin, Pemilik, atau Editor Organisasi ke kebijakan izinkan. Jika demikian, fungsi tersebut membuat temuan keamanan kustom dan mengirimkannya ke Security Command Center.
- Anda juga dapat menggunakan model ini untuk mengotomatiskan upaya perbaikan. Tulis logika bisnis tambahan di Cloud Functions untuk mengambil tindakan secara otomatis atas temuan tersebut, seperti mengembalikan kebijakan izinkan ke status sebelumnya.
Selain itu, Anda dapat memperluas infrastruktur dan logika yang digunakan oleh contoh solusi ini untuk menambahkan respons kustom ke peristiwa lain yang penting bagi bisnis Anda.
Langkah selanjutnya
- Baca kontrol preventif (dokumen berikutnya dalam rangkaian ini).
Kontrol preventif untuk konfigurasi resource yang dapat diterima
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 di awal desain dan membangun beban kerja akan membantu Anda menghindari pekerjaan perbaikan nantinya.
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 dengan hak istimewa yang memadai.
Blueprint menerapkan kebijakan pada node organisasi sehingga kontrol ini diwarisi 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 terhadap kebijakan.
Tabel berikut memperkenalkan batasan kebijakan organisasi yang diterapkan dalam blueprint:
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 tidak sah jika konfigurasinya buruk. Batasan ini mencegah pembuatan subnet IPv6 eksternal. |
| Perilaku default dengan menetapkan kunci SSH dalam metadata dapat memungkinkan akses jarak jauh tanpa izin ke VM jika kunci terekspos. Batasan ini menerapkan penggunaan Login OS, bukan kunci SSH berbasis metadata. |
|
Penerusan protokol VM untuk alamat IP eksternal dapat menyebabkan traffic keluar internet tanpa izin jika penerusan tidak dikonfigurasi dengan baik. Batasan ini hanya mengizinkan penerusan protokol VM 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 project lien di project tersebut. |
|
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 akan dibuat di setiap project baru yang mengaktifkan Compute Engine API. Batasan ini melewati pembuatan 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 izin dapat diberikan ke Akun Google apa 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. Jika ingin, 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 tersebut dikonfigurasi untuk menggunakan jaringan yang diizinkan tanpa Proxy Auth Cloud SQL. Kebijakan ini mencegah konfigurasi jaringan yang diizinkan untuk akses database dan memaksa penggunaan Proxy Auth Cloud SQL sebagai gantinya. |
| Instance Cloud SQL dapat diekspos ke akses internet yang tidak diautentikasi jika instance tersebut dibuat dengan alamat IP publik. Batasan ini mencegah alamat IP publik pada instance Cloud SQL. |
| Secara default, objek di 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 adalah 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 bagi Cloud CDN untuk menghosting resource publik diblokir oleh storage.publicAccessPrevention
, atau aplikasi Cloud Run yang ditampilkan kepada publik yang 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 secara bersyarat pada kebijakan organisasi
dengan menentukan tag yang memberikan pengecualian atau penegakan untuk kebijakan, lalu
menerapkan tag tersebut 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. Artinya, 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 dikirim ke repositori GitHub Anda tidak lulus pemeriksaan kebijakan, tidak ada resource yang di-deploy.
Untuk informasi tentang penggunaan pipeline dan penerapan kontrol melalui otomatisasi CI/CD, lihat metodologi deployment.
Langkah selanjutnya
- Baca tentang metodologi deployment (dokumen berikutnya dalam seri ini)
Metodologi penerapan
Sebaiknya gunakan infrastruktur deklaratif untuk men-deploy fondasi Anda secara konsisten dan dapat dikontrol. Pendekatan ini membantu memungkinkan tata kelola yang konsisten dengan menerapkan kontrol kebijakan tentang konfigurasi resource yang dapat diterima ke dalam pipeline Anda. Blueprint di-deploy menggunakan alur GitOps, dengan Terraform yang digunakan untuk mendefinisikan infrastruktur sebagai kode (IaC), repositori Git untuk kontrol versi dan persetujuan kode, serta Cloud Build untuk otomatisasi CI/CD di pipeline deployment. Untuk pengantar konsep ini, baca mengelola infrastruktur sebagai kode dengan Terraform, Cloud Build, dan GitOps.
Bagian berikut menjelaskan cara pipeline deployment digunakan untuk mengelola resource di organisasi Anda.
Lapisan pipeline
Untuk memisahkan tim dan technology stack yang bertanggung jawab mengelola berbagai lapisan lingkungan Anda, sebaiknya gunakan model yang menggunakan pipeline berbeda dan persona berbeda yang bertanggung jawab untuk setiap lapisan stack.
Diagram berikut memperkenalkan model yang kami rekomendasikan untuk memisahkan pipeline fondasi, pipeline infrastruktur, dan pipeline aplikasi.
Diagram memperkenalkan lapisan pipeline dalam model ini:
- Pipeline fondasi men-deploy resource fondasi yang digunakan di seluruh platform. Sebaiknya satu tim pusat bertanggung jawab untuk mengelola resource dasar yang digunakan oleh beberapa unit bisnis dan workload.
- Pipeline infrastruktur men-deploy project dan infrastruktur yang digunakan oleh beban kerja, seperti database atau instance VM. Blueprint menyiapkan pipeline infrastruktur terpisah untuk setiap unit bisnis, atau Anda dapat memilih pipeline infrastruktur tunggal yang digunakan oleh beberapa tim.
- Pipeline aplikasi men-deploy artefak untuk setiap beban kerja, seperti container atau gambar. Anda mungkin memiliki banyak tim aplikasi yang berbeda dengan pipeline aplikasi individual.
Bagian berikut memperkenalkan penggunaan setiap lapisan pipeline.
Pipeline fondasi
Pipeline fondasi men-deploy resource fondasi. Solusi ini juga menyiapkan pipeline infrastruktur yang digunakan untuk men-deploy infrastruktur yang digunakan oleh workload.
Untuk membuat pipeline fondasi, pertama-tama Anda harus meng-clone atau melakukan fork
terraform-example-foundation ke repositori Git Anda sendiri. Ikuti langkah-langkah dalam
file README 0-bootstrap
untuk mengonfigurasi resource dan folder bootstrap.
Tahap | Deskripsi |
---|---|
Melakukan bootstrap pada organisasi Google Cloud. Langkah ini juga mengonfigurasi pipeline CI/CD untuk kode blueprint pada tahap berikutnya.
|
Setelah Anda membuat pipeline fondasi pada tahap 0-bootstrap
, tahap
berikut akan men-deploy resource pada pipeline fondasi. Tinjau petunjuk README untuk
setiap tahap dan terapkan setiap tahap secara berurutan.
Tahap | Deskripsi |
---|---|
Menyiapkan folder bersama tingkat teratas, project untuk layanan bersama, logging tingkat organisasi, dan setelan keamanan dasar pengukuran melalui kebijakan organisasi. |
|
Menyiapkan lingkungan pengembangan, non-produksi, dan produksi dalam organisasi Google Cloud yang telah Anda buat. |
|
atau |
Siapkan VPC bersama dalam topologi pilihan Anda dan resource jaringan terkait. |
Pipeline infrastruktur
Pipeline infrastruktur men-deploy project dan infrastruktur (misalnya, instance VM dan database) yang digunakan oleh beban kerja. Pipeline yayasan men-deploy beberapa pipeline infrastruktur. Pemisahan antara pipeline fondasi dan pipeline infrastruktur ini memungkinkan pemisahan antara resource tingkat platform dan resource khusus workload.
Diagram berikut menjelaskan cara cetak biru mengonfigurasi beberapa pipeline infrastruktur yang dimaksudkan untuk digunakan oleh tim terpisah.
Diagram menjelaskan konsep utama berikut:
- Setiap pipeline infrastruktur digunakan untuk mengelola resource infrastruktur, terlepas dari resource fondasi.
- Setiap unit bisnis memiliki pipeline infrastruktur sendiri, yang dikelola di project khusus di folder
common
. - Setiap pipeline infrastruktur memiliki akun layanan dengan izin untuk men-deploy resource hanya ke project yang terkait dengan unit bisnis tersebut. Strategi ini membuat pemisahan tugas antara akun layanan dengan hak istimewa yang digunakan untuk pipeline fondasi dan akun layanan yang digunakan oleh setiap pipeline infrastruktur
Pendekatan dengan beberapa pipeline infrastruktur ini direkomendasikan jika Anda memiliki beberapa entity di dalam organisasi yang memiliki keterampilan dan minat untuk mengelola infrastruktur secara terpisah, terutama jika memiliki persyaratan yang berbeda seperti jenis kebijakan validasi pipeline yang ingin diterapkan. Atau, Anda mungkin lebih suka memiliki satu pipeline infrastruktur yang dikelola oleh satu tim dengan kebijakan validasi yang konsisten.
Dalam terraform-example-foundation, tahap 4 mengonfigurasi pipeline infrastruktur, dan tahap 5 menunjukkan contoh penggunaan pipeline tersebut untuk men-deploy resource infrastruktur.
Tahap | Deskripsi |
---|---|
Siapkan struktur folder, project, dan pipeline infrastruktur. |
|
|
Men-deploy project workload dengan instance Compute Engine menggunakan pipeline infrastruktur sebagai contoh. |
Pipeline aplikasi
Pipeline aplikasi bertanggung jawab untuk men-deploy artefak aplikasi bagi setiap workload individual, seperti image atau container Kubernetes yang menjalankan logika bisnis aplikasi Anda. Artefak ini di-deploy ke resource infrastruktur yang di-deploy oleh pipeline infrastruktur Anda.
Blueprint fondasi perusahaan menyiapkan pipeline fondasi dan pipeline infrastruktur, tetapi tidak men-deploy pipeline aplikasi. Untuk contoh pipeline aplikasi, lihat blueprint aplikasi perusahaan.
Mengotomatiskan pipeline dengan Cloud Build
Blueprint tersebut menggunakan Cloud Build untuk mengotomatiskan proses CI/CD. Tabel berikut menjelaskan kontrol yang disertakan dalam pipeline fondasi dan pipeline infrastruktur yang di-deploy oleh repositori terraform-example-foundation. Jika Anda mengembangkan pipeline sendiri menggunakan alat otomatisasi CI/CD lainnya, sebaiknya terapkan kontrol serupa.
Kontrol | Deskripsi |
---|---|
Pisahkan konfigurasi build untuk memvalidasi kode sebelum men-deploy |
Blueprint menggunakan dua file konfigurasi build Cloud Build untuk seluruh pipeline, dan setiap repositori yang terkait dengan satu tahap memiliki dua pemicu Cloud Build yang terkait dengan file konfigurasi build tersebut. Saat kode dikirim ke cabang repositori, file konfigurasi build akan dipicu untuk menjalankan |
Pemeriksaan kebijakan Terraform | Blueprint mencakup serangkaian batasan Open Policy Agent yang diterapkan oleh validasi kebijakan di Google Cloud CLI. Batasan ini menentukan konfigurasi resource yang dapat diterima yang dapat di-deploy oleh pipeline Anda. Jika build tidak memenuhi kebijakan dalam konfigurasi build pertama, konfigurasi build kedua tidak akan men-deploy resource apa pun. Kebijakan
yang diterapkan dalam blueprint diambil dari |
Prinsip hak istimewa terendah | Pipeline fondasi memiliki akun layanan yang berbeda untuk setiap tahap dengan kebijakan izin yang hanya memberikan peran IAM minimum untuk tahap tersebut. Setiap pemicu Cloud Build berjalan sebagai akun layanan khusus untuk tahap tersebut. Menggunakan akun yang berbeda membantu mengurangi risiko
bahwa mengubah satu repositori dapat memengaruhi resource yang dikelola oleh
repositori lain. Untuk memahami peran IAM tertentu yang diterapkan pada setiap akun layanan, lihat kode Terraform |
Kumpulan pribadi Cloud Build | Blueprint menggunakan kumpulan pribadi Cloud Build. Kumpulan pribadi memungkinkan Anda menerapkan kontrol tambahan secara opsional seperti membatasi akses ke repositori publik atau menjalankan Cloud Build di dalam perimeter Kontrol Layanan VPC. |
Builder kustom Cloud Build | Blueprint membuat builder kustom-nya sendiri untuk menjalankan Terraform. Untuk informasi selengkapnya, lihat |
Persetujuan deployment | Secara opsional, Anda dapat menambahkan tahap persetujuan manual ke Cloud Build. Persetujuan ini menambahkan checkpoint tambahan setelah build dipicu, tetapi sebelum build dijalankan sehingga pengguna dengan hak istimewa dapat menyetujui build secara manual. |
Strategi percabangan
Kami merekomendasikan strategi cabang persisten untuk mengirimkan kode ke sistem Git Anda dan men-deploy resource melalui pipeline dasar. Diagram berikut menjelaskan strategi cabang persisten.
Diagram ini menjelaskan tiga cabang persisten dalam Git (pengembangan, non-produksi, dan produksi) yang mencerminkan lingkungan Google Cloud yang sesuai. Ada juga beberapa cabang fitur sementara yang tidak sesuai dengan resource yang di-deploy di lingkungan Google Cloud Anda.
Sebaiknya terapkan proses permintaan pull (PR) ke dalam sistem Git Anda sehingga kode apa pun yang digabungkan ke cabang persisten memiliki PR yang disetujui.
Untuk mengembangkan kode dengan strategi cabang persisten ini, ikuti langkah-langkah tingkat tinggi berikut:
- Saat Anda mengembangkan kemampuan baru atau menangani perbaikan bug, buat cabang
baru berdasarkan cabang pengembangan. Gunakan konvensi penamaan untuk cabang Anda yang menyertakan jenis perubahan, nomor tiket atau ID lainnya, dan deskripsi yang dapat dibaca manusia, seperti
feature/123456-org-policies
. - Setelah Anda menyelesaikan pekerjaan di cabang fitur, buka PR yang menargetkan cabang pengembangan.
- Saat Anda mengirimkan PR, PR memicu pipeline fondasi untuk melakukan
terraform plan
danterraform validate
untuk melakukan staging dan memverifikasi perubahan. - Setelah memvalidasi perubahan pada kode, gabungkan fitur atau perbaikan bug ke cabang pengembangan.
- Proses penggabungan akan memicu pipeline fondasi untuk menjalankan
terraform apply
guna men-deploy perubahan terbaru di cabang pengembangan ke lingkungan pengembangan. - Tinjau perubahan di lingkungan pengembangan menggunakan peninjauan manual, pengujian fungsi, atau pengujian menyeluruh yang relevan dengan kasus penggunaan Anda. Kemudian, promosikan perubahan pada lingkungan non-produksi dengan membuka PR yang menargetkan cabang non-produksi dan menggabungkan perubahan Anda.
- Untuk men-deploy resource ke lingkungan produksi, ulangi proses yang sama seperti langkah 6: meninjau dan memvalidasi resource yang di-deploy, membuka PR ke cabang produksi, lalu menggabungkannya.
Langkah selanjutnya
- Baca praktik terbaik operasi (dokumen berikutnya dalam rangkaian ini).
Praktik terbaik operasi
Bagian ini memperkenalkan operasi yang harus dipertimbangkan saat men-deploy dan mengoperasikan workload tambahan ke dalam lingkungan Google Cloud Anda. Bagian ini tidak dimaksudkan untuk mencakup semua operasi di lingkungan cloud Anda, tetapi memperkenalkan keputusan terkait dengan rekomendasi arsitektur dan resource yang di-deploy oleh cetak biru tersebut.
Memperbarui resource dasar
Meskipun blueprint memberikan titik awal yang tidak berubah untuk lingkungan dasar Anda, persyaratan dasar Anda mungkin berkembang seiring waktu. Setelah deployment awal, Anda dapat menyesuaikan setelan konfigurasi atau mem-build layanan bersama baru untuk digunakan oleh semua workload.
Untuk mengubah resource dasar, sebaiknya lakukan semua perubahan melalui pipeline fondasi. Tinjau strategi cabang untuk pengenalan alur penulisan kode, penggabungan, dan pemicu pipeline deployment.
Menentukan atribut untuk project beban kerja baru
Saat membuat project baru melalui modul factory project dari pipeline otomatisasi, Anda harus mengonfigurasi berbagai atribut. Proses Anda dalam mendesain dan membuat project untuk workload baru harus mencakup keputusan berikut:
- Google Cloud API yang akan diaktifkan
- VPC Bersama mana yang akan digunakan, atau apakah akan membuat jaringan VPC baru
- Peran IAM yang akan dibuat untuk
project-service-account
awal yang dibuat oleh pipeline - Label project mana yang akan diterapkan
- Folder tempat project di-deploy
- Akun penagihan yang akan digunakan
- Apakah akan menambahkan project ke perimeter Kontrol Layanan VPC
- Apakah akan mengonfigurasi batas pemberitahuan anggaran dan penagihan untuk project
Untuk referensi lengkap tentang atribut yang dapat dikonfigurasi untuk setiap project, lihat variabel input untuk factory project di pipeline otomatisasi.
Mengelola izin dalam skala besar
Saat men-deploy project beban kerja di atas fondasi, Anda harus mempertimbangkan cara memberikan akses kepada developer dan konsumen project yang dituju. Sebaiknya tambahkan pengguna ke grup yang dikelola oleh penyedia identitas Anda yang sudah ada, sinkronkan grup dengan Cloud Identity, lalu terapkan peran IAM ke grup. Selalu perhatikan prinsip hak istimewa terendah.
Sebaiknya gunakan juga pemberi rekomendasi IAM untuk mengidentifikasi kebijakan izinkan yang memberikan peran dengan hak istimewa berlebih. Rancang sebuah proses untuk meninjau rekomendasi secara berkala atau menerapkan rekomendasi secara otomatis ke dalam pipeline deployment Anda.
Mengoordinasikan perubahan antara tim jaringan dan tim aplikasi
Topologi jaringan yang di-deploy oleh blueprint mengasumsikan bahwa Anda memiliki tim yang bertanggung jawab untuk mengelola resource jaringan, dan tim terpisah yang bertanggung jawab untuk men-deploy resource infrastruktur workload. Saat tim workload men-deploy infrastruktur, mereka harus membuat aturan firewall untuk mengizinkan jalur akses yang diinginkan antar-komponen workload, tetapi mereka tidak memiliki izin untuk mengubah kebijakan firewall jaringan itu sendiri.
Rencanakan bagaimana tim akan bekerja sama untuk mengoordinasikan perubahan pada resource jaringan terpusat yang diperlukan untuk men-deploy aplikasi. Misalnya, Anda dapat mendesain proses saat tim beban kerja meminta tag untuk aplikasi mereka. Tim jaringan kemudian membuat tag dan menambahkan aturan ke kebijakan firewall jaringan yang memungkinkan traffic mengalir di antara resource dengan tag, dan mendelegasikan peran IAM untuk menggunakan tag kepada tim beban kerja.
Mengoptimalkan lingkungan Anda dengan portofolio Active Assist
Selain pemberi rekomendasi IAM, Google Cloud menyediakan portofolio layanan Active Assist untuk membuat rekomendasi terkait cara mengoptimalkan lingkungan Anda. Misalnya, analisis firewall atau pemberi rekomendasi project tanpa pengawasan memberikan rekomendasi yang dapat ditindaklanjuti yang dapat membantu memperketat postur keamanan Anda.
Desain proses untuk meninjau rekomendasi secara berkala atau menerapkan rekomendasi secara otomatis ke dalam pipeline deployment Anda. Tentukan rekomendasi mana yang harus dikelola oleh tim pusat dan mana yang menjadi tanggung jawab pemilik beban kerja, serta menerapkan peran IAM untuk mengakses rekomendasi yang sesuai.
Memberikan pengecualian untuk kebijakan organisasi
Blueprint menerapkan serangkaian batasan kebijakan organisasi yang direkomendasikan kepada sebagian besar pelanggan dalam sebagian besar skenario, tetapi Anda mungkin memiliki kasus penggunaan sah yang memerlukan pengecualian terbatas untuk kebijakan organisasi yang Anda terapkan secara luas.
Misalnya, blueprint menerapkan batasan iam.disableServiceAccountKeyCreation. Batasan ini adalah kontrol keamanan yang penting karena kunci akun layanan yang bocor dapat memiliki dampak negatif yang signifikan, dan sebagian besar skenario harus menggunakan alternatif yang lebih aman untuk kunci akun layanan untuk melakukan autentikasi. Namun, mungkin ada kasus penggunaan yang hanya dapat mengautentikasi dengan kunci akun layanan, seperti server lokal yang memerlukan akses ke layanan Google Cloud dan tidak dapat menggunakan penggabungan workload identity. Dalam skenario ini, Anda mungkin memutuskan untuk mengizinkan pengecualian kebijakan, selama kontrol kompensasi tambahan seperti praktik terbaik untuk mengelola kunci akun layanan diterapkan.
Oleh karena itu, Anda harus mendesain proses untuk workload guna meminta pengecualian terhadap kebijakan, dan memastikan bahwa pengambil keputusan yang bertanggung jawab untuk memberikan pengecualian memiliki pengetahuan teknis untuk memvalidasi kasus penggunaan dan berkonsultasi tentang apakah kontrol tambahan harus diterapkan untuk memberikan kompensasi. Saat Anda memberikan pengecualian pada beban kerja, ubah batasan kebijakan organisasi sesingkat mungkin. Anda juga dapat menambahkan batasan secara bersyarat pada kebijakan organisasi dengan menentukan tag yang memberikan pengecualian atau penegakan untuk kebijakan, lalu menerapkan tag tersebut ke project dan folder.
Melindungi resource Anda dengan Kontrol Layanan VPC
Blueprint membantu menyiapkan lingkungan Anda untuk Kontrol Layanan VPC dengan memisahkan jaringan dasar dan jaringan terbatas. Namun, secara default, kode Terraform tidak mengaktifkan Kontrol Layanan VPC karena pengaktifan ini dapat menjadi proses yang mengganggu.
Perimeter menolak akses ke layanan Google Cloud yang dibatasi dari traffic yang berasal dari luar perimeter, yang mencakup konsol, workstation developer, dan pipeline fondasi yang digunakan untuk men-deploy resource. Jika menggunakan Kontrol Layanan VPC, Anda harus mendesain pengecualian untuk perimeter yang mengizinkan jalur akses yang Anda inginkan.
Perimeter Kontrol Layanan VPC ditujukan untuk kontrol pemindahan yang tidak sah antara organisasi Google Cloud Anda dan sumber eksternal. Perimeter ini tidak dimaksudkan untuk mengganti atau menduplikasi kebijakan izin untuk kontrol akses terperinci ke masing-masing project atau resource. Saat Anda mendesain dan merancang perimeter, sebaiknya gunakan perimeter terpadu umum untuk overhead pengelolaan yang lebih rendah.
Jika Anda harus mendesain beberapa perimeter untuk mengontrol traffic layanan secara terperinci dalam organisasi Google Cloud Anda, sebaiknya tentukan dengan jelas ancaman yang ditangani oleh struktur perimeter yang lebih kompleks dan jalur akses di antara perimeter yang diperlukan untuk operasi yang dimaksudkan.
Untuk mengadopsi Kontrol Layanan VPC, lakukan evaluasi hal berikut:
- Manakah kasus penggunaan Anda yang memerlukan Kontrol Layanan VPC.
Apakah layanan Google Cloud yang diperlukan mendukung Kontrol Layanan VPC.
Cara mengonfigurasi akses akses darurat untuk mengubah perimeter jika akses tersebut mengganggu pipeline otomatisasi Anda.
Cara menggunakan praktik terbaik untuk mengaktifkan Kontrol Layanan VPC guna mendesain dan mengimplementasikan perimeter Anda.
Setelah perimeter diaktifkan, sebaiknya desain sebuah proses untuk secara konsisten menambahkan project baru ke perimeter yang benar, dan proses untuk mendesain pengecualian saat developer memiliki kasus penggunaan baru yang ditolak oleh konfigurasi perimeter Anda saat ini.
Menguji perubahan di seluruh organisasi dalam organisasi terpisah
Sebaiknya jangan pernah men-deploy perubahan ke produksi tanpa pengujian. Untuk resource workload, pendekatan ini difasilitasi oleh lingkungan terpisah untuk pengembangan, non-produksi, dan produksi. Namun, beberapa resource di organisasi tidak memiliki lingkungan terpisah untuk memfasilitasi pengujian.
Untuk perubahan di tingkat organisasi, atau perubahan lain yang dapat memengaruhi lingkungan produksi, seperti konfigurasi antara penyedia identitas dan Cloud Identity Anda, pertimbangkan untuk membuat organisasi terpisah untuk tujuan pengujian.
Mengontrol akses jarak jauh ke virtual machine
Karena Anda sebaiknya men-deploy infrastruktur yang tidak dapat diubah melalui pipeline fondasi, pipeline infrastruktur, dan pipeline aplikasi, sebaiknya Anda hanya memberi developer akses langsung ke virtual machine melalui SSH atau RDP untuk kasus penggunaan terbatas atau pengecualian.
Untuk skenario yang memerlukan akses jarak jauh, sebaiknya kelola akses pengguna menggunakan Login OS jika memungkinkan. Pendekatan ini menggunakan layanan Google Cloud terkelola untuk menerapkan kontrol akses, pengelolaan siklus proses akun, verifikasi dua langkah, dan logging audit. Atau, jika Anda harus mengizinkan akses melalui kunci SSH dalam metadata atau kredensial RDP, Anda bertanggung jawab untuk mengelola siklus proses kredensial dan menyimpan kredensial dengan aman di luar Google Cloud.
Dalam skenario apa pun, pengguna yang memiliki akses SSH atau RDP ke VM dapat menjadi risiko eskalasi hak istimewa. Oleh karena itu, sebaiknya desain model akses Anda dengan mempertimbangkan hal ini. Pengguna dapat menjalankan kode pada VM tersebut dengan hak istimewa dari akun layanan terkait atau membuat kueri server metadata untuk melihat token akses yang digunakan untuk mengautentikasi permintaan API. Akses ini kemudian dapat menjadi eskalasi akses jika Anda tidak sengaja meminta pengguna untuk beroperasi dengan hak istimewa akun layanan.
Mengurangi pengeluaran berlebihan dengan merencanakan pemberitahuan anggaran
Blueprint menerapkan praktik terbaik yang diperkenalkan dalam Framework Arsitektur Google Cloud: Pengoptimalan Biaya untuk mengelola biaya, termasuk yang berikut:
Menggunakan satu akun penagihan untuk semua project di dasar perusahaan.
Tetapkan label metadata
billingcode
ke setiap project yang digunakan untuk mengalokasikan biaya di antara pusat biaya.Tetapkan anggaran dan nilai minimum pemberitahuan.
Anda bertanggung jawab untuk merencanakan anggaran dan mengonfigurasi pemberitahuan penagihan. Cetak biru membuat pemberitahuan anggaran untuk project beban kerja saat perkiraan pengeluaran sesuai rencana untuk mencapai 120% anggaran. Pendekatan ini memungkinkan tim pusat mengidentifikasi dan memitigasi insiden pengeluaran berlebihan yang signifikan. Peningkatan tak terduga yang signifikan pada pengeluaran tanpa penyebab yang jelas dapat menjadi indikator insiden keamanan dan harus diselidiki dari sudut pandang kontrol biaya dan keamanan.
Bergantung pada kasus penggunaan, Anda dapat menetapkan anggaran yang didasarkan pada biaya seluruh folder lingkungan, atau semua project yang terkait dengan pusat biaya tertentu, bukan menetapkan anggaran terperinci untuk setiap project. Sebaiknya Anda juga mendelegasikan setelan anggaran dan pemberitahuan kepada pemilik workload yang mungkin menetapkan nilai minimum pemberitahuan yang lebih terperinci untuk pemantauan harian.
Untuk mendapatkan panduan tentang cara membangun kemampuan FinOps, termasuk memperkirakan anggaran untuk beban kerja, lihat Mulai menggunakan FinOps di Google Cloud.
Mengalokasikan biaya di antara pusat biaya internal
Konsol ini memungkinkan Anda melihat laporan penagihan untuk melihat dan
memperkirakan biaya dalam berbagai dimensi. Selain laporan bawaan, sebaiknya Anda mengekspor data penagihan ke set data BigQuery di project prj-c-billing-logs
. Data penagihan yang diekspor memungkinkan Anda mengalokasikan biaya pada dimensi kustom, seperti pusat biaya internal, berdasarkan metadata label project seperti billingcode
.
Kueri SQL berikut adalah contoh kueri untuk memahami biaya semua project yang dikelompokkan menurut label project billingcode
.
#standardSQL
SELECT
(SELECT value from UNNEST(labels) where key = 'billingcode') AS costcenter,
service.description AS description,
SUM(cost) AS charges,
SUM((SELECT SUM(amount) FROM UNNEST(credits))) AS credits
FROM PROJECT_ID.DATASET_ID.TABLE_NAME
GROUP BY costcenter, description
ORDER BY costcenter ASC, description ASC
Untuk menyiapkan ekspor ini, lihat mengekspor data Penagihan Cloud ke BigQuery.
Jika memerlukan akuntansi internal atau penagihan balik antara pusat biaya, Anda bertanggung jawab untuk memasukkan data yang diperoleh dari kueri ini ke dalam proses internal Anda.
Menyerap temuan dari kontrol detektif ke dalam SIEM yang ada
Meskipun resource dasar membantu Anda mengonfigurasi tujuan gabungan untuk log audit dan temuan keamanan, Anda bertanggung jawab untuk memutuskan cara menggunakan dan menggunakan sinyal ini.
Jika Anda memiliki persyaratan untuk menggabungkan log di seluruh lingkungan cloud dan lokal ke dalam SIEM yang ada, tentukan cara menyerap log dari project prj-c-logging
dan temuan dari Security Command Center ke dalam alat dan proses yang sudah ada. Anda dapat membuat satu ekspor untuk semua log dan temuan jika satu tim bertanggung jawab untuk memantau keamanan di seluruh lingkungan, atau Anda dapat membuat beberapa ekspor yang difilter ke kumpulan log dan temuan yang diperlukan untuk beberapa tim dengan tanggung jawab yang berbeda.
Atau, jika volume dan biaya log sulit, Anda dapat menghindari duplikasi dengan menyimpan log dan temuan Google Cloud hanya di Google Cloud. Dalam skenario ini, pastikan tim Anda yang ada memiliki akses dan pelatihan yang tepat untuk menangani log dan temuan langsung di Google Cloud.
- Untuk log audit, desain tampilan log untuk memberikan akses ke subset log di bucket log terpusat kepada tim individual, bukan menduplikasi log ke beberapa bucket yang meningkatkan biaya penyimpanan log.
- Untuk temuan keamanan, berikan peran level folder dan level project untuk Security Command Center agar tim dapat melihat dan mengelola temuan keamanan hanya untuk project yang menjadi tanggung jawab mereka, langsung di konsol.
Mengembangkan library kontrol secara berkelanjutan
Blueprint dimulai dengan dasar kontrol untuk mendeteksi dan mencegah ancaman. Sebaiknya tinjau kontrol ini dan tambahkan kontrol lain berdasarkan persyaratan Anda. Tabel berikut merangkum mekanisme untuk menerapkan kebijakan tata kelola dan cara memperluasnya untuk persyaratan tambahan:
Kontrol kebijakan yang diterapkan oleh blueprint | Panduan untuk memperluas kontrol ini |
---|---|
Security Command Center mendeteksi kerentanan dan ancaman dari berbagai sumber keamanan. |
Tentukan modul kustom untuk Security Health Analytics dan modul kustom untuk Event Threat Detection. |
Layanan Kebijakan Organisasi menerapkan serangkaian batasan kebijakan organisasi yang direkomendasikan di layanan Google Cloud. |
Terapkan batasan tambahan dari daftar siap pakai batasan yang tersedia atau buat batasan khusus. |
Kebijakan Agen Kebijakan Terbuka (OPA) memvalidasi kode dalam pipeline dasar untuk konfigurasi yang dapat diterima sebelum deployment. |
Buat batasan tambahan berdasarkan panduan di GoogleCloudPlatform/policy-library. |
Pemberitahuan tentang metrik berbasis log dan metrik performa mengonfigurasi metrik berbasis log untuk memberi tahu tentang perubahan pada kebijakan IAM dan konfigurasi beberapa resource sensitif. |
Desain metrik berbasis log tambahan dan kebijakan pemberitahuan untuk peristiwa log yang Anda harapkan tidak akan terjadi di lingkungan Anda. |
Solusi kustom untuk analisis log otomatis secara rutin mengkueri log untuk menemukan aktivitas yang mencurigakan dan membuat temuan Security Command Center. |
Tulis kueri tambahan untuk membuat temuan bagi peristiwa keamanan yang ingin Anda pantau, menggunakan analisis log keamanan sebagai referensi. |
Solusi kustom untuk merespons perubahan aset akan membuat temuan Security Command Center dan dapat mengotomatiskan tindakan perbaikan. |
Buat feed Inventaris Aset Cloud tambahan untuk memantau perubahan pada jenis aset tertentu dan menulis Cloud Functions tambahan dengan logika kustom untuk merespons pelanggaran kebijakan. |
Kontrol ini dapat berkembang seiring dengan perubahan persyaratan dan kematangan Anda di Google Cloud.
Mengelola kunci enkripsi dengan Cloud Key Management Service
Google Cloud memberikan enkripsi default dalam penyimpanan untuk semua konten pelanggan, tetapi juga menyediakan Cloud Key Management Service (Cloud KMS) untuk memberi Anda kontrol tambahan atas kunci enkripsi untuk data dalam penyimpanan. Sebaiknya Anda mengevaluasi apakah enkripsi default sudah memadai, atau apakah Anda memiliki persyaratan kepatuhan sehingga Anda harus menggunakan Cloud KMS untuk mengelola kunci sendiri. Untuk informasi selengkapnya, lihat memutuskan cara memenuhi persyaratan kepatuhan untuk enkripsi dalam penyimpanan.
Blueprint menyediakan project prj-c-kms
di folder umum dan project prj-{env}-kms
di setiap folder lingkungan untuk mengelola kunci enkripsi secara terpusat. Dengan pendekatan ini, tim pusat dapat mengaudit dan mengelola kunci enkripsi
yang digunakan oleh resource dalam project workload, untuk memenuhi persyaratan peraturan
dan kepatuhan.
Bergantung pada model operasional Anda, Anda dapat memilih satu instance project Cloud KMS yang terpusat di bawah kendali satu tim. Anda juga dapat mengelola kunci enkripsi secara terpisah di setiap lingkungan, atau memilih beberapa instance terdistribusi sehingga akuntabilitas untuk kunci enkripsi dapat didelegasikan kepada tim yang sesuai. Ubah contoh kode Terraform sesuai kebutuhan agar sesuai dengan model operasional Anda.
Secara opsional, Anda dapat menerapkan kebijakan organisasi kunci enkripsi yang dikelola pelanggan (CMEK) untuk menerapkan bahwa jenis resource tertentu selalu memerlukan kunci CMEK dan hanya kunci CMEK dari daftar project tepercaya yang diizinkan yang dapat digunakan.
Menyimpan dan mengaudit kredensial aplikasi dengan Secret Manager
Sebaiknya Anda tidak pernah menyimpan secret sensitif (seperti kunci API, sandi, dan sertifikat pribadi) ke repositori kode sumber. Sebagai gantinya, lakukan commit secret ke Secret Manager dan berikan peran IAM Secret Manager Secret Accessor kepada pengguna atau akun layanan yang perlu mengakses secret tersebut. Sebaiknya Anda memberikan peran IAM ke secret individual, bukan semua secret dalam project.
Jika memungkinkan, Anda harus membuat secret production secara otomatis dalam pipeline CI/CD dan menjaganya agar tidak dapat diakses oleh pengguna manusia, kecuali dalam situasi darurat. Dalam skenario ini, pastikan Anda tidak memberikan peran IAM untuk melihat rahasia ini kepada pengguna atau grup apa pun.
Blueprint menyediakan satu project prj-c-secrets
di folder umum dan satu project prj-{env}-secrets
di setiap folder lingkungan untuk mengelola secret secara terpusat. Pendekatan ini memungkinkan tim pusat mengaudit dan mengelola secret yang digunakan oleh aplikasi untuk memenuhi persyaratan peraturan dan kepatuhan.
Bergantung pada model operasional Anda, Anda dapat memilih satu instance Secret Manager terpusat di bawah kendali satu tim, atau Anda mungkin lebih suka mengelola secret secara terpisah di setiap lingkungan, atau Anda mungkin lebih menyukai beberapa instance Secret Manager terdistribusi sehingga setiap tim workload dapat mengelola secret mereka sendiri. Ubah contoh kode Terraform sesuai kebutuhan agar sesuai dengan model operasional Anda.
Merencanakan akses akses darurat ke akun dengan hak istimewa tinggi
Meskipun kami merekomendasikan agar perubahan pada resource fondasi dikelola melalui IaC yang dikontrol versi dan di-deploy oleh pipeline fondasi, Anda mungkin memiliki skenario luar biasa atau darurat yang memerlukan akses istimewa untuk memodifikasi lingkungan Anda secara langsung. Sebaiknya rencanakan akun akses darurat (terkadang disebut akun layanan darurat atau akun darurat) yang memiliki akses istimewa ke lingkungan Anda jika terjadi keadaan darurat atau saat proses otomatisasi bermasalah.
Tabel berikut menjelaskan beberapa contoh tujuan akun akses darurat.
Tujuan akses darurat | Deskripsi |
---|---|
Admin super | Akses darurat ke peran Admin super yang digunakan dengan Cloud Identity, misalnya untuk memperbaiki masalah terkait penggabungan identitas atau autentikasi multi-faktor (MFA). |
Administrator organisasi |
Akses darurat ke peran Organization Administrator, yang kemudian dapat memberikan akses ke peran IAM lainnya dalam organisasi. |
Administrator pipeline fondasi | Akses darurat untuk mengubah resource dalam project CICD Anda di Google Cloud dan repositori Git eksternal jika otomatisasi pipeline fondasi tidak berfungsi. |
Operasi atau SRE |
Tim operasi atau SRE memerlukan akses istimewa untuk merespons pemadaman layanan atau insiden. Hal ini dapat mencakup tugas-tugas seperti memulai ulang VM atau memulihkan data. |
Mekanisme Anda untuk mengizinkan akses akses darurat bergantung pada alat dan prosedur yang Anda miliki, tetapi beberapa contoh mekanismenya meliputi:
- Gunakan alat yang sudah ada untuk pengelolaan akses hak istimewa guna menambahkan pengguna ke grup yang telah ditentukan sebelumnya dengan peran IAM dengan hak istimewa tinggi atau menggunakan kredensial akun dengan hak istimewa tinggi.
- Pra-penyediaan akun yang dimaksudkan hanya untuk penggunaan administrator. Misalnya, developer Dana mungkin memiliki identitas dana@example.com untuk penggunaan sehari-hari dan admin-dana@example.com untuk akses akses darurat.
- Gunakan aplikasi seperti akses hak istimewa tepat waktu yang memungkinkan developer melakukan eskalasi mandiri ke peran yang lebih istimewa.
Terlepas dari mekanisme yang Anda gunakan, pertimbangkan cara operasional Anda menjawab pertanyaan-pertanyaan berikut:
- Bagaimana Anda merancang cakupan dan perincian akses akses darurat? Misalnya, Anda dapat mendesain mekanisme akses darurat yang berbeda untuk unit bisnis yang berbeda guna memastikan agar tidak saling mengganggu.
- Bagaimana mekanisme Anda dalam mencegah penyalahgunaan? Apakah Anda memerlukan persetujuan? Misalnya, Anda mungkin memiliki operasi terpisah dengan satu orang memegang kredensial dan satu orang memegang token MFA.
- Bagaimana cara Anda mengaudit dan memberi tahu tentang akses akses darurat? Misalnya, Anda dapat mengonfigurasi modul Event Threat Detection kustom untuk membuat temuan keamanan saat akun akses darurat yang telah ditentukan digunakan.
- Bagaimana cara menghapus akses akses darurat dan melanjutkan operasi normal setelah insiden berakhir?
Untuk tugas eskalasi akses umum dan roll back perubahan, sebaiknya desain alur kerja otomatis yang memungkinkan pengguna melakukan operasi tanpa memerlukan eskalasi hak istimewa untuk identitas mereka. Pendekatan ini dapat membantu mengurangi kesalahan manusia dan meningkatkan keamanan.
Untuk sistem yang memerlukan intervensi rutin, mengotomatiskan perbaikan mungkin merupakan solusi terbaik. Google mendorong pelanggan untuk menerapkan pendekatan produksi zero-touch untuk membuat semua perubahan produksi menggunakan otomatisasi, proxy yang aman, atau akses darurat yang telah diaudit. Google menyediakan buku SRE bagi pelanggan yang ingin menggunakan pendekatan SRE Google.
Langkah selanjutnya
- Baca Men-deploy blueprint (dokumen berikutnya dalam seri ini).
Men-deploy blueprint
Bagian ini menjelaskan proses yang dapat Anda gunakan untuk men-deploy blueprint, konvensi penamaannya, dan alternatif untuk rekomendasi blueprint.
Menyatukan semuanya!
Untuk men-deploy fondasi perusahaan Anda sendiri sesuai dengan praktik terbaik dan rekomendasi dari blueprint ini, ikuti tugas tingkat tinggi yang diringkas di bagian ini. Deployment memerlukan kombinasi langkah-langkah penyiapan prasyarat, deployment otomatis melalui terraform-example-foundation di GitHub, dan langkah tambahan yang harus dikonfigurasi secara manual setelah deployment fondasi awal selesai.
Proses | Langkah |
---|---|
Prasyarat sebelum men-deploy resource pipeline dasar |
Selesaikan langkah-langkah berikut sebelum Anda men-deploy pipeline fondasi:
Untuk terhubung ke lingkungan lokal yang ada, siapkan hal berikut:
|
Langkah-langkah untuk men-deploy terraform-example-foundation dari GitHub |
Ikuti petunjuk README untuk setiap tahap guna men-deploy terraform-example-foundation dari GitHub:
|
Langkah tambahan setelah deployment IaC |
Setelah Anda men-deploy kode Terraform, selesaikan langkah-langkah berikut:
|
Kontrol administratif tambahan untuk pelanggan dengan workload yang sensitif
Google Cloud memberikan kontrol administratif tambahan yang dapat membantu persyaratan keamanan dan kepatuhan Anda. Namun, beberapa kontrol memerlukan kompromi biaya atau operasional tambahan yang mungkin tidak sesuai untuk setiap pelanggan. Kontrol ini juga memerlukan input yang disesuaikan untuk persyaratan spesifik Anda yang tidak dapat sepenuhnya diotomatiskan dalam blueprint dengan nilai default untuk semua pelanggan.
Bagian ini memperkenalkan kontrol keamanan yang diterapkan secara terpusat pada fondasi Anda. Bagian ini tidak dimaksudkan untuk mencakup semua kontrol keamanan yang dapat Anda terapkan pada workload tertentu. Untuk mengetahui informasi selengkapnya tentang produk dan solusi keamanan Google, lihat Pusat praktik terbaik keamanan Google Cloud.
Evaluasi apakah kontrol berikut sesuai untuk dasar Anda berdasarkan persyaratan kepatuhan, tingkat risiko, dan sensitivitas data Anda.
Kontrol | Deskripsi |
---|---|
Kontrol Layanan VPC memungkinkan Anda menentukan kebijakan keamanan yang mencegah akses ke layanan yang dikelola Google di luar perimeter tepercaya, memblokir akses ke data dari lokasi yang tidak tepercaya, dan memitigasi risiko pemindahan data yang tidak sah. Namun, Kontrol Layanan VPC dapat menyebabkan gangguan pada layanan yang ada hingga Anda menentukan pengecualian untuk mengizinkan pola akses yang diinginkan. Lakukan evaluasi apakah nilai memitigasi risiko pemindahan yang tidak sah sesuai dengan peningkatan kompleksitas dan overhead operasional dari pengadopsian Kontrol Layanan VPC. Blueprint menyiapkan jaringan terbatas dan variabel opsional untuk mengonfigurasi Kontrol Layanan VPC, tetapi perimeter tidak akan diaktifkan hingga Anda mengambil langkah tambahan untuk mendesain dan mengaktifkannya. |
|
Anda mungkin memiliki persyaratan peraturan bahwa resource cloud hanya boleh di-deploy di lokasi geografis yang disetujui. Batasan kebijakan organisasi ini memberlakukan bahwa resource hanya dapat di-deploy dalam daftar lokasi yang Anda tentukan. |
|
Assured Workloads menyediakan kontrol kepatuhan tambahan yang membantu Anda memenuhi peraturan peraturan tertentu. Blueprint menyediakan variabel opsional dalam pipeline deployment untuk pengaktifan. |
|
Anda mungkin memiliki persyaratan untuk mencatat semua akses ke data atau resource sensitif tertentu. Lakukan evaluasi di mana beban kerja Anda menangani data sensitif yang memerlukan log akses data, serta aktifkan log untuk setiap layanan dan lingkungan yang bekerja dengan data sensitif. |
|
Persetujuan Akses memastikan bahwa Layanan Pelanggan dan engineer Cloud memerlukan persetujuan eksplisit Anda setiap kali mereka perlu mengakses konten pelanggan Anda. Evaluasi proses operasional yang diperlukan untuk meninjau permintaan Persetujuan Akses guna mengurangi kemungkinan keterlambatan dalam menyelesaikan insiden dukungan. |
|
Key Access Justifications memungkinkan Anda mengontrol secara terprogram apakah Google dapat mengakses kunci enkripsi Anda, termasuk untuk operasi otomatis dan agar Layanan Pelanggan dapat mengakses konten pelanggan Anda. Evaluasi biaya dan overhead operasional yang terkait dengan Key Access Justifications serta dependensinya terhadap Cloud External Key Manager (Cloud EKM). |
|
Cloud Shell adalah lingkungan pengembangan online. Shell ini dihosting di server yang dikelola Google di luar lingkungan Anda, sehingga tidak tunduk pada kontrol yang mungkin telah Anda terapkan pada workstation developer Anda sendiri. Jika Anda ingin mengontrol secara ketat workstation mana yang dapat digunakan developer untuk mengakses resource cloud, nonaktifkan Cloud Shell. Anda juga dapat mengevaluasi Cloud Workstations untuk mengetahui opsi workstation yang dapat dikonfigurasi di lingkungan Anda sendiri. |
|
Google Cloud memungkinkan Anda membatasi akses ke Konsol Google Cloud berdasarkan atribut tingkat akses seperti keanggotaan grup, rentang alamat IP tepercaya, dan verifikasi perangkat. Beberapa atribut memerlukan langganan tambahan ke BeyondCorp Enterprise. Evaluasi pola akses yang Anda percayai untuk akses pengguna ke aplikasi berbasis web seperti konsol sebagai bagian dari deployment zero trust yang lebih besar. |
Konvensi penamaan
Sebaiknya Anda memiliki konvensi penamaan standar untuk resource Google Cloud. Tabel berikut menjelaskan konvensi yang direkomendasikan untuk nama resource dalam blueprint.
Resource | Konvensi penamaan |
---|---|
Folder |
Contoh:
|
Project ID |
Contoh: |
Jaringan VPC |
Contoh: |
Subnet |
Contoh: |
Kebijakan firewall |
Misalnya:
|
Cloud Router |
Contoh: |
Koneksi Cloud Interconnect |
Contoh: |
Lampiran VLAN Cloud Interconnect |
Contoh:
|
Grup |
Dengan
Contoh:
|
Peran khusus |
Jika Contoh: |
Akun layanan |
Dengan keterangan:
Contoh:
|
Bucket penyimpanan |
Dengan keterangan:
Contoh:
|
Alternatif untuk rekomendasi default
Praktik terbaik yang direkomendasikan dalam cetak biru mungkin tidak sesuai untuk setiap pelanggan. Anda dapat menyesuaikan rekomendasi apa pun untuk memenuhi kebutuhan spesifik Anda. Tabel berikut memperkenalkan beberapa variasi umum yang mungkin diperlukan berdasarkan technology stack dan cara kerja yang ada.
Area keputusan | Alternatif yang memungkinkan |
---|---|
Organisasi: Blueprint menggunakan satu organisasi sebagai node root untuk semua resource. |
Menentukan hierarki resource untuk zona landing Google Cloud Anda akan memperkenalkan skenario di mana Anda mungkin memilih beberapa organisasi, seperti berikut:
|
Struktur folder: Blueprint memiliki struktur folder
sederhana, dengan workload yang dibagi menjadi folder |
Menentukan hierarki resource untuk zona landing Google Cloud Anda memperkenalkan pendekatan lain untuk menyusun struktur folder berdasarkan cara Anda ingin mengelola resource dan mewarisi kebijakan, seperti:
|
Kebijakan organisasi: Blueprint menerapkan semua batasan kebijakan organisasi pada node organisasi. |
Anda mungkin memiliki kebijakan keamanan atau cara kerja yang berbeda untuk berbagai bagian bisnis. Dalam skenario ini, terapkan batasan kebijakan organisasi pada node yang lebih rendah dalam hierarki resource. Tinjau daftar lengkap batasan kebijakan organisasi yang membantu memenuhi persyaratan Anda. |
Alat pipeline deployment: Blueprint menggunakan Cloud Build untuk menjalankan pipeline otomatisasi. |
Anda mungkin lebih memilih produk lain untuk pipeline deployment Anda, seperti Terraform Enterprise, GitLab Runners, GitHub Actions, atau Jenkins. Cetak biru tersebut berisi arah alternatif untuk setiap produk. |
Repositori kode untuk deployment: Blueprint menggunakan Cloud Source Repositories sebagai repositori Git pribadi yang terkelola. |
Gunakan sistem kontrol versi pilihan Anda untuk mengelola repositori kode, seperti GitLab, GitHub, atau Bitbucket. Jika Anda menggunakan repositori pribadi yang dihosting di lingkungan lokal Anda, konfigurasikan jalur jaringan pribadi dari repositori Anda ke lingkungan Google Cloud Anda. |
Penyedia identitas: Blueprint mengasumsikan Active Directory lokal dan menggabungkan identitas ke Cloud Identity menggunakan Google Cloud Directory Sync. |
Jika sudah menggunakan Google Workspace, Anda dapat menggunakan identitas Google yang sudah dikelola di Google Workspace. Jika tidak memiliki penyedia identitas, Anda dapat membuat dan mengelola identitas pengguna secara langsung di Cloud Identity. Jika sudah memiliki penyedia identitas, seperti Okta, Ping, atau ID Azure Entra, Anda dapat mengelola akun pengguna di penyedia identitas yang sudah ada dan menyinkronkannya ke Cloud Identity. Jika Anda memiliki persyaratan kedaulatan data atau kepatuhan yang mencegah Anda menggunakan Cloud Identity, dan jika Anda tidak mewajibkan identitas pengguna Google terkelola untuk layanan Google lainnya seperti Google Ads atau Google Marketing Platform, maka Anda dapat lebih memilih federasi identitas tenaga kerja. Dalam skenario ini, perhatikan batasan terkait layanan yang didukung. |
Beberapa region: Blueprint men-deploy resource regional ke dua region Google Cloud yang berbeda untuk membantu mengaktifkan desain workload dengan mempertimbangkan persyaratan ketersediaan tinggi dan pemulihan dari bencana (disaster recovery). |
Jika memiliki pengguna akhir di lokasi yang lebih banyak secara geografis, Anda dapat mengonfigurasi lebih banyak region Google Cloud untuk membuat resource yang lebih dekat dengan pengguna akhir dengan latensi yang lebih rendah. Jika memiliki batasan kedaulatan data atau kebutuhan ketersediaan Anda dapat terpenuhi di satu region, Anda mungkin hanya mengonfigurasi satu region Google Cloud. |
Alokasi alamat IP: Blueprint menyediakan serangkaian rentang alamat IP. |
Anda mungkin perlu mengubah rentang alamat IP spesifik yang digunakan berdasarkan ketersediaan alamat IP di lingkungan hybrid yang ada. Jika Anda mengubah rentang alamat IP, gunakan cetak biru sebagai panduan untuk jumlah dan ukuran rentang yang diperlukan, dan tinjau rentang alamat IP yang valid untuk Google Cloud. |
Hybrid networking: Blueprint menggunakan Dedicatated Interconnect di beberapa situs fisik dan region Google Cloud untuk mendapatkan bandwidth dan ketersediaan maksimum. |
Bergantung pada persyaratan biaya, bandwidth, dan keandalan Anda, Anda dapat mengonfigurasi Partner Interconnect atau Cloud VPN. Jika Anda perlu mulai men-deploy resource dengan konektivitas pribadi sebelum Dedicated Interconnect dapat diselesaikan, Anda dapat memulai dengan Cloud VPN dan kemudian beralih menggunakan Dedicated Interconnect. Jika Anda belum memiliki lingkungan lokal, Anda mungkin tidak memerlukan jaringan hybrid. |
Perimeter Kontrol Layanan VPC: Cetak biru merekomendasikan satu perimeter yang mencakup semua project layanan yang terkait dengan jaringan VPC terbatas. Project yang terkait dengan jaringan VPC dasar tidak disertakan di dalam perimeter. |
Anda mungkin memiliki kasus penggunaan yang memerlukan beberapa perimeter untuk organisasi atau Anda mungkin memutuskan untuk tidak menggunakan Kontrol Layanan VPC sama sekali. Untuk mendapatkan informasi, lihat memutuskan cara mengurangi pemindahan data yang tidak sah melalui Google API. |
Secret Manager: Blueprint men-deploy project untuk menggunakan Secret Manager di folder |
Jika memiliki satu tim yang bertanggung jawab mengelola dan mengaudit secret sensitif di seluruh organisasi, sebaiknya Anda hanya menggunakan satu project untuk mengelola akses ke secret. Jika mengizinkan tim beban kerja mengelola secret mereka sendiri, Anda mungkin tidak akan menggunakan project terpusat untuk mengelola akses ke secret, dan mengizinkan tim menggunakan instance Secret Manager mereka sendiri dalam project beban kerja. |
Cloud KMS: Blueprint men-deploy project untuk menggunakan Cloud KMS di folder |
Jika memiliki satu tim yang bertanggung jawab mengelola dan mengaudit kunci enkripsi di seluruh organisasi, Anda dapat memilih untuk menggunakan satu project saja untuk mengelola akses ke kunci. Pendekatan terpusat dapat membantu memenuhi persyaratan kepatuhan seperti penanggung jawab utama PCI. Jika mengizinkan tim workload mengelola kuncinya sendiri, Anda mungkin tidak menggunakan project terpusat untuk mengelola akses ke kunci, dan mengizinkan tim menggunakan instance Cloud KMS mereka sendiri dalam project workload. |
Sink log gabungan: Cetak biru mengonfigurasi sekumpulan sink log di node organisasi sehingga tim keamanan pusat dapat meninjau log audit dari seluruh organisasi. |
Anda mungkin memiliki tim berbeda yang bertanggung jawab untuk mengaudit berbagai bagian bisnis, dan tim ini mungkin memerlukan log yang berbeda untuk melakukan tugas mereka. Dalam skenario ini, desain beberapa sink gabungan di folder dan project yang sesuai, serta buat filter sehingga setiap tim hanya menerima log yang diperlukan, atau desain tampilan log untuk kontrol akses terperinci ke bucket log umum. |
Project cakupan pemantauan: Blueprint mengonfigurasi satu project cakupan pemantauan untuk setiap lingkungan. |
Anda dapat mengonfigurasi cakupan project yang lebih terperinci yang dikelola oleh tim yang berbeda, dengan cakupan kumpulan project yang berisi aplikasi yang dikelola oleh setiap tim. |
Perincian pipeline infrastruktur: Blueprint menggunakan model di mana setiap unit bisnis memiliki pipeline infrastruktur terpisah untuk mengelola project workload mereka. |
Anda mungkin lebih memilih pipeline infrastruktur tunggal yang dikelola oleh tim pusat jika Anda memiliki tim pusat yang bertanggung jawab untuk men-deploy semua project dan infrastruktur. Tim pusat ini dapat menerima permintaan pull dari tim workload untuk ditinjau dan disetujui sebelum pembuatan project, atau tim dapat membuat permintaan pull itu sendiri sebagai respons terhadap sistem bertiket. Anda mungkin lebih menyukai pipeline yang lebih terperinci jika tim beban kerja individual memiliki kemampuan untuk menyesuaikan pipeline mereka sendiri dan Anda ingin mendesain akun layanan dengan hak istimewa yang lebih terperinci untuk pipeline. |
Ekspor SIEM:Blueprint mengelola semua temuan keamanan di Security Command Center. |
Tentukan apakah Anda akan mengekspor temuan keamanan dari Security Command Center ke alat seperti Chronicle atau SIEM yang sudah ada, atau apakah tim akan menggunakan konsol untuk melihat dan mengelola temuan keamanan. Anda dapat mengonfigurasi beberapa ekspor dengan filter unik untuk tim yang berbeda dengan cakupan dan tanggung jawab yang berbeda. |
Pencarian DNS untuk layanan Google Cloud dari infrastruktur lokal: Blueprint mengonfigurasi endpoint Private Service Connect yang unik untuk setiap VPC Bersama, yang dapat membantu mengaktifkan desain dengan beberapa perimeter Kontrol Layanan VPC. |
Anda mungkin tidak memerlukan pemilihan rute dari lingkungan lokal ke endpoint Private Service Connect pada tingkat perincian ini jika tidak memerlukan beberapa perimeter Kontrol Layanan VPC. Daripada
memetakan host lokal ke endpoint Private Service Connect berdasarkan
lingkungan, Anda dapat menyederhanakan desain ini untuk menggunakan satu
endpoint Private Service Connect dengan paket API yang sesuai,
atau menggunakan endpoint generik untuk |
Langkah selanjutnya
- Implementasikan blueprint menggunakan fondasi contoh Terraform di GitHub.
- Pelajari lebih lanjut prinsip-prinsip desain praktik terbaik dengan Framework Arsitektur Google Cloud.
Tinjau library blueprint untuk membantu Anda mempercepat desain dan pembuatan workload perusahaan umum, termasuk hal berikut:
Lihat solusi terkait untuk melakukan deployment di lingkungan dasar Anda.
Untuk akses ke lingkungan demonstrasi, hubungi kami di security-foundations-blueprint-support@google.com.