ב-Google Cloud יש שני אילוצים של מדיניות הארגון, כדי לוודא שמשתמשים ב-CMEK בכל הארגון:
constraints/gcp.restrictNonCmekServicesמשמש לדרישת הגנה באמצעות CMEK.constraints/gcp.restrictCmekCryptoKeyProjectsמשמש להגבלת מפתחות Cloud KMS שמשמשים להגנה באמצעות CMEK.
כללי מדיניות הארגון ל-CMEK חלים רק על משאבים חדשים שנוצרו בשירותים Google Cloud נתמכים.
התפקידים הנדרשים
כדי לוודא שלכל משתמש יש את ההרשאות הנדרשות לבדיקת כללי המדיניות של הארגון בזמן יצירת משאבים, צריך לבקש מהאדמין להקצות לכל משתמש בארגון את התפקיד צפייה במדיניות הארגון (roles/orgpolicy.policyViewer) ב-IAM.
כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
זהו תפקיד שמוגדר מראש וכולל את ההרשאות שנדרשות לבדיקת כללי המדיניות של הארגון כשיוצרים משאבים. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
כדי לבדוק את מדיניות הארגון כשיוצרים משאבים, נדרשות ההרשאות הבאות:
-
כדי לראות את הפרטים המלאים של מדיניות הארגון:
orgpolicy.policy.get -
כדי לבדוק את מדיניות הארגון כשיוצרים משאבים:
orgpolicy.policies.check
יכול להיות שהאדמין יוכל גם להעניק לכל משתמש את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
כשמדיניות הארגון פעילה, משתמשי מסוף Google Cloud שיוצרים משאבים שמוגנים באמצעות מפתחות CMEK צריכים את ההרשאה orgpolicy.policies.check. משתמשים בלי ההרשאה הזו יכולים ליצור משאבים שמוגנים באמצעות CMEK באמצעות מסוף Google Cloud , אבל הם יכולים לבחור מפתח CMEK שלא מותר לפי האילוץ restrictCmekCryptoKeyProjects. אם בוחרים מפתח שלא עומד באילוץ הזה, יצירת המשאב תיכשל בסופו של דבר.
דרישה להגנה באמצעות CMEK
כדי לדרוש הגנה באמצעות CMEK בארגון, צריך להגדיר את מדיניות הארגון constraints/gcp.restrictNonCmekServices.
כמגבלת רשימה, הערכים המקובלים למגבלה הזו הם שמות של שירותי Google Cloud(לדוגמה, bigquery.googleapis.com). כדי להשתמש במגבלה הזו, צריך לספק רשימה של שמות שירותי Google Cloud ולהגדיר את המגבלה ל-Deny. ההגדרה הזו חוסמת את היצירה של משאבים בשירותים האלה אם המשאב לא מוגן על ידי CMEK. במילים אחרות, בקשות ליצירת משאב בשירות לא יצליחו בלי לציין מפתח Cloud KMS. בנוסף, האילוץ הזה חוסם את האפשרות להסיר את ההגנה של CMEK ממשאבים בשירותים האלה. אפשר להחיל את המגבלה הזו רק על שירותים נתמכים.
הגבלת השימוש במפתחות Cloud KMS ל-CMEK
כדי להגביל את מפתחות Cloud KMS שמשמשים להגנה באמצעות CMEK, מגדירים את האילוץ constraints/gcp.restrictCmekCryptoKeyProjects.
כאילוץ רשימה, הערכים המקובלים הם אינדיקטורים של היררכיית משאבים (לדוגמה, projects/PROJECT_ID, under:folders/FOLDER_ID ו-under:organizations/ORGANIZATION_ID). כדי להשתמש באילוץ הזה, מגדירים רשימה של אינדיקטורים של היררכיית משאבים ומגדירים את האילוץ לערך Allow. ההגדרה הזו מגבילה את השירותים הנתמכים, כך שאפשר לבחור מפתחות CMEK רק מהפרויקטים, התיקיות והארגונים שברשימה.
בקשות ליצירת משאבים שמוגנים באמצעות CMEK בשירותים שהוגדרו לא יצליחו בלי מפתח Cloud KMS מאחד מהמשאבים המותרים. אם מגדירים את המגבלה, היא חלה על כל השירותים הנתמכים.
שירותים נתמכים
| שירות | ערך האילוץ כשנדרש CMEK |
|---|---|
| Agent Assist | dialogflow.googleapis.com |
| חיפוש מבוסס סוכנים | discoveryengine.googleapis.com |
| AlloyDB ל-PostgreSQL | alloydb.googleapis.com |
| Apigee | apigee.googleapis.com |
| Application Integration | integrations.googleapis.com |
| Artifact Registry | artifactregistry.googleapis.com |
| שירות Backup and DR | backupdr.googleapis.com |
| גיבוי ל-GKE | gkebackup.googleapis.com |
| BigQuery | bigquery.googleapis.com |
| Bigtable | bigtable.googleapis.com |
| Cloud Data Fusion | datafusion.googleapis.com |
| Cloud Logging | logging.googleapis.com |
| Cloud Run | run.googleapis.com |
| פונקציות Cloud Run | cloudfunctions.googleapis.com |
| Cloud SQL | sqladmin.googleapis.com |
| Cloud Storage | storage.googleapis.com |
| Cloud Tasks | cloudtasks.googleapis.com |
| Cloud TPU | tpu.googleapis.com |
| תחנות עבודה בענן | workstations.googleapis.com |
| Colab Enterprise | aiplatform.googleapis.com |
| Compute Engine | compute.googleapis.com |
| תובנות לגבי חוויית הלקוח (CX) | contactcenterinsights.googleapis.com |
| Data Studio | datastudio.googleapis.com |
| Database Migration Service | datamigration.googleapis.com |
| Dataflow | dataflow.googleapis.com |
| Dataform | dataform.googleapis.com |
| Datastream | datastream.googleapis.com |
| Dialogflow CX | dialogflow.googleapis.com |
| Document AI | documentai.googleapis.com |
| Eventarc Advanced (גרסת טרום-השקה (Preview)) | eventarc.googleapis.com |
| Eventarc Standard | eventarc.googleapis.com |
| Filestore | file.googleapis.com |
| Firestore | firestore.googleapis.com |
| Gemini Enterprise | discoveryengine.googleapis.com |
| Google Cloud Managed Lustre | lustre.googleapis.com |
| שירות מנוהל של Google Cloud ל-Apache Kafka | managedkafka.googleapis.com |
| Google Cloud NetApp Volumes | netapp.googleapis.com |
| Google Cloud Observability (גרסת טרום-השקה (Preview)) | observability.googleapis.com |
| Google Kubernetes Engine (גרסת טרום-השקה (Preview)) | container.googleapis.com |
| Google Security Operations | chronicleservicemanager.googleapis.com |
| Knowledge Catalog | dataplex.googleapis.com |
| Looker (Google Cloud core) | looker.googleapis.com |
| Managed Service for Apache Airflow | composer.googleapis.com |
| Managed Service for Apache Spark | dataproc.googleapis.com |
| Memorystore for Redis | redis.googleapis.com |
| Memorystore for Redis Cluster | redis.googleapis.com |
| Memorystore for Valkey | memorystore.googleapis.com |
| Parameter Manager | parametermanager.googleapis.com |
| Pub/Sub | pubsub.googleapis.com |
| Secret Manager | secretmanager.googleapis.com |
| Secure Source Manager | securesourcemanager.googleapis.com |
| Security Command Center | securitycenter.googleapis.com |
| Spanner | spanner.googleapis.com |
| המרת דיבור לטקסט (STT) | speech.googleapis.com |
| חיפוש וקטור | aiplatform.googleapis.com |
| Vertex AI | aiplatform.googleapis.com |
| מכונות של Vertex AI Workbench | notebooks.googleapis.com |
מדיניות הארגון ל-CMEK ו-Storage Transfer Service
ל-Storage Transfer Service אין שילוב של CMEK, אבל אפשר להשתמש בו עם כללי מדיניות של הארגון בנושא CMEK. אם אתם משתמשים ב-Storage Transfer Service ורוצים להשתמש ב-CMEK כדי להגן על פרטי הכניסה למסד הנתונים שמאוחסנים ב-Secret Manager, אתם צריכים להוסיף גם את storagetransfer.googleapis.com וגם את secretmanager.googleapis.com לאילוץ constraints/gcp.restrictNonCmekServices. מידע נוסף זמין במסמכי התיעוד של Storage Transfer Service בנושא CMEK.
חריגים באכיפה לפי סוג המשאב
האילוצים של מדיניות הארגון בנוגע ל-CMEK נאכפים כשיוצרים משאב חדש, או כשמשנים (אם אפשר) את המפתח של Cloud KMS במשאב קיים. בדרך כלל, הם נאכפים על כל סוגי המשאבים של שירות שתומכים ב-CMEK, ורק על סמך ההגדרות של המשאב. הנה כמה חריגים בולטים:
| סוג המשאב | החרגה מהאכיפה |
|---|---|
bigquery.googleapis.com/Dataset |
אכיפה חלקית על מפתח Cloud KMS שמוגדר כברירת מחדל של מערך הנתונים (gcp.restrictCmekCryptoKeyProjects בלבד)
|
bigquery.googleapis.com/Job |
משימות שאילתה בלבד: נאכף על מפתח Cloud KMS שסופק עם השאילתה או על ברירת המחדל מהפרויקט לחיוב. ראו גם הגדרה נפרדת של מפתח Cloud KMS שמוגדר כברירת מחדל בפרויקט. |
bigquerydatatransfer.googleapis.com/TransferConfig |
הגדרות ההעברה משתמשות בשם השירות של שירות העברת הנתונים (bigquerydatatransfer.googleapis.com) לאילוצים של מדיניות הארגון בנוגע ל-CMEK. |
container.googleapis.com/Cluster |
(גרסת טרום-השקה (Preview)) נאכפת רק במפתח Cloud KMS לדיסק האתחול של הצומת, ולא נאכפת בסודות בשכבת האפליקציה |
logging.googleapis.com/LogBucket |
נאכף על קטגוריות של יומנים שנוצרו באופן מפורש. ראו גם הגדרה נפרדת שנדרשת כדי להבטיח תאימות של קטגוריות מובנות של יומנים |
storage.googleapis.com/Bucket |
אכיפה על מפתח Cloud KMS שמוגדר כברירת מחדל לקטגוריה |
storage.googleapis.com/Object |
נאכף בנפרד מהקטגוריה. ראו גם הגדרה נפרדת של מפתח ברירת המחדל של Cloud KMS בקטגוריה |
תצורות לדוגמה
בדוגמאות להגדרות, נניח שהיררכיית המשאבים של הארגון לדוגמה היא:

