בדף הזה מוסבר איך להצפין תוכן שמאוחסן במאגרים באמצעות מפתחות הצפנה בניהול הלקוח (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 עם Cloud KMS Autokey
אתם יכולים ליצור מפתחות CMEK באופן ידני כדי להגן על המשאבים שלכם ב-Artifact Registry, או להשתמש ב-Cloud KMS Autokey. עם Autokey, מחזיקי מפתחות ומפתחות נוצרים לפי דרישה כדי לתמוך ביצירת משאבים ב-Artifact Registry. סוכני שירות שמשתמשים במפתחות לפעולות הצפנה ופענוח נוצרים אם הם לא קיימים כבר, ומקבלים את התפקידים הנדרשים של ניהול זהויות והרשאות גישה (IAM). מידע נוסף מופיע במאמר סקירה כללית על Autokey.
כדי להגדיר CMEK באופן ידני, אפשר לעיין במאמר יצירת מפתח והענקת הרשאות.
כדי להגדיר CMEK באמצעות Autokey, אפשר לעיין בקטע שימוש ב-Autokey ליצירת מפתחות בדף הזה.
מקצים מפתח CMEK כשיוצרים מאגר. אי אפשר לשנות את מנגנון ההצפנה של מאגר קיים. אם יש לכם מאגר בהצפנת CMEK, לא תוכלו לשנות את מנגנון ההצפנה כדי להשתמש במפתח הצפנהבבעלות Google ובניהול Google , או להקצות מפתח Cloud KMS אחר להצפנה.
מידע נוסף על CMEK באופן כללי, כולל מתי ולמה כדאי להפעיל אותו, זמין במאמר סקירה כללית על CMEK.
יצירת מפתח והענקת הרשאות
בהוראות הבאות מוסבר איך ליצור מפתח למאגר ולהעניק הרשאות להצפנה ולפענוח של נתוני המאגר באמצעות המפתח. אתם יכולים להשתמש במפתח שנוצר ישירות ב-Cloud KMS או במפתח שמנוהל באופן חיצוני וזמין באמצעות Cloud External Key Manager.
ב Google Cloud פרויקט שבו רוצים לנהל את המפתחות:
כדי ליצור אוסף מפתחות ומפתח, משתמשים באחת מהאפשרויות הבאות:
מיקום המפתח ב-Cloud KMS צריך להיות זהה למיקום המאגר של המאגר שאתם רוצים להצפין.
אם לא יצרתם מאגר בפרויקט 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:
- לוחצים על הצגת חלונית המידע.
- לוחצים על הוספת חבר.
- מוסיפים את חשבון השירות של Artifact Registry. חשבון השירות הוא service-PROJECT-NUMBER@gcp-sa-artifactregistry.iam.gserviceaccount.com, כאשר PROJECT-NUMBER הוא מספר הפרויקט של פרויקט Google Cloud שבו פועל Artifact Registry.
- ברשימת התפקידים Select a role בוחרים באפשרות Cloud KMS > Cloud KMS CryptoKey Encrypter/Decrypter.
- לוחצים על SAVE.
חוזרים על השלב הקודם כדי להעניק גישה לחשבון שייצור מאגרי קוד.
חוזרים לדף ניהול מפתחות ובוחרים שוב את המפתח.
לוחצים על הצגת חלונית המידע. התפקידים אמורים להופיע בעמודה תפקיד/חבר.
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.iam.gserviceaccount.com \ --role roles/cloudkms.cryptoKeyEncrypterDecrypterכאשר:
- PROJECT הוא מזהה הפרויקט שמכיל את המפתח.
- KEY הוא שם המפתח.
- LOCATION הוא המיקום של המפתח. מיקום המפתח צריך להיות זהה למיקום המאגר של המאגר שאתם רוצים להצפין.
- KEYRING הוא השם של אוסף המפתחות.
- PROJECT-NUMBER הוא מספר הפרויקט של הפרויקט Google Cloud שבו פועל Artifact Registry.
חוזרים על השלב הקודם כדי להעניק גישה לחשבון שייצור מאגרי קוד.
מידע נוסף על הפקודה הזו זמין במאמר gcloud kms keys add-iam-policy-binding.
בשלב הבא, יוצרים מאגר ומציינים את המפתח שבו רוצים להשתמש להצפנה.
שימוש ב-Autokey ליצירת מפתחות
Autokey יוצר מפתח חדש באותו מיקום של המאגר.
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות לשימוש ב-Autokey ליצירת מאגרי מידע מוגנים, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים בתיקייה או בפרויקט:
- משתמש ב-Cloud KMS Autokey (
roles/cloudkms.autokeyUser) - אדמין ב-Artifact Registry (
roles/artifactregistry.admin)
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
יצירת מפתחות
לפני שיוצרים מפתחות באמצעות Autokey, צריך להפעיל את Cloud KMS Autokey.
פותחים את הדף Repositories במסוף Google Cloud .
לוחצים על Create Repository (יצירת מאגר).
ממלאים את שדות החובה והאופציונליים במאגר הרגיל, הווירטואלי או הווירטואלי.
בקטע Encryption, בוחרים באפשרות Cloud KMS with Autokey automated management.
לוחצים על יצירה.
הסרת הגישה
יש כמה דרכים להסיר גישה למאגר מוצפן באמצעות 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 בפרויקט, Artifact Registry מנסה ליצור באופן אוטומטי נושא Pub/Sub עם מזהה הנושא gcr באמצעות מפתחות הצפנה שבבעלות ובניהול של Google . Google Cloud עם זאת, אם Pub/Sub API נמצא ברשימת המדיניות Deny של האילוץ constraints/gcp.restrictNonCmekServices, המערכת לא תיצור את הנושא ב-Pub/Sub. בתרחיש הזה, אתם צריכים ליצור את הנושא gcr עם הצפנה באמצעות CMEK. מידע נוסף זמין בהוראות להצפנת נושאים ב-Pub/Sub.
מידע נוסף על הגדרת מדיניות הארגון זמין במאמר בנושא מדיניות הארגון לגבי CMEK.