בדף הזה מוסבר איך להצפין תוכן שמאוחסן במאגרים באמצעות מפתחות הצפנה בניהול הלקוח (CMEK).
סקירה כללית
כברירת מחדל, Artifact Registry מצפין את התוכן של הלקוחות במצב מנוחה. Artifact Registry מטפל בהצפנה בשבילכם בלי שתצטרכו לבצע פעולות נוספות. האפשרות הזו נקראת הצפנת ברירת המחדל של Google.
אם אתם רוצים לשלוט במפתחות ההצפנה, אתם יכולים להשתמש במפתחות הצפנה בניהול הלקוח (CMEK) ב-Cloud KMS עם שירותים שמשולבים עם CMEK, כולל Artifact Registry. שימוש במפתחות Cloud KMS מאפשר לכם לשלוט ברמת ההגנה, במיקום, בלוח הזמנים של הרוטציה, בשימוש ובהרשאות הגישה, ובגבולות הקריפטוגרפיים. בנוסף, באמצעות Cloud KMS תוכלו לצפות ביומני ביקורת ולשלוט במחזורי החיים של המפתחות. במקום ש-Google תהיה הבעלים של מפתחות ההצפנה של המפתחות (KEK) הסימטריים שמגנים על הנתונים שלכם ותנהל אותם, אתם שולטים במפתחות האלה ומנהלים אותם ב-Cloud KMS.
אחרי שמגדירים את המשאבים עם CMEK, חוויית הגישה למשאבים ב-Artifact Registry דומה לשימוש בהצפנה שמוגדרת כברירת מחדל ב-Google. מידע נוסף על אפשרויות ההצפנה זמין במאמר מפתחות הצפנה בניהול הלקוח (CMEK).
מקצים מפתח CMEK כשיוצרים מאגר. אי אפשר לשנות את מנגנון ההצפנה של מאגר קיים. אם יש לכם מאגר בהצפנת CMEK, לא תוכלו לשנות את מנגנון ההצפנה כדי להשתמש במפתח הצפנהבבעלות Google ובניהול Google , או להקצות מפתח Cloud KMS אחר להצפנה.
מידע נוסף על CMEK באופן כללי, כולל מתי ולמה כדאי להפעיל אותו, זמין בסקירה הכללית על CMEK.
יצירת מפתח והענקת הרשאות
בהוראות הבאות מוסבר איך ליצור מפתח למאגר ולהעניק הרשאות להצפנה ולפענוח של נתוני המאגר באמצעות המפתח. אתם יכולים להשתמש במפתח שנוצר ישירות ב-Cloud KMS או במפתח שמנוהל באופן חיצוני וזמין באמצעות Cloud External Key Manager.
ב Google Cloud פרויקט שבו רוצים לנהל את המפתחות:
כדי ליצור אוסף מפתחות ומפתח, משתמשים באחת מהאפשרויות הבאות:
אם לא יצרתם מאגר בפרויקט Artifact Registry, חשבון השירות של Artifact Registry לא קיים. כדי ליצור את חשבון השירות, מריצים את הפקודה הבאה:
gcloud beta services identity create --service=artifactregistry.googleapis.com --project=PROJECTמחליפים את PROJECT במזהה הפרויקט שבו פועל Artifact Registry.
מקצים לחשבון השירות של Artifact Registry את התפקיד CryptoKey Encrypter/Decrypter ב-IAM (
roles/cloudkms.cryptoKeyEncrypterDecrypter). צריך לתת את ההרשאה הזו למפתח שיצרתם.המסוף
עוברים לדף מפתחות קריפטוגרפיים.
בוחרים את המפתח שיצרתם.
נותנים גישה לחשבון השירות של Artifact Registry:
- אם חלונית המידע מוסתרת, לוחצים על Show info panel.
- לוחצים על הענקת גישה.
- בשדה New principals, מוסיפים את חשבון השירות של Artifact Registry. חשבון השירות הוא service-PROJECT-NUMBER@gcp-sa-artifactregistry., כאשר PROJECT-NUMBER הוא מספר הפרויקט של פרויקט Google Cloud שבו פועל Artifact Registry.
- ברשימת התפקידים Select a role בוחרים באפשרות Cloud KMS > Cloud KMS CryptoKey Encrypter/Decrypter.
- לוחצים על Save.
חוזרים על השלב הקודם כדי להעניק גישה לחשבון שייצור מאגרי קוד.
חוזרים לדף ניהול מפתחות ובוחרים שוב את המפתח.
אם חלונית המידע מוסתרת, לוחצים על Show info panel. אתה אמור לראות תפקידים בקטע תפקיד/מנהל/ת.
gcloud
הפעל את הפקודה הבאה כדי להעניק גישה לחשבון השירות Artifact Registry:
gcloud kms keys add-iam-policy-binding [--project=PROJECT] \ KEY --location LOCATION --keyring=KEYRING \ --member serviceAccount:service-PROJECT-NUMBER@gcp-sa-artifactregistry. \ --role roles/cloudkms.cryptoKeyEncrypterDecrypterכאשר:
- PROJECT הוא מזהה הפרויקט שמכיל את המפתח.
- KEY הוא שם המפתח.
- LOCATION הוא המיקום של המפתח.
- KEYRING הוא השם של אוסף המפתחות.
- PROJECT-NUMBER הוא מספר הפרויקט של הפרויקט Google Cloud שבו פועל Artifact Registry.
חוזרים על השלב הקודם כדי להעניק גישה לחשבון שייצור מאגרי קוד.
מידע נוסף על הפקודה הזו זמין במאמר gcloud kms keys add-iam-policy-binding.
בשלב הבא, יוצרים מאגר ומציינים את המפתח שבו רוצים להשתמש להצפנה.
הסרת הגישה
יש כמה דרכים להסיר גישה למאגר מוצפן באמצעות CMEK:
- מבטלים את התפקיד Cloud KMS CryptoKey Encrypter/Decrypter בחשבון השירות של Artifact Registry באמצעות אחת מהשיטות הבאות:
- השבתה זמנית של מפתח הצפנה בניהול הלקוח
- השמדה סופית של מפתח ה-CMEK
מומלץ לבטל את ההרשאות מחשבון השירות של Artifact Registry לפני השבתה או מחיקה של מפתח. שינויים בהרשאות מתבצעים תוך שניות, כך שאפשר לראות את ההשפעות של השבתה או מחיקה של מפתח.
כשמשביתים או משמידים את מפתח ההצפנה של מאגר, מאבדים את היכולת להציג או לאחזר נתוני ארטיפקטים. לא תהיה יותר גישה לכל נתוני הארטיפקטים שמאוחסנים במאגר, כולל ארטיפקטים מובנים, נתונים בינאריים שרירותיים (blobs) ומניפסטים כמו מניפסט של Docker או קובץ packument של npm.
משתמשים עם התפקיד 'קריאה ב-Artifact Registry' (roles/artifactregistry.reader) או התפקיד 'צפייה' (roles/artifactregistry.viewer) עדיין יכולים לראות מטא-נתונים של ארטיפקטים, כמו שם הארטיפקט, הגרסה או התג.
משתמשים עם תפקיד אדמין ב-Artifact Registry (roles/artifactregistry.admin) או תפקיד בעלים (roles/owner) יכולים למחוק את המאגר.
מדיניות הארגון ל-CMEK
Artifact Registry תומך באילוצים של מדיניות הארגון שיכולים לדרוש הגנה באמצעות CMEK.
כללי המדיניות יכולים להגביל את השימוש במפתחות CryptoKey ב-Cloud KMS להגנה באמצעות CMEK.
אם Artifact Registry API מופיע ב
Denyרשימת השירותים במדיניות של האילוץconstraints/gcp.restrictNonCmekServices, Artifact Registry מסרב ליצור מאגרי מידע חדשים שלא מוגנים באמצעות CMEK.כשמגדירים את
constraints/gcp.restrictCmekCryptoKeyProjects, Artifact Registry יוצר מאגרי מידע שמוגנים באמצעות CMEK, ומוגנים באמצעות CryptoKey מפרויקט, מתיקייה או מארגון מורשים.
Pub/Sub תומך באותן מגבלות. כשמפעילים את Artifact Registry API בפרויקט Google Cloud , Artifact Registry מנסה ליצור באופן אוטומטי נושא Pub/Sub עם מזהה הנושא gcr באמצעות מפתחות הצפנה שבבעלות ובניהול של Google עם זאת, אם Pub/Sub API נמצא ברשימת המדיניות Deny של האילוץ constraints/gcp.restrictNonCmekServices, המערכת לא תיצור את הנושא ב-Pub/Sub. בתרחיש הזה, אתם צריכים ליצור את הנושא gcr עם הצפנה באמצעות CMEK. מידע נוסף זמין בהוראות להצפנת נושאים ב-Pub/Sub.
למידע נוסף על הגדרת מדיניות ארגון, ראו מדיניות ארגון של CMEK.
מה השלב הבא?
- יצירת מאגר מוצפן באמצעות CMEK
- מידע נוסף על CMEK