נבדק לאחרונה: מאי 2026
בנו את שירותי AWS של בחינת PCSE עם Terraform פשוט — בלוק אחד בכל פעם, כאשר כל אחד מהם מקושר בחזרה לתחום במבחן. אותו הקוד עובד גם ב-OpenTofu.
בסוף מעבדה זו תגדיר, באמצעות Terraform פשוט, את בסיס האבטחה המינימלי והמציאותי ביותר של PCSE — אילוץ מדיניות ארגונית המונע יצירת רשת ברירת מחדל, טבעת מפתחות של Cloud KMS + מפתח הצפנה מנוהל על ידי הלקוח עם רוטציה אוטומטית, דלי Cloud Storage מוצפן ב-CMK, ו-sink של Cloud Audit Logs המנתב אירועי IAM לדלי רישום ייעודי. חמישה בלוקים; לולאת ה-PCSE של מניעה ← הצפנה ← ביקורת.
הכנס את הקטעים לקובץ main.tf יחיד, הפעל terraform init, ואז terraform apply צעד אחר צעד.
>= 1.5 או OpenTofu >= 1.6.roles/orgpolicy.policyAdmin בהיקף פרויקט. קיימת גרסה ברמת הארגון של אותו אילוץ אך היא דורשת מנהל ארגון.your-project-id בבלוק ה-provider.כמעט בחינם בהיקף המעבדה:
כ-0–1 דולר לחודש. זול להשאיר פועל אם ברצונך ללמוד את לוחות המחוונים.
הפעל את ממשקי ה-API של Cloud KMS, Cloud Storage, Cloud Logging ו-Org Policy.
terraform {
required_version = ">= 1.5"
required_providers {
google = { source = "hashicorp/google", version = "~> 6.0" }
}
}
provider "google" {
project = "your-project-id" # REPLACE
region = "us-central1"
}
locals {
labels = {
project = "certlabpro-pcse"
managed_by = "terraform"
}
}
data "google_project" "current" {}
resource "google_project_service" "cloudkms" {
service = "cloudkms.googleapis.com"
disable_on_destroy = false
}
resource "google_project_service" "storage" {
service = "storage.googleapis.com"
disable_on_destroy = false
}
resource "google_project_service" "logging" {
service = "logging.googleapis.com"
disable_on_destroy = false
}
resource "google_project_service" "orgpolicy" {
service = "orgpolicy.googleapis.com"
disable_on_destroy = false
}שירות מדיניות ארגונית הוא הפרימיטיב ה-מגן של PCSE — הגדר אילוצים פעם אחת בהיקף ארגון / תיקייה / פרויקט, ומשאבים שמפרים אותם לעולם לא יוכלו להיווצר. בחינת PCSE בודקת את ההבחנה בין אילוצים ל-IAM: IAM מגביל מי יכול לפעול; מדיניות ארגונית מגבילה מה יכול להתקיים.
אנו מיישמים את compute.skipDefaultNetworkCreation בהיקף הפרויקט — כאשר פרויקט זה מאותחל מחדש, GCP בדרך כלל יוצרת VPC ברירת מחדל עם כללי חומת אש מתירניים מדי. האילוץ מונע זאת. צורת ה-מניעה כברירת מחדל הקנונית של PCSE.
resource "google_project_organization_policy" "skip_default_network" {
project = data.google_project.current.project_id
constraint = "compute.skipDefaultNetworkCreation"
boolean_policy {
enforced = true
}
depends_on = [google_project_service.orgpolicy]
}Cloud KMS הוא פרימיטיב ה-CMK של PCSE — מפתחות הצפנה מנוהלים על ידי לקוח עבור כל תרחיש הצפנה במנוחה ברחבי GCS, BigQuery, דיסקים של Compute Engine, Cloud SQL, Spanner, Secret Manager. בחינת PCSE בודקת רוטציית CMK (תמיד מופעלת כברירת מחדל ב-CMEK; רוטציה של 90 יום כברירת מחדל היא ההגדרה המומלצת) וכן את הפרדת טבעת מפתחות + מפתח (טבעת המפתחות היא גבול ה-IAM; מפתחות יורשים אותה).
אנו יוצרים טבעת מפתחות אזורית + מפתח SYMMETRIC_ENCRYPTION עם רוטציה של 90 יום. מתן הרשאת roles/cloudkms.cryptoKeyEncrypterDecrypter לחשבון השירות של Cloud Storage נדרש לפני שהדלי בשלב 4 יוכל להשתמש במפתח — שלב 4 כולל קישור זה.
resource "google_kms_key_ring" "main" {
name = "certlabpro-pcse-keyring"
location = "us-central1"
depends_on = [google_project_service.cloudkms]
}
resource "google_kms_crypto_key" "storage_cmk" {
name = "storage-cmk"
key_ring = google_kms_key_ring.main.id
purpose = "ENCRYPT_DECRYPT"
rotation_period = "7776000s" # 90 days
lifecycle {
prevent_destroy = false # lab-only
}
}תבנית הצפנה במנוחה המומלצת ב-PCSE: לעולם אל תשתמש בהצפנה המנוהלת על ידי Google כברירת מחדל עבור נתונים רגישים; תמיד חבר CMK. אנו מעניקים לסוכן השירות של Cloud Storage (חשבון שירות ספציפי לפרויקט service-PROJECT_NUMBER@gs-project-accounts.iam.gserviceaccount.com) את התפקיד roles/cloudkms.cryptoKeyEncrypterDecrypter על ה-CMK, ולאחר מכן מקצים דלי המפנה למפתח.
כל אובייקט שנכתב לדלי זה עטוף במפתח הצפנת נתונים (DEK), אשר בעצמו עטוף על ידי ה-CMK. סיבוב ה-CMK מסובב את ה-DEK הבא; אובייקטים קיימים מוצפנים מחדש בכתיבה הבאה. בחינת PCSE בודקת צורת הצפנת מעטפה זו.
resource "random_id" "suffix" {
byte_length = 4
}
resource "google_storage_project_service_account" "gcs_account" {}
resource "google_kms_crypto_key_iam_member" "gcs_kms" {
crypto_key_id = google_kms_crypto_key.storage_cmk.id
role = "roles/cloudkms.cryptoKeyEncrypterDecrypter"
member = "serviceAccount:${google_storage_project_service_account.gcs_account.email_address}"
}
resource "google_storage_bucket" "secure" {
name = "certlabpro-pcse-secure-${random_id.suffix.hex}"
location = "us-central1"
uniform_bucket_level_access = true
force_destroy = true # lab-only
encryption {
default_kms_key_name = google_kms_crypto_key.storage_cmk.id
}
labels = local.labels
depends_on = [google_kms_crypto_key_iam_member.gcs_kms]
}שמירת יומני ביקורת מומלצת ב-PCSE: דלי הרישום ברירת המחדל _Required ו-_Default בעלי שמירה של 30 יום. אירועי ביקורת רגישים (הענקות / ביטולי IAM / עריכות מדיניות) דורשים זמן ארוך בהרבה — לעיתים קרובות 7 שנים לצורך עמידה בתקני SOX / HIPAA / FedRAMP.
אנו יוצרים דלי רישום ייעודי עם שמירה של 400 יום + sink של יומנים המנתב יומני ביקורת הקשורים למדיניות IAM אליו. הדגל unique_writer_identity = true יוצר זהות שירות נפרדת לכל sink (שומר על שרשרת הביקורת — אתה יכול להעניק לה גישת כתיבה בלבד מבלי לחשוף את זהות המשתמש שלך).
עם חמישה בלוקים במקום (ספק+ממשקי API, הגנה באמצעות מדיניות ארגונית, טבעת מפתחות KMS+CMK, דלי CMK, sink של יומני ביקורת), בסיס ה-PCSE של מניעה ← הצפנה ← ביקורת מעוצב. פריסות PCSE אמיתיות מציגות שכבות של Security Command Center (SCC Premium / Enterprise — פני השטח המאוחדים לזיהוי איומים וניהול תנוחה), היקפי VPC Service Controls (הגנה מפני דליפת נתונים סביב BigQuery / Storage / וכו'), Binary Authorization (חסימת תמונות קונטיינרים), Cloud Armor WAF, Identity-Aware Proxy (IAP — אימות ברמת יישום ללא אמון), Workforce Identity Federation, ו-Sensitive Data Protection (DLP — גילוי ומיסוך PII) על גבי בסיס זה.
resource "google_logging_project_bucket_config" "audit" {
project = data.google_project.current.project_id
location = "global"
retention_days = 400
bucket_id = "audit-events"
depends_on = [google_project_service.logging]
}
resource "google_logging_project_sink" "audit_sink" {
name = "certlabpro-pcse-audit-sink"
destination = "logging.googleapis.com/${google_logging_project_bucket_config.audit.id}"
filter = "logName:\"cloudaudit.googleapis.com\" AND (protoPayload.serviceName=\"iam.googleapis.com\" OR protoPayload.serviceName=\"cloudkms.googleapis.com\")"
unique_writer_identity = true
}
# Required so the sink can write to the bucket.
resource "google_project_iam_member" "audit_sink_writer" {
project = data.google_project.current.project_id
role = "roles/logging.bucketWriter"
member = google_logging_project_sink.audit_sink.writer_identity
}terraform destroy מפרק הכל. מפתח ה-KMS מתוזמן להשמדה (תקופת חסד של 24 שעות — מפתחות Cloud KMS לעולם אינם נמחקים מיד). הדלי המוצפן ב-CMK נהרס (force_destroy = true); האובייקטים הקיימים מוצפנים מחדש בדרך החוצה — Cloud Storage מטפל בכך באופן שקוף. אילוץ המדיניות הארגונית מוסר; יצירת רשת ברירת מחדל מותרת שוב בפרויקט. sink ודלי יומני הביקורת נהרסים בצורה נקייה.
PCSE מכסה משטחי אבטחה רבים שמעבדה זו אינה יכולה להכיל — Security Command Center (SCC Premium / Enterprise — משטח איתור האיומים וניהול התנוחה המאוחד), VPC Service Controls (היקפים למניעת דליפת נתונים סביב BigQuery / Storage / וכו'), Cloud Armor (WAF + DDoS + ניהול בוטים), Identity-Aware Proxy (IAP — אימות ברמת יישום ללא אמון), Cloud HSM (FIPS-140-2 Level 3 KMS מגובה חומרה), Cloud External Key Manager (EKM — מפתחות המוחזקים מחוץ ל-Google), Confidential VMs / Confidential GKE Nodes (הצפנת זיכרון), Binary Authorization (חסימת תמונות קונטיינרים), Container Threat Detection / Web App and API Protection (WAAP), Sensitive Data Protection (DLP — גילוי ומיסוך PII), Workforce Identity Federation, Workload Identity Federation, Access Context Manager (מדיניות גישה מודעת הקשר), וכל המשטח שנרכש מ-Mandiant (מודיעין איומים, ניהול משטח תקיפה, ניתוח פרצות).
אנו נצמדים לפרימיטיבים של Org Policy + KMS + CMK Storage + Audit Logs מכיוון שהם הבסיס של PCSE שמעליו נבנות כל הבקרות המתקדמות יותר. SCC קורא מאותם יומני ביקורת. היקפי VPC-SC עוטפים את אותם דליים. Cloud HSM מחליף את KMS כ-backend של המפתחות. IAP מתווסף על גבי אותן זהויות IAM. שלוט בתשתית; הוסף שכבות של בקרות מיוחדות.
לכיסוי קונספטואלי שירות-אחר-שירות, עיין במדורי עיון, מדריך ו-Editorial של דף הסמכה זה.