דרישה לשימוש ב-CMEK והגבלת המפתחות לפרויקט
נניח שאתם רוצים לדרוש הגנה באמצעות CMEK לכל המשאבים של Cloud Storage ב-projects/5, ולוודא שאפשר להשתמש רק במפתחות שמגיעים מ-projects/4.
כדי לדרוש הגנת CMEK לכל המשאבים החדשים של Cloud Storage, צריך להשתמש בהגדרה הבאה של מדיניות הארגון:
- מדיניות הארגון:
constraints/gcp.restrictNonCmekServices - הקישור מתבצע בכתובת:
projects/5 - סוג המדיניות: דחייה
- ערך המדיניות:
storage.googleapis.com
כדי להבטיח שייעשה שימוש רק במפתחות מ-projects/4, צריך להשתמש בהגדרות הבאות:
- מדיניות הארגון:
constraints/gcp.restrictCmekCryptoKeyProjects - הקישור מתבצע בכתובת:
projects/5 - סוג המדיניות: אישור
- ערך המדיניות:
projects/4
דרישה ל-CMEK והגבלת המפתחות לתיקייה מסוימת
לחלופין, נניח שאתם מתכננים להוסיף בעתיד פרויקטים של Cloud KMS ב-folders/2, ואתם רוצים לדרוש שימוש ב-CMEK באופן נרחב יותר ב-folders/3. בתרחיש הזה, צריך הגדרות קצת שונות.
כדי לדרוש הגנה נוספת באמצעות CMEK למשאבים חדשים של Cloud SQL ו-Cloud Storage בכל מקום ב-folders/3:
- מדיניות הארגון:
constraints/gcp.restrictNonCmekServices - הקישור מתבצע בכתובת:
folders/3 - סוג המדיניות: דחייה
- ערכי המדיניות:
sqladmin.googleapis.com,storage.googleapis.com
כדי לוודא שמשתמשים רק במפתחות מפרויקטים של Cloud KMS ב-folders/2:
- מדיניות הארגון:
constraints/gcp.restrictCmekCryptoKeyProjects - הקישור מתבצע בכתובת:
folders/3 - סוג המדיניות: אישור
- ערך המדיניות:
under:folders/2
דרישה לשימוש ב-CMEK בארגון
כדי לדרוש שימוש ב-CMEK בכל מקום בארגון (בשירותים נתמכים), מגדירים את האילוץ constraints/gcp.restrictNonCmekServices עם ההגדרה הבאה:
- מדיניות הארגון:
constraints/gcp.restrictNonCmekServices - הקישור מתבצע בכתובת:
organizations/1 - סוג המדיניות: דחייה
- ערכי המדיניות: (כל השירותים הנתמכים)
מגבלות
אם אתם משתמשים במסוף Google Cloud כדי ליצור משאב, יכול להיות שתבחינו שאתם לא יכולים להשתמש באפשרויות הצפנה אחרות מלבד CMEK כש-constraints/gcp.restrictNonCmekServices מוגדר לפרויקט ולשירות. ההגבלה של מדיניות הארגון ל-CMEK גלויה רק אם לחשבון הלקוח הוקצתה הרשאת ה-IAM orgpolicy.policy.get בפרויקט.
המאמרים הבאים
במאמר מבוא לשירות של מדיניות הארגון מוסבר על היתרונות ועל תרחישים נפוצים לדוגמה של מדיניות הארגון.
דוגמאות נוספות ליצירת מדיניות ארגון עם אילוצים מסוימים מופיעות במאמר שימוש באילוצים.