Proses deployment landing zone terdiri dari
tahapan. Selama setiap tahap, Anda
harus menambahkan variabel tertentu ke file terraform.tfvars. Setelah Anda menyelesaikan
tahap, Terraform akan menulis file STAGE_NAME-tfvar.auto.tfvars.json ke bucket Cloud Storage
yang dibuat pada tahap awal. Tahap berikutnya menggunakan Google Cloud CLI untuk menyalin file dan file penyedia yang meniru akun layanan khusus tahap ke folder tahap baru.
Bergantung pada jumlah tenant, deployment lingkungan baru memerlukan waktu sekitar satu jam.
Prasyarat
Selesaikan tugas berikut sebelum men-deploy Stellar Engine.
Menyiapkan Google Cloud
Selesaikan langkah-langkah berikut untuk menyiapkan Google Cloud:
Pilih Google Cloud organisasi. Jika Anda membuat organisasi baru, login ke konsol Google Admin setidaknya sekali.
Konfigurasi beberapa administrator untuk menerapkan pemisahan tugas. Di lingkungan pengujian, satu pengguna mungkin memiliki peran administrator untuk semua resource. Namun, di lingkungan produksi, Anda memerlukan beberapa administrator. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan resource organisasi.
Aktifkan verifikasi 2 langkah untuk semua akun istimewa.
Nonaktifkan Cloud Shell. Cloud Shell tidak didukung untuk lingkungan IL4 atau IL5 dan harus dinonaktifkan oleh administrator Google Workspace.
Jika Anda tidak memiliki project, buat project bootstrap.
Selesaikan tugas berikut di project bootstrap:
Aktifkan penagihan. Untuk mengetahui petunjuknya, lihat Memverifikasi status penagihan project Anda.
Aktifkan Cloud Monitoring API.
Peran yang diperlukan untuk mengaktifkan API
Untuk mengaktifkan API, Anda memerlukan izin
serviceusage.services.enable. Jika Anda membuat project, kemungkinan Anda sudah memiliki izin ini melalui peran Pemilik (roles/owner). Jika tidak, Anda bisa mendapatkan izin ini melalui peran Admin Penggunaan Layanan (roles/serviceusage.serviceUsageAdmin). Pelajari cara memberikan peran.
Verifikasi bahwa akun pengguna Anda adalah Admin Super.
Jika organisasi Anda tidak memiliki skema klasifikasi data, buatlah skema tersebut.
Tetapkan peran
Tetapkan peran Identity and Access Management berikut ke akun pengguna yang men-deploy Stellar Engine.
-
Pastikan Anda memiliki peran berikut di organisasi: Admin Transparansi Akses, Administrator Assured Workloads, Administrator Akun Penagihan, Admin Logging, Administrator Organisasi, Admin Kebijakan Organisasi, Administrator Peran Organisasi, Pemilik, Pembuat Project, Admin Akun Layanan, Pembuat Token Akun Layanan, Admin Tag
Memeriksa peran
-
Di konsol Google Cloud , buka halaman IAM.
Buka IAM - Pilih organisasi.
-
Di kolom Principal, temukan semua baris yang mengidentifikasi Anda atau grup yang mencakup Anda. Untuk mengetahui grup mana saja yang Anda ikuti, hubungi administrator Anda.
- Untuk semua baris yang menentukan atau menyertakan Anda, periksa kolom Peran untuk melihat apakah daftar peran menyertakan peran yang diperlukan.
Memberikan peran
-
Di konsol Google Cloud , buka halaman IAM.
Buka IAM - Pilih organisasi.
- Klik Grant access.
-
Di kolom New principals, masukkan ID pengguna Anda. Biasanya, ini adalah alamat email untuk Akun Google.
- Klik Pilih peran, lalu telusuri peran.
- Untuk memberikan peran tambahan, klik Add another role, lalu tambahkan tiap peran tambahan.
- Klik Simpan.
-
Jika memulai dengan organisasi baru, Anda dapat menjalankan skrip berikut yang ada di folder fast/stages-aw/0-bootstrap untuk menerapkan peran:
./setIAM.sh EMAIL_ADDRESS ORGANIZATION_ID
Ganti kode berikut:
EMAIL_ADDRESS: Alamat email akun pengguna Anda.ORGANIZATION_ID: ID organisasi Anda.
Skrip ini menambahkan semua peran kecuali Billing Account Administrator dan Admin Super.
Menambahkan grup dan mengonfigurasi layanan
Tambahkan grup berikut, seperti yang dijelaskan di 2. Pengguna dan grup:
gcp-billing-admins@DOMAINgcp-developers@DOMAINgcp-devops@DOMAINgcp-hybrid-connectivity-admins@DOMAINgcp-logging-monitoring-admins@DOMAINgcp-logging-monitoring-viewers@DOMAINgcp-organization-admins@DOMAINgcp-vpc-network-admins@DOMAINgcp-security-admins@DOMAIN
Ganti
DOMAINdengan FQDN Anda.Jika diminta, lewati langkah penyedia identitas.
Google dapat mengubah nama grup default. Anda dapat membuat grup secara manual jika tidak ada dalam panduan penyiapan.
Aktifkan Assured Workloads, BigQuery, Penagihan Cloud, Cloud Logging, Cloud KMS, IAM, Pub/Sub, Resource Manager, Kredensial Akun Layanan, Penggunaan Layanan, Organization Policy Service API.
Peran yang diperlukan untuk mengaktifkan API
Untuk mengaktifkan API, Anda memerlukan izin
serviceusage.services.enable. Jika Anda membuat project, kemungkinan Anda sudah memiliki izin ini melalui peran Pemilik (roles/owner). Jika tidak, Anda bisa mendapatkan izin ini melalui peran Admin Penggunaan Layanan (roles/serviceusage.serviceUsageAdmin). Pelajari cara memberikan peran.Jika kuota Anda kurang dari 13 project, buka Project Google Cloud Platform/API: Minta Penambahan Kuota Penagihan untuk meminta 13 project. Untuk mengetahui informasi selengkapnya, lihat Melihat dan mengelola kuota.
Anda juga dapat menggunakan
skrip fast/stages-aw/0-bootstrap/enableServices.sh
untuk mengaktifkan layanan.
Mengonfigurasi lingkungan lokal Anda
Selesaikan langkah-langkah berikut untuk mengonfigurasi lingkungan lokal Anda:
- Clone repositori GitHub Stellar Engine.
- Instal Google Cloud SDK.
- Perbarui Terraform lokal Anda ke versi 1.8.1 atau yang lebih baru.
- Instal biner jq.
Lakukan autentikasi dan tetapkan project bootstrap sebagai project aktif:
gcloud auth login gcloud config set project BOOTSTRAP_PROJECT_ID gcloud auth application-default login
Mengubah modul
Dalam sebagian besar situasi, Anda dapat menggunakan repositori tanpa perubahan. Jika Anda perlu mengubah modul, salin seluruh modul dan gunakan konvensi penamaan <module-se> untuk menghindari konflik penggabungan saat update berkala ditarik dari repositori fabric fondasi Cloud.
Jalankan Tahap 0: Bootstrap
Tahap 0 menyelaraskan bagian jaringan yang ada dengan status Terraform. Stage 0 membuat akun layanan dan project bootstrap IaC awal. Tahap 0 dirancang untuk melakukan transisi dari project apa pun yang dimiliki pengguna pada awalnya ke project inti baru dan memigrasikan status Terraform.
Ubah direktori menjadi
fast/stages-aw/0-bootstrap.Salin file
terraform.tfvars.sample:cp terraform.tfvars.sample terraform.tfvarsSalin file
providers.tf.tmpke file0-bootstrap-providers.tf:cp providers.tf.tmp 0-bootstrap-providers.tfPerbarui informasi di
fast/stages-aw/0-bootstrap/terraform.tfvars:billing_account = { id = "BILLING_ACCOUNT_ID" } regions = { primary = "REGION" } organization = { domain = "DOMAIN" id = "ORGANIZATION_ID" customer_id = "CUSTOMER_ID" } outputs_location = "~/fast-config" prefix = "PREFIX" log_sinks = { audit-logs = { filter = "logName:\"/logs/cloudaudit.googleapis.com%2Factivity\" OR logName:\"/logs/cloudaudit.googleapis.com%2Fsystem_event\" OR protoPayload.metadata.@type=\"type.googleapis.com/google.cloud.audit.TransparencyLog\"" type = "logging" } vpc-sc = { filter = "protoPayload.metadata.@type=\"type.googleapis.com/google.cloud.audit.VpcServiceControlAuditMetadata\"" type = "logging" } workspace-audit-logs = { filter = "logName:\"/logs/cloudaudit.googleapis.com%2Fdata_access\" and protoPayload.serviceName:\"login.googleapis.com\"" type = "logging" } empty-audit-logs = { filter = "" type = "logging" } } org_policies_config = { constraints = { "ALLOWED_POLICY_MEMBER_DOMAINS" = [] } } fast_features = { envs = true } assured_workloads = { regime = "COMPLIANCE_REGIME" location = "LOCATION" } bootstrap_project = "BOOTSTRAP_PROJECT_ID" alert_email = "ALERT_EMAIL"Ganti kode berikut:
BILLING_ACCOUNT_ID: Akun penagihan yang akan digunakan untuk deployment lingkungan. Untuk menemukan informasi akun penagihan, lihat konsol Google Cloud .REGION: Region utama untuk men-deploy resource. Defaultnya adalahus-east4untuk IL5 dan FedRAMP.Untuk menambahkan wilayah sekunder tempat men-deploy resource, tambahkan
secondary=secondary.DOMAIN: Nama domain yang sepenuhnya memenuhi syarat (FQDN). Untuk melihat FQDN, jalankangcloud organizations list.ORGANIZATION: ID organisasi untuk Google Cloud organisasi. Untuk melihat ID organisasi, jalankangcloud organizations list.CUSTOMER_ID: ID pelanggan Direktori Google Workspace. Untuk melihat ID, jalankangcloud organizations list.PREFIX: Awalan yang akan ditambahkan ke nama untuk project dan resource yang di-deploy. Nama project harus unik secara global dan awalan harus berisi maksimal enam karakter. Error 409 terjadi jika nama project tidak unik.ALLOWED_POLICY_MEMBER_DOMAINS: Jika diperlukan, perbarui dengan ID pelanggan tambahan. Untuk mengetahui informasi selengkapnya, lihat Membatasi identitas dengan berbagi yang dibatasi domain.COMPLIANCE_REGIME: Rezim kepatuhan untuk lingkungan ini, salah satu dariIL4,IL5,FEDRAMP_HIGH, danCOMPLIANCE_REGIME_UNSPECIFIED. Jika Anda tidak ingin menggunakan Assured Workloads, tetapkan nilai ini keCOMPLIANCE_REGIME_UNSPECIFIED.LOCATION: Region AS untuk men-deploy resource. Region ganda sepertiNAM9atau benua tidak didukung.BOOTSTRAP_PROJECT_ID: ID project bootstrap yang Anda buat di Siapkan Google Cloud.ALERT_EMAIL: Alamat email yang akan dikirimi notifikasi pemberitahuan pencatatan aktivitas.
Jalankan
terraform init.Jalankan
terraform apply:terraform apply -var bootstrap_user=$(gcloud config list --format 'value(core.account)')Ketikkan
yessaat diminta.Beralih ke project baru Anda:
gcloud config set project PREFIX-prod-iac-core-0Salin file penyedia Terraform lokal baru:
gcloud storage cp gs://PREFIX-prod-iac-core-outputs-0/providers/0-bootstrap-providers.tf ./Memigrasikan status dari lokal ke jarak jauh:
terraform init --migrate-stateKetikkan
yessaat diminta.Jalankan
./import.sh.Jalankan
terraform applysekali lagi. Ketikyessaat diminta.
Jalankan Tahap 1: Pengelolaan resource
Tahap 1 membuat berbagai folder, project, dan akun layanan di tingkat organisasi yang digunakan untuk tahap berikutnya. Untuk membuat lingkungan, Anda harus memperbarui file terraform.tfvars di fast/stages-aw/1-resman untuk menyertakan variabel tenants. Setiap tenant (misalnya, grup pengembangan internal atau lembaga federal tertentu) mendapatkan batas khusus dan terisolasi sendiri untuk menjalankan beban kerjanya. Setiap tenant mewarisi
kontrol keamanan terpusat, perimeter jaringan, pembatasan kebijakan, dan
sink log audit yang dibuat di Tahap 0 dan Tahap 2.
Jika Anda menggunakan akun penagihan eksternal, lihat Mengonfigurasi penagihan saat menggunakan akun penagihan eksternal.
Ubah direktori menjadi
fast/stages-aw/1-resman.Salin file
terraform.tfvars.sample:cp terraform.tfvars.sample terraform.tfvarsUpdate
terraform.tfvarssebagai berikut:tenants = { ten-1 = { admin_principal = "group:gcp-devops@DOMAIN" descriptive_name = "TENANT_ONE_NAME" locations = { gcs = "REGION" kms = "REGION" } }, ten-2 = { admin_principal = "group:gcp-devops@DOMAIN" descriptive_name = "TENANT_TWO_NAME" locations = { gcs = "REGION" kms = "REGION" } } } fast_features = { envs = true } envs_folders = { Prod = { admin = "gcp-organization-admins@DOMAIN" }, Int = { admin = "gcp-organization-admins@DOMAIN" }, Test = { admin = "gcp-organization-admins@DOMAIN" } }Ganti kode berikut:
DOMAIN: Nama domain yang sepenuhnya memenuhi syarat (FQDN) utama. Untuk melihat FQDN, jalankangcloud organizations list.TENANT_ONE_NAME: nama untuk project tenant pertama yang di-deploy. Gunakan maksimal enam karakter.REGION: Region utama untuk men-deploy resource. Defaultnya adalahus-east4untuk IL5 dan FedRAMP.TENANT_TWO_NAME: nama untuk project tenant kedua yang di-deploy. Gunakan maksimal enam karakter.
Tambahkan definisi tenant sebanyak yang Anda perlukan.
Salin file
tfvarsdari Cloud Storage:gcloud storage cp gs://PREFIX-prod-iac-core-outputs-0/providers/1-resman-providers.tf ./ && gcloud storage cp gs://PREFIX-prod-iac-core-outputs-0/tfvars/0-globals.auto.tfvars.json ./ && gcloud storage cp gs://PREFIX-prod-iac-core-outputs-0/tfvars/0-bootstrap.auto.tfvars.json ./Jalankan
terraform init.Jalankan
terraform apply. Ketikyessaat diminta.
Jalankan Tahap 2: Pembuatan jaringan
Tahap 2 mencakup dua opsi jaringan: satu untuk FedRAMP High dan satu untuk IL4 atau IL5.
Mengonfigurasi jaringan untuk FedRAMP High
Jika Anda menggunakan akun penagihan eksternal, lihat Mengonfigurasi penagihan saat menggunakan akun penagihan eksternal.
Ubah direktori menjadi
fast/stages-aw/2-networking-a-fedramp-high.Salin file tfvars global dan penyedia dari bucket Cloud Storage:
gcloud storage cp gs://PREFIX-prod-iac-core-outputs-0/providers/2-networking-providers.tf ./ && \ gcloud storage cp gs://PREFIX-prod-iac-core-outputs-0/tfvars/0-globals.auto.tfvars.json ./ && \ gcloud storage cp gs://PREFIX-prod-iac-core-outputs-0/tfvars/0-bootstrap.auto.tfvars.json ./ && \ gcloud storage cp gs://PREFIX-prod-iac-core-outputs-0/tfvars/1-resman.auto.tfvars.json ./Salin file
terraform.tfvars.sample:cp terraform.tfvars.sample terraform.tfvarsDalam file
terraform.tfvars, perbarui subnet kustom, subnet proxy, aturan firewall, CIDR bernama, dan aturan kebijakan respons DNS.Jalankan
terraform init.Jalankan
terraform apply. Ketikyessaat diminta.
Mengonfigurasi jaringan untuk IL4 atau IL5
Langkah ini men-deploy sepasang Firewall Generasi Berikutnya (NGFW) Palo Alto VM-Series ke dalam akun jaringan. NGFW menggunakan image deployment Bring Your Own License (BYOL) dan mengharuskan Anda menggunakan konsol Palo Alto untuk mengupload kode VM dan mendaftarkannya. Untuk mengetahui petunjuk selengkapnya, lihat README di folder
2-networking-b-il5-ngfw
tahap.
Jika Anda menggunakan akun penagihan eksternal, lihat Mengonfigurasi penagihan saat menggunakan akun penagihan eksternal.
Ubah direktori menjadi
fast/stages-aw/2-networking-b-il5-ngfw.Salin file tfvars global dan penyedia dari bucket Cloud Storage:
gcloud storage cp gs://PREFIX-prod-iac-core-outputs-0/providers/2-networking-providers.tf ./ && \ gcloud storage cp gs://PREFIX-prod-iac-core-outputs-0/tfvars/0-globals.auto.tfvars.json ./ && \ gcloud storage cp gs://PREFIX-prod-iac-core-outputs-0/tfvars/0-bootstrap.auto.tfvars.json ./ && \ gcloud storage cp gs://PREFIX-prod-iac-core-outputs-0/tfvars/1-resman.auto.tfvars.json ./Salin file
terraform.tfvars.sample:cp terraform.tfvars.sample terraform.tfvarsDi file
terraform.tfvars, perbarui subnet kustom (termasuk mgmt), subnet proxy, aturan firewall, CIDR bernama, dan aturan kebijakan respons DNS.Jalankan
terraform init.Jalankan
terraform apply. Ketikyessaat diminta.Jika Anda menerima error tentang akun layanan atau Cloud Key Management Service yang tidak ada, di konsol, klik Settings di akun penyimpanan
PREFIX-net-vdss-host. Akun layanan dibuat.
Jalankan Tahap 3: Konfigurasi akun audit dan keamanan
Tahap 3 mengonfigurasi project keamanan dan audit. Project keamanan
(prod-sec-core-0) berisi Cloud KMS dan dapat berisi
Secret Manager. Di IL5, CMEK diaktifkan secara default untuk Compute Engine, Google Kubernetes Engine (GKE), Cloud Storage, dan Cloud SQL. Batasan kebijakan organisasi berikut diterapkan:
gcp.restrictNonCmekServices:denied_values: "compute.googleapis.com"denied_values: "container.googleapis.com"denied_values: "storage.googleapis.com"denied_values: "sqladmin.googleapis.com"
gcp.restrictCmekCryptoKeyProjects:gcp.restrictCmekCryptoKeyProjectsmencakup daftar project yang dapat menggunakan CMEK.
Di project prod-sec-core-0, item berikut dikonfigurasi:
- Admin terbatas Cloud KMS diberi peran Admin terbatas sehingga mereka dapat memberikan izin dekripsi ke layanan lain.
- Key ring Cloud KMS di lokasi yang berbeda disediakan. Lokasi ring kunci harus cocok dengan lokasi layanan. Misalnya, key ring multi-regional tidak dapat digunakan di bucket penyimpanan satu region.
Project audit berisi bucket logging untuk log audit.
Administrator keamanan bertanggung jawab atas project keamanan dan auditor bertanggung jawab atas project audit.
Jika Anda menggunakan akun penagihan eksternal, lihat Mengonfigurasi penagihan saat menggunakan akun penagihan eksternal.
Ubah direktori menjadi
fast/stages-aw/3-security.Salin file konfigurasi dari bucket Cloud Storage:
gcloud storage cp gs://PREFIX-prod-iac-core-outputs-0/providers/3-security-providers.tf ./ && gcloud storage cp gs://PREFIX-prod-iac-core-outputs-0/tfvars/0-globals.auto.tfvars.json ./ && gcloud storage cp gs://PREFIX-prod-iac-core-outputs-0/tfvars/0-bootstrap.auto.tfvars.json ./ && gcloud storage cp gs://PREFIX-prod-iac-core-outputs-0/tfvars/1-resman.auto.tfvars.json ./Jalankan
terraform init.Jalankan
terraform apply. Ketikyessaat diminta.Jika Anda mengalami masalah dengan akun layanan, jalankan kembali
terraform apply.Jalankan
./sa_lockdown.shuntuk menonaktifkan akun layanan yang Anda gunakan selama deployment.
Mengonfigurasi penagihan saat menggunakan akun penagihan eksternal
Jika menggunakan akun penagihan eksternal, Anda harus menambahkan peran Billing Account Administrator ke akun layanan berikut:
PREFIX-prod-resman-0@PREFIX-prod-iac-core-0.iam.gserviceaccount.com: Akun ini dibuat di tahap 0.PREFIX-prod-resman-net-0@PREFIX-prod-iac-core-0.iam.gserviceaccount.com: Akun layanan ini dibuat di tahap 1.PREFIX-security-0@PREFIX-prod-iac-core-0.iam.gserviceaccount.com: Akun layanan ini dibuat di tahap 2.
Untuk menambahkan peran ke akun layanan ini, selesaikan Mengakses panel Izin untuk akun Penagihan Cloud dan Memperbarui peran dan akun utama di panel Izin.
Mengubah project tenant
Lakukan langkah-langkah berikut saat menambahkan atau menghapus project tenant untuk deployment Stellar Engine yang ada.
Lakukan autentikasi dan tetapkan project aktif:
gcloud auth login gcloud config set project PREFIX-prod-iac-core-0 gcloud auth application-default loginAktifkan akun layanan untuk tahap:
Ubah direktori menjadi
fast/stages-aw/3-security.Jalankan
./sa_lockdown.sh --enable.
Terapkan Tahap 1:
Ubah direktori menjadi
fast/stages-aw/1-resman.Perbarui informasi di
terraform.tfvarssesuai persyaratan baru Anda.Jalankan
terraform init.Jalankan
terraform apply. Ketikyessaat diminta.
Terapkan Tahap 2:
Ubah direktori ke salah satu folder jaringan berikut:
Salin file
1-resmantfvars dari bucket Cloud Storage:
gcloud storage cp gs://PREFIX-prod-iac-core-outputs-0/tfvars/1-resman.auto.tfvars.json ./Jalankan
terraform init.Jalankan
terraform apply. Ketikyessaat diminta.
Nonaktifkan akun layanan untuk tahap:
Ubah direktori menjadi
fast/stages-aw/3-security.Jalankan
./sa_lockdown.sh.
Pemecahan masalah
Bagian ini menjelaskan beberapa error umum dan penyelesaiannya.
Error BigQuery tidak dapat digunakan di tahap 1
Jika Anda mendapatkan error bahwa bigquery.googleapis.com tidak dapat digunakan di Assured Workloads, selesaikan langkah-langkah berikut:
Di konsol, buka halaman Assured Workloads.
Pilih folder
StellarEngine-COMPLIANCE_REGIMEdan folder Jaringan, jika berlaku.Klik Tinjau Update yang Tersedia.
Buka Layanan yang Diizinkan.
Klik Izinkan layanan untuk menambahkan BigQuery API.
Jika diminta, klik Ya untuk mengonfirmasi pilihan Anda.
Tunggu sekitar dua menit, lalu jalankan kembali
terraform apply:terraform apply -var bootstrap_user=$(gcloud config list --format 'value(core.account)')Ketikkan
yessaat diminta.
Project bootstrap Anda kehilangan akses ke akun penagihan Anda
Jika project bootstrap Anda kehilangan akses ke akun penagihan Anda, aktifkan kembali penagihan untuk project bootstrap Anda.
Error kunci Cloud KMS
Jika terjadi error kunci selama proses build, Anda mungkin harus mengaktifkan kunci secara manual. Untuk mengetahui petunjuknya, lihat Mengaktifkan versi kunci.
Jika Anda menerima error ini, tunggu sekitar satu menit, lalu jalankan kembali terraform apply.
Link simbolis tidak berfungsi di komputer Windows
Di komputer Windows, link simbolis mungkin tidak berfungsi. Anda mungkin perlu menyalin file tertentu secara manual, khususnya psc.tf dan log-metric-alerts.tf selama Tahap 2.
Masalah penagihan atau kuota
Jika Anda mengalami masalah penagihan atau kuota, pastikan project kuota Anda telah ditetapkan. Anda dapat menyetelnya dengan menjalankan perintah berikut:
gcloud auth application-default set-quota-project PREFIX-prod-iac-core-0
Secara opsional, Anda dapat menggunakan project lain.
Langkah berikutnya
Untuk konfigurasi keamanan tambahan, lihat Standar keamanan Gemini.
Mengintegrasikan solusi SIEM seperti Google Security Operations untuk memantau resource. Segmen SIEM Anda di project Google Cloud terpisah dan di VPC terpisah dari tempat SIEM mengumpulkan data.