תהליך הפריסה של אזור הנחיתה מורכב משלבים. במהלך כל שלב, צריך להוסיף משתנים מסוימים לקובץ terraform.tfvars. אחרי שמסיימים שלב, Terraform כותב קובץ STAGE_NAME-tfvar.auto.tfvars.json לקטגוריה של Cloud Storage שנוצרה בשלב הראשוני. בשלבים הבאים נעשה שימוש ב-CLI של Google Cloud כדי להעתיק את הקבצים ואת קובץ הפלאגין שמתממשק עם שירותים חיצוניים שמבצע התחזות לחשבון שירות ספציפי לשלב לתיקיית השלב החדשה.
הפריסה של סביבה חדשה נמשכת כשעה, בהתאם למספר הדיירים.
דרישות מוקדמות
לפני שמפעילים את Stellar Engine, צריך לבצע את המשימות הבאות.
הגדרה של Google Cloud
כדי להגדיר את Google Cloud:
בוחרים Google Cloud ארגון. אם יוצרים ארגון חדש, צריך להיכנס למסוף Google Admin לפחות פעם אחת.
הגדרת כמה אדמינים כדי להטמיע הפרדת תפקידים. בסביבת בדיקה, יכול להיות שלמשתמש אחד יש תפקידי אדמין לכל המשאבים. עם זאת, בסביבת ייצור, נדרשים כמה אדמינים. מידע נוסף זמין במאמר בנושא הגדרת משאבים בארגון.
מפעילים אימות דו-שלבי לכל החשבונות עם הרשאות מיוחדות.
השבתה של Cloud Shell אין תמיכה ב-Cloud Shell בסביבות IL4 או IL5, ואדמין ב-Google Workspace צריך להשבית אותו.
אם אין לכם פרויקט, צרו פרויקט bootstrap.
בפרויקט האתחול, מבצעים את המשימות הבאות:
מפעילים את החיוב. הוראות מפורטות זמינות במאמר אימות סטטוס החיוב של הפרויקטים.
מפעילים את Cloud Monitoring API.
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, נדרשת ההרשאה
serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק 'שימוש בשירות'' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים
מוודאים שחשבון המשתמש שלכם הוא סופר-אדמין.
אם לארגון אין תוכנית לסיווג נתונים, צריך ליצור אחת.
הקצאת תפקידים
מקצים את התפקידים הבאים של ניהול זהויות והרשאות גישה לחשבון המשתמש שמבצע את הפריסה של Stellar Engine.
-
צריך לוודא שיש לכם בארגון את התפקיד או התפקידים הבאים: Access Transparency Admin, Assured Workloads Administrator, Billing Account Administrator, Logging Admin, Organization Administrator, Organization Policy Admin, Organization Role Administrator, Owner, Project Creator, Service Account Admin, Service Account Token Creator, Tag Admin
בדיקת התפקידים
-
נכנסים לדף IAM במסוף Google Cloud .
כניסה לדף IAM - בוחרים את הארגון.
-
בעמודה Principal, מחפשים את כל השורות שמזהות אתכם או קבוצה שאתם נכללים בה. כדי לברר באילו קבוצות אתם נכללים, פנו לאדמין.
- בודקים את העמודה Role בכל השורות שבהן מצוין או מופיע השם שלכם, כדי לראות אם רשימת התפקידים כוללת את התפקידים הנדרשים.
מתן התפקידים
-
נכנסים לדף IAM במסוף Google Cloud .
כניסה לדף IAM - בוחרים את הארגון.
- לוחצים על Grant access.
-
בשדה New principals, מזינים את מזהה המשתמש. בדרך כלל מזהה המשתמש הוא כתובת האימייל של חשבון Google.
- לוחצים על Select a role ומחפשים את התפקיד.
- כדי לתת עוד תפקידים, לוחצים על Add another role ומוסיפים אותם.
- לוחצים על Save.
-
אם אתם מתחילים עם ארגון חדש, אתם יכולים להריץ את הסקריפט הבא שנמצא בתיקייה fast/stages-aw/0-bootstrap כדי להקצות את התפקידים:
./setIAM.sh EMAIL_ADDRESS ORGANIZATION_ID
מחליפים את מה שכתוב בשדות הבאים:
-
EMAIL_ADDRESS: כתובת האימייל של חשבון המשתמש. -
ORGANIZATION_ID: מזהה הארגון.
הסקריפט הזה מוסיף את כל התפקידים חוץ מ-Billing Account Administrator וסופר-אדמין.
הוספת קבוצות והגדרת שירותים
מוסיפים את הקבוצות הבאות, כמו שמתואר בשלב 2. משתמשים וקבוצות:
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
מחליפים את
DOMAINב-FQDN.אם מתקבלת בקשה, מדלגים על השלב של ספק הזהויות.
יכול להיות ש-Google תשנה את שמות ברירת המחדל של הקבוצות. אם הקבוצה לא מופיעה במדריך ההגדרה, אפשר ליצור אותה באופן ידני.
מפעילים את ממשקי Assured Workloads, BigQuery, חיוב ב-Cloud, Cloud Logging, Cloud KMS, IAM, Pub/Sub, מנהל המשאבים, Service Account Credentials, Service Usage ו-שירות מדיניות הארגון APIs.
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, נדרשת ההרשאה
serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק 'שימוש בשירות'' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידיםאם המכסה שלכם היא פחות מ-13 פרויקטים, אתם יכולים להיכנס אל Google Cloud Platform/API Project: Request Billing Quota Increase ולבקש מכסה של 13 פרויקטים. מידע נוסף מופיע במאמר בנושא איך רואים ומנהלים את המכסות.
אפשר גם להשתמש בסקריפט fast/stages-aw/0-bootstrap/enableServices.sh כדי להפעיל את השירותים.
הגדרת הסביבה המקומית
כדי להגדיר את הסביבה המקומית:
- משכפלים את מאגר GitHub של Stellar Engine.
- מתקינים את Google Cloud SDK.
- מעדכנים את Terraform המקומי לגרסה 1.8.1 ואילך.
- מתקינים את הקובץ הבינארי jq.
מאמתים ומגדירים את פרויקט האתחול כפרויקט הפעיל:
gcloud auth login gcloud config set project BOOTSTRAP_PROJECT_ID gcloud auth application-default login
שינוי מודולים
ברוב המקרים, אפשר להשתמש במאגר בלי לבצע שינויים. אם צריך לשנות מודול, מעתיקים את המודול כולו ומשתמשים במוסכמת השמות <module-se> כדי למנוע התנגשויות במיזוג כשמורידים עדכונים תקופתיים ממאגר המאגדים של Cloud Foundation.
הפעלת שלב 0: אתחול
בשלב 0, החלקים הקיימים של הרשת מותאמים למצב Terraform. בשלב 0 נוצרים חשבונות השירות והפרויקטים הראשוניים של IaC bootstrap. שלב 0 מיועד למעבר מפרויקט כלשהו שהמשתמש התחיל איתו לפרויקט ליבה חדש ולהעברת מצב Terraform.
שינוי הספרייה ל-
fast/stages-aw/0-bootstrap.מעתיקים את הקובץ
terraform.tfvars.sample:cp terraform.tfvars.sample terraform.tfvarsמעתיקים את הקובץ
providers.tf.tmpלקובץ0-bootstrap-providers.tf:cp providers.tf.tmp 0-bootstrap-providers.tfמעדכנים את הפרטים ב-
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"מחליפים את מה שכתוב בשדות הבאים:
BILLING_ACCOUNT_ID: החשבון לחיוב שישמש לפריסת הסביבות. כדי לראות את פרטי החשבון לחיוב, אפשר להיכנס ל Google Cloud מסוף.
REGION: האזור הראשי לפריסת משאבים. ערך ברירת המחדל הואus-east4עבור IL5 ו-FedRAMP.כדי להוסיף אזור משני לפריסת משאבים, מוסיפים את
secondary=secondary.
DOMAIN: שם הדומיין המוגדר במלואו (FQDN). כדי להציג את ה-FQDN, מריצים את הפקודהgcloud organizations list.
ORGANIZATION: מזהה הארגון שלGoogle Cloud הארגון. כדי להציג את מזהה הארגון, מריצים את הפקודהgcloud organizations list.
CUSTOMER_ID: מזהה הלקוח בספרייה של Google Workspace. כדי להציג את המזהה, מריצים את הפקודהgcloud organizations list.
PREFIX: הקידומת שתוסף לשמות של פרויקטים ומשאבים שנפרסים. שם הפרויקט צריך להיות ייחודי באופן גלובלי, והקידומת צריכה לכלול עד שישה תווים. שגיאה 409 מתרחשת אם שם הפרויקט לא ייחודי.
ALLOWED_POLICY_MEMBER_DOMAINS: אם נדרש, מעדכנים עם מזהי לקוחות נוספים. מידע נוסף מופיע במאמר בנושא הגבלת זהויות באמצעות שיתוף עם הגבלת דומיין.
COMPLIANCE_REGIME: המשטר של התאימות לסביבה הזו, אחד מהערכיםIL4,IL5,FEDRAMP_HIGHו-COMPLIANCE_REGIME_UNSPECIFIED. אם לא רוצים להשתמש ב-Assured Workloads, צריך להגדיר את הערך הזה ל-COMPLIANCE_REGIME_UNSPECIFIED.
LOCATION: האזור בארה"ב שבו רוצים לפרוס משאבים. אין תמיכה באזורים כפולים כמוNAM9או ביבשות.
BOOTSTRAP_PROJECT_ID: מזהה פרויקט האתחול שיצרתם בשלב הגדרה Google Cloud.
ALERT_EMAIL: כתובת האימייל שאליה יישלחו התראות על רישום ביומן.
מריצים את
terraform init.מריצים את
terraform apply:terraform apply -var bootstrap_user=$(gcloud config list --format 'value(core.account)')מקלידים
yesכשמוצגת בקשה.עוברים לפרויקט החדש:
gcloud config set project PREFIX-prod-iac-core-0מעתיקים את קובץ ספקי Terraform המקומי החדש:
gcloud storage cp gs://PREFIX-prod-iac-core-outputs-0/providers/0-bootstrap-providers.tf ./מעבירים את המצב ממקומי למרוחק:
terraform init --migrate-stateמקלידים
yesכשמוצגת בקשה.מריצים את
./import.sh.מריצים את
terraform applyשוב. מקלידיםyesכשמוצגת בקשה.
הפעלת שלב 1: ניהול משאבים
בשלב 1 נוצרות התיקיות, הפרויקטים וחשבונות השירות השונים ברמת הארגון, שמשמשים בשלבים הבאים. כדי ליצור את הסביבה, צריך לעדכן את הקובץ terraform.tfvars ב-fast/stages-aw/1-resman כך שיכלול משתנה tenants. כל דייר (לדוגמה, סוכנות פדרלית ספציפית או קבוצת פיתוח פנימית) מקבל גבול ייעודי ומבודד משלו להרצת עומסי העבודה שלו. כל דייר מקבל בירושה את אמצעי הבקרה המרכזיים לאבטחה, את היקף הרשת, את אמצעי הבקרה למדיניות ואת יעד היומן של ביקורת הגישה שנוצרו בשלב 0 ובשלב 2.
אם אתם משתמשים בחשבון חיצוני לחיוב, תוכלו להיעזר במאמר הגדרת חיוב כשמשתמשים בחשבונות חיצוניים לחיוב.
שינוי הספרייה ל-
fast/stages-aw/1-resman.מעתיקים את הקובץ
terraform.tfvars.sample:cp terraform.tfvars.sample terraform.tfvarsמעדכנים את
terraform.tfvarsבאופן הבא: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" } }מחליפים את מה שכתוב בשדות הבאים:
DOMAIN: שם הדומיין הראשי שמוגדר במלואו (FQDN). כדי להציג את ה-FQDN, מריצים את הפקודהgcloud organizations list.
TENANT_ONE_NAME: השם של הפרויקט הראשון של הדייר שמוגדר. אפשר להשתמש בשישה תווים לכל היותר.
REGION: האזור הראשי לפריסת משאבים. ערך ברירת המחדל הואus-east4עבור IL5 ו-FedRAMP.
TENANT_TWO_NAME: השם של פרויקט הדייר השני שפריסתו מתבצעת. אפשר להשתמש בשישה תווים לכל היותר.
מוסיפים כמה הגדרות של דיירים שרוצים.
מעתיקים את הקבצים
tfvarsמ-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 ./מריצים את
terraform init.מריצים את
terraform apply. מקלידיםyesכשמוצגת בקשה.
הפעלת שלב 2: יצירת רשת
שלב 2 כולל שתי אפשרויות רשת: אחת ל-FedRAMP High ואחת ל-IL4 או IL5.
הגדרת רשתות ל-FedRAMP High
אם אתם משתמשים בחשבון חיצוני לחיוב, תוכלו להיעזר במאמר הגדרת חיוב כשמשתמשים בחשבונות חיצוניים לחיוב.
שינוי הספרייה ל-
fast/stages-aw/2-networking-a-fedramp-high.מעתיקים את קובצי הספק ואת קובצי tfvars הגלובליים מהקטגוריות של 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 ./מעתיקים את הקובץ
terraform.tfvars.sample:cp terraform.tfvars.sample terraform.tfvarsבקובץ
terraform.tfvars, מעדכנים את רשתות המשנה המותאמות אישית, רשתות המשנה של ה-proxy, כללי חומת האש, ה-CIDR עם השם והכללים של מדיניות התגובה של DNS.מריצים את
terraform init.מריצים את
terraform apply. מקלידיםyesכשמוצגת בקשה.
הגדרת רשתות בהתאם ל-IL4 או ל-IL5
בשלב הזה פורסים צמד חומות אש מהדור הבא (NGFW) מסוג Palo Alto VM-Series בחשבון הרשת. ה-NGFW משתמשים בתמונת פריסה של Bring Your Own License (BYOL) ודורשים להשתמש במסוף Palo Alto כדי להעלות קוד מכונה ולרשום אותם. הוראות נוספות מופיעות בקובץ README בתיקיית השלב 2-networking-b-il5-ngfw.
אם אתם משתמשים בחשבון חיצוני לחיוב, תוכלו להיעזר במאמר הגדרת חיוב כשמשתמשים בחשבונות חיצוניים לחיוב.
שינוי הספרייה ל-
fast/stages-aw/2-networking-b-il5-ngfw.מעתיקים את קובצי הספק ואת קובצי tfvars הגלובליים מהקטגוריות של 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 ./מעתיקים את הקובץ
terraform.tfvars.sample:cp terraform.tfvars.sample terraform.tfvarsבקובץ
terraform.tfvars, מעדכנים את רשתות המשנה בהתאמה אישית (כולל mgmt), רשתות המשנה של ה-proxy, כללי חומת האש, CIDR עם שם וכללי מדיניות של תגובות DNS.מריצים את
terraform init.מריצים את
terraform apply. מקלידיםyesכשמוצגת בקשה.אם מוצגת שגיאה לגבי חשבון שירות או Cloud Key Management Service שלא קיימים, במסוף לוחצים על הגדרות בחשבון האחסון
PREFIX-net-vdss-host. חשבון השירות נוצר.
הפעלת שלב 3: אבטחה וביקורת של הגדרת החשבון
בשלב 3 מגדירים את פרויקטי האבטחה והביקורת. פרויקט האבטחה (prod-sec-core-0) מכיל את Cloud KMS ויכול להכיל את Secret Manager. ב-IL5, CMEK מופעל כברירת מחדל ב-Compute Engine, Google Kubernetes Engine (GKE), Cloud Storage ו-Cloud SQL. האילוצים הבאים של מדיניות הארגון נאכפים:
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.restrictCmekCryptoKeyProjectsכולל רשימה של פרויקטים שאפשר להשתמש בהם ב-CMEK.
בפרויקט prod-sec-core-0 מוגדרים הפריטים הבאים:
- לאדמינים מוגבלים ב-Cloud KMS מוקצה תפקיד האדמין המוגבל, כדי שיוכלו להעניק הרשאות פענוח לשירותים אחרים.
- מוקצים אוספי מפתחות של Cloud KMS במיקומים שונים. המיקומים של מחזיקי המפתחות צריכים להיות זהים למיקומי השירות. לדוגמה, אי אפשר להשתמש במחזיק מפתחות במספר אזורים בקטגוריית אחסון באזור יחיד.
פרויקט הביקורת מכיל מאגר ליומנים ליומני ביקורת.
אדמינים של אבטחה אחראים לפרויקט האבטחה, ומבקרים אחראים לפרויקט הביקורת.
אם אתם משתמשים בחשבון חיצוני לחיוב, תוכלו להיעזר במאמר הגדרת חיוב כשמשתמשים בחשבונות חיצוניים לחיוב.
שינוי הספרייה ל-
fast/stages-aw/3-security.מעתיקים את קובצי ההגדרות מהקטגוריות של 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 ./מריצים את
terraform init.מריצים את
terraform apply. מקלידיםyesכשמוצגת בקשה.אם נתקלים בבעיה בחשבונות שירות, מריצים מחדש את הפקודה
terraform apply.מריצים את הפקודה
./sa_lockdown.shכדי להשבית את חשבונות השירות שבהם השתמשתם במהלך הפריסה.
הגדרת חיוב כשמשתמשים בחשבונות חיוב חיצוניים
אם אתם משתמשים בחשבון לחיוב חיצוני, אתם צריכים להוסיף את התפקיד 'אדמין של חשבון לחיוב' לחשבונות השירות הבאים:
PREFIX-prod-resman-0@PREFIX-prod-iac-core-0.iam.gserviceaccount.com: החשבון הזה נוצר בשלב 0.
PREFIX-prod-resman-net-0@PREFIX-prod-iac-core-0.iam.gserviceaccount.com: חשבון השירות הזה נוצר בשלב 1.
PREFIX-security-0@PREFIX-prod-iac-core-0.iam.gserviceaccount.com: חשבון השירות הזה נוצר בשלב 2.
כדי להוסיף את התפקיד לחשבונות השירות האלה, צריך לפעול לפי השלבים במאמרים גישה לחלונית Permissions בחשבון לחיוב ב-Cloud ועדכון תפקידים וחשבונות ראשיים בחלונית Permissions.
שינוי פרויקטים של דייר
כדי להוסיף או להסיר פרויקטים של דיירים לפריסת Stellar Engine קיימת, פועלים לפי השלבים הבאים.
מאמתים ומגדירים את הפרויקט הפעיל:
gcloud auth login gcloud config set project PREFIX-prod-iac-core-0 gcloud auth application-default loginמפעילים את חשבונות השירות לשלבים:
שינוי הספרייה ל-
fast/stages-aw/3-security.מריצים את
./sa_lockdown.sh --enable.
החלת שלב 1:
שינוי הספרייה ל-
fast/stages-aw/1-resman.מעדכנים את הפרטים ב-
terraform.tfvarsבהתאם לדרישות החדשות.מריצים את
terraform init.מריצים את
terraform apply. מקלידיםyesכשמוצגת בקשה.
החלת שלב 2:
עוברים לתיקייה אחת מהתיקיות הבאות ברשת:
מעתיקים את קובץ
1-resmantfvars מקטגוריה של Cloud Storage:
gcloud storage cp gs://PREFIX-prod-iac-core-outputs-0/tfvars/1-resman.auto.tfvars.json ./מריצים את
terraform init.מריצים את
terraform apply. מקלידיםyesכשמוצגת בקשה.
משביתים את חשבונות השירות לשלבים:
שינוי הספרייה ל-
fast/stages-aw/3-security.מריצים את
./sa_lockdown.sh.
פתרון בעיות
בקטע הזה מתוארות כמה שגיאות נפוצות ופתרונות לבעיות האלה.
שגיאה שמונעת שימוש ב-BigQuery בשלב 1
אם מופיעה שגיאה שאי אפשר להשתמש ב-bigquery.googleapis.com ב-Assured Workloads, צריך לבצע את הפעולות הבאות:
במסוף, נכנסים לדף Assured Workloads.
בוחרים את התיקייה ואת תיקיית הרשת, אם רלוונטי.
StellarEngine-COMPLIANCE_REGIMEלוחצים על בדיקת עדכונים זמינים.
עוברים אל שירותים מורשים.
לוחצים על Allow services (מתן הרשאה לשירותים) כדי להוסיף את ממשקי ה-API של BigQuery.
אם מוצגת בקשה, לוחצים על כן כדי לאשר את הבחירה.
מחכים כשתי דקות ומריצים מחדש את
terraform apply:terraform apply -var bootstrap_user=$(gcloud config list --format 'value(core.account)')מקלידים
yesכשמוצגת בקשה.
לפרויקט ה-bootstrap אין יותר גישה לחשבון לחיוב
אם הפרויקט הראשוני מאבד את הגישה לחשבון לחיוב, צריך להפעיל מחדש את החיוב בפרויקט הראשוני.
שגיאות במפתחות Cloud KMS
אם מתרחשות שגיאות במפתחות במהלך תהליך build, יכול להיות שתצטרכו להפעיל את המפתחות באופן ידני. הוראות מפורטות מופיעות במאמר בנושא הפעלת גרסת מפתח.
אם השגיאות האלה מופיעות, צריך לחכות דקה בערך ולהריץ מחדש את הפקודה terraform apply.
קישורים סמליים לא פועלים במחשבים עם Windows
במחשב Windows, יכול להיות שקישורים סמליים לא יפעלו. יכול להיות שתצטרכו להעתיק קבצים ספציפיים באופן ידני, במיוחד את psc.tf ואת log-metric-alerts.tf במהלך שלב 2.
בעיות בחיוב או במכסה
אם נתקלתם בבעיות בחיוב או במכסה, ודאו שהפרויקט של המכסה מוגדר. כדי להגדיר את זה, מריצים את הפקודה הבאה:
gcloud auth application-default set-quota-project PREFIX-prod-iac-core-0
אפשר גם להשתמש בפרויקט אחר.
המאמרים הבאים
למידע נוסף על הגדרות אבטחה, אפשר לעיין במאמר תקני האבטחה של Gemini.
משלבים פתרון SIEM כמו Google Security Operations כדי לעקוב אחרי המשאבים. מפלחים את ה-SIEM בפרויקט נפרד Google Cloud וב-VPC נפרד מהמקום שבו הוא אוסף נתונים.