הדף הזה מתייחס ל-Apigee, אבל לא ל-Apigee Hybrid.
לעיון במסמכי התיעוד של
Apigee Edge
בקטע הזה מתוארים סוגים של מפתחות הצפנה ומוסבר איך ליצור אותם.
במהלך תהליך ההגדרה של Apigee, יוצרים את מפתחות ההצפנה הבאים של Cloud Key Management Service:
| סוג המפתח | מועד היצירה | תיאור |
|---|---|---|
| מפתח הצפנה של מישור הבקרה |
מסוףGoogle Cloud : ממשק שורת הפקודה (CLI): |
כשמשתמשים ב שמירת נתונים באזור מסוים, מערכת Apigee משתמשת במפתח הזה כדי להצפין את נתוני Analytics שמאוחסנים ב-BigQuery בתוך פרויקט הדייר. הצפנה של פרוקסי ל-API, שרתי יעד, חנויות אישורים ומאגרי מפתחות, נתונים אנליטיים וכל דבר אחר שמשותף בין סביבות זמן ריצה. מערכת Apigee תבקש מכם לספק שני מפתחות CMEK של מישור הבקרה. המפתח הזה ו מפתח להצפנת נתונים של צרכן API. המיקום של מפתח ההצפנה של מישור הבקרה צריך להיות זהה למיקום של מישור הבקרה. |
| מפתח להצפנת נתונים של צרכן API |
מסוףGoogle Cloud : ממשק שורת הפקודה (CLI): |
כשמשתמשים ב שמירת נתונים באזור מסוים, מערכת Apigee צריכה מפתח אזורי יחיד, בנוסף ל מפתח ההצפנה של מישור הבקרה, שמשמש לשירותים שזמינים רק באזור יחיד. לדוגמה, Dataflow ו-Cloud SQL. המיקום של המפתח להצפנת נתונים של צרכן ה-API צריך להיות במיקום של מישור הבקרה. |
| מפתח הצפנה של מסד הנתונים בזמן ריצה |
מסוףGoogle Cloud : ממשק שורת הפקודה (CLI): |
הצפנה של נתוני אפליקציות כמו מכונות KVM, מטמון וסודות לקוח, שמאוחסנים במסד הנתונים. יש מפתח הצפנה אחד של מסד נתונים בזמן ריצה לכל ארגון – כל המופעים או האזורים בארגון חולקים את אותו מפתח הצפנה של מסד נתונים בזמן ריצה.
מפתח ההצפנה של מסד הנתונים בזמן הריצה תומך בכל המיקומים של Cloud KMS שתומכים ב-Cloud HSM וב-Cloud EKM. Google ממליצה להשתמש ב
מיקום רב-אזורי (כמו כשמשתמשים ב מיקום אחסון הנתונים, המיקום של מפתח ההצפנה של מסד הנתונים בזמן הריצה צריך להיות במיקום של מישור הבקרה. |
| מפתח להצפנת דיסק |
מסוףGoogle Cloud : ממשק שורת הפקודה (CLI): |
הצפנה של נתוני מופע בזמן ריצה לפני שהם נכתבים לדיסק. סוגי הנתונים המוצפנים כוללים מערכת לניהול מפתחות (KMS), מיפויים של מפתח וערך (KVM), הגדרות מכסות, מאגרי נתונים ומונים, וכל הנתונים שנשמרים במטמון. נתוני KMS כוללים מוצרי API, מפתחים, אפליקציות למפתחים, טוקנים של OAuth (כולל טוקנים של גישה, טוקנים של רענון וקודי הרשאה) ומפתחות API. המפתח הזה נמצא באותו אזור כמו מופע זמן הריצה. כשיוצרים מפתח חדש, צריך לוודא שהמיקום של המפתח זהה למיקום של מופע זמן הריצה. לכל שילוב של מופע ואזור יש מפתח הצפנה משלו לדיסק. |
נקודות עיקריות
כשיוצרים את מפתחות ההצפנה של הדיסק ושל מסד הנתונים של זמן הריצה, חשוב לזכור את הדברים הבאים:
- המיקום של מפתח ההצפנה של מסד הנתונים של זמן הריצה של Apigee תומך בכל המיקומים של Cloud KMS שתומכים ב-Cloud HSM וב-Cloud EKM.
- המיקום של מפתח הצפנת הדיסק צריך להיות זהה למיקום של מופע זמן הריצה שבו נעשה שימוש במפתח.
- אחרי שמגדירים את המיקום של המפתחות, אי אפשר לשנות אותו.
- כל המפתחות צריכים להיות במחזיק מפתחות.
- מפתחות מסוגים שונים צריכים להיות באוספי מפתחות נפרדים. אי אפשר להוסיף מפתחות להצפנת דיסק לאותו אוסף מפתחות שבו נמצא המפתח להצפנת מסד הנתונים של זמן הריצה.
-
המפתחות צריכים לכלול
purpose. אם משתמשים בשורת הפקודה כדי ליצור את המפתחות החדשים, מגדירים אתpurposeל-encryption. אם משתמשים במסוף Google Cloud , בוחרים באפשרות Symmetric encrypt/decrypt (הצפנה/פענוח סימטריים) למטרה. - המפתחות מוגדרים על ידי נתיב מפתח, שמשתמש בתבנית הבאה:
projects/PROJECT_ID/locations/KEY_LOCATION/keyRings/KEYRING_NAME/cryptoKeys/KEY_NAME
הצגת מפתחות קיימים
אם כבר יצרתם מפתחות הצפנה חדשים של Cloud KMS עבור Apigee, אתם יכולים להשתמש בהם במקום ליצור מפתחות חדשים במהלך ההגדרה.
כדי להציג רשימה של כל מפתחות ה-KMS באוסף מפתחות:
מריצים את הפקודה
gcloud kms keys list:
gcloud kms keys list --keyring KEY_RING_NAME --location KEY_RING_LOCATION
מחליפים את מה שכתוב בשדות הבאים:
-
KEY_RING_NAME: השם של אוסף המפתחות. לדוגמה:
my-key-ring. -
KEY_RING_LOCATION: המיקום הפיזי של מחזיק המפתחות, לדוגמה
us-west1.
אפשר גם לראות את המפתחות במסוף Google Cloud .
יצירת מפתחות חדשים בשורת הפקודה
אפשר ליצור אוסף מפתחות ומפתח בשורת הפקודה או במסוף Google Cloud .
לכל סוג של מפתח צריך להיות מחזיק מפתחות משלו. לדוגמה, מפתחות ההצפנה של הדיסק יכולים להיות מאוחסנים באוסף מפתחות אחד, אבל מפתח ההצפנה של מסד הנתונים של זמן הריצה חייב להיות מאוחסן באוסף מפתחות נפרד.
בשלבים הבאים מוסבר איך ליצור מחזיק מפתחות ומפתח, ואיך להעניק לסוכן השירות של Apigee גישה לשימוש במפתח החדש. יוצרים מחזיקי מפתחות ומפתחות למישור הבקרה (אם משתמשים במיקום הנתונים), למסד הנתונים של זמן הריצה ולדיסק של זמן הריצה.
-
יוצרים מחזיק מפתחות חדש באמצעות הפקודה
gcloud kms keyrings create:מישור הבקרה
כשמפעילים data residency, צריך ליצור מחזיק מפתחות למישור הבקרה ומחזיק מפתחות נוסף לאזור הגיאוגרפי לאחסון נתוני הצרכנים.
gcloud kms keyrings create CONTROL_PLANE_KEY_RING_NAME \ --location CONTROL_PLANE_LOCATION \ --project PROJECT_ID
gcloud kms keyrings create CONSUMER_DATA_KEY_RING_NAME \ --location CONSUMER_DATA_REGION \ --project PROJECT_ID
מחליפים את מה שכתוב בשדות הבאים:
- CONTROL_PLANE_KEY_RING_NAME: השם של אוסף המפתחות במישור הבקרה.
- CONTROL_PLANE_LOCATION: המיקום הפיזי שבו יאוחסנו נתונים ממישור הבקרה של Apigee.
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
- CONSUMER_DATA_KEY_RING_NAME: השם של אוסף המפתחות של נתוני הלקוח.
- CONSUMER_DATA_REGION: אזור משנה של אזור מישור הבקרה. חובה לציין גם את CONTROL_PLANE_LOCATION וגם את CONSUMER_DATA_REGION.
מסד נתונים בזמן ריצה
gcloud kms keyrings create RUNTIMEDB_KEY_RING_NAME \ --location RUNTIMEDB_KEY_LOCATION \ --project PROJECT_ID
מחליפים את מה שכתוב בשדות הבאים:
- RUNTIMEDB_KEY_RING_NAME: השם של מחזיק מפתחות מסד הנתונים שאתם יוצרים.
- RUNTIMEDB_KEY_LOCATION: המיקום הפיזי של אוסף המפתחות של מסד הנתונים.
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
המיקום של מפתח ההצפנה של Apigee תומך בכל המיקומים של Cloud KMS שתומכים ב-Cloud HSM וב-Cloud EKM.
דיסק זמן ריצה
gcloud kms keyrings create RUNTIMEDISK_KEY_RING_NAME \ --location RUNTIMEDISK_KEY_LOCATION \ --project PROJECT_ID
מחליפים את מה שכתוב בשדות הבאים:
- RUNTIMEDISK_KEY_RING_NAME: השם של אוסף מפתחות הדיסק שאתם יוצרים.
- RUNTIMEDISK_KEY_LOCATION: המיקום הפיזי של אוסף המפתחות של הדיסק.
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
מוודאים שאוסף המפתחות של הדיסק מוגדר לאותו מיקום כמו המופע. לכל מופע ולכל מחזיק מפתחות צריך להיות מיקום משלו.
gcloud kms keyrings list \ --location \ --project $PROJECT_IDgcloud kms keyrings describe $DISK_KEY_RING_NAME \ --location \ --project $PROJECT_ID -
יוצרים מפתח באמצעות הפקודה
kms keys create:מישור הבקרה
כשמפעילים data residency, צריך ליצור מחזיק מפתחות למישור הבקרה ומחזיק מפתחות נוסף לאזור הגיאוגרפי לאחסון נתוני הצרכנים.
gcloud kms keys create CONTROL_PLANE_KEY_NAME \ --keyring CONTROL_PLANE_KEY_RING_NAME \ --location CONTROL_PLANE_LOCATION \ --purpose "encryption" \ --project PROJECT_ID
gcloud kms keys create CONSUMER_DATA_KEY_NAME \ --keyring CONSUMER_DATA_KEY_RING_NAME \ --location CONSUMER_DATA_REGION \ --purpose "encryption" \ --project PROJECT_ID
מחליפים את מה שכתוב בשדות הבאים:
- CONTROL_PLANE_KEY_NAME: שם המפתח של מישור הבקרה.
- CONTROL_PLANE_KEY_RING_NAME: השם של אוסף המפתחות במישור הבקרה.
- CONTROL_PLANE_LOCATION: המיקום הפיזי שבו יאוחסנו נתונים ממישור הבקרה של Apigee.
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
- CONSUMER_DATA_KEY_NAME: השם של מפתח נתוני הצרכן.
- CONSUMER_DATA_KEY_RING_NAME: השם של אוסף המפתחות של נתוני הלקוח.
- CONSUMER_DATA_REGION: אזור משנה של אזור מישור הבקרה. חובה לציין גם את CONTROL_PLANE_LOCATION וגם את CONSUMER_DATA_REGION.
מסד נתונים בזמן ריצה
gcloud kms keys create RUNTIMEDB_KEY_NAME \ --keyring RUNTIMEDB_KEY_RING_NAME \ --location RUNTIMEDB_KEY_LOCATION \ --purpose "encryption" \ --project PROJECT_ID
מחליפים את מה שכתוב בשדות הבאים:
- RUNTIMEDB_KEY_NAME: השם של מפתח מסד הנתונים שאתם יוצרים.
- RUNTIMEDB_KEY_RING_NAME: השם של מחזיק מפתחות מסד הנתונים שאתם יוצרים.
- RUNTIMEDB_KEY_LOCATION: המיקום הפיזי של אוסף המפתחות של מסד הנתונים.
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
דיסק זמן ריצה
gcloud kms keys create RUNTIMEDISK_KEY_NAME \ --keyring RUNTIMEDISK_KEY_RING_NAME \ --location RUNTIMEDISK_KEY_LOCATION \ --purpose "encryption" \ --project PROJECT_ID
מחליפים את מה שכתוב בשדות הבאים:
- RUNTIMEDISK_KEY_NAME: השם של מפתח הדיסק שאתם יוצרים.
- RUNTIMEDISK_KEY_RING_NAME: השם של אוסף מפתחות הדיסק שאתם יוצרים.
- RUNTIMEDISK_KEY_LOCATION: המיקום הפיזי של אוסף המפתחות של הדיסק.
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
הפקודה הזו יוצרת את המפתח ומוסיפה אותו לאוסף המפתחות.
כשמתייחסים למפתח, משתמשים במזהה המפתח.
-
נותנים לסוכן השירות של Apigee גישה לשימוש במפתח החדש באמצעות הפקודה
gcloud kms keys add-iam-policy-binding:מישור הבקרה
כשמפעילים data residency, צריך ליצור מחזיק מפתחות למישור הבקרה ומחזיק מפתחות נוסף לאזור הגיאוגרפי לאחסון נתוני הצרכנים.
gcloud kms keys add-iam-policy-binding CONTROL_PLANE_KEY_NAME \ --location CONTROL_PLANE_LOCATION \ --keyring CONTROL_PLANE_KEY_RING_NAME \ --member "serviceAccount:service-PROJECT_NUMBER@gcp-sa-apigee.iam.gserviceaccount.com" \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter \ --project PROJECT_ID
gcloud kms keys add-iam-policy-binding CONSUMER_DATA_KEY_NAME \ --location CONSUMER_DATA_REGION \ --keyring CONSUMER_DATA_KEY_RING_NAME \ --member "serviceAccount:service-PROJECT_NUMBER@gcp-sa-apigee.iam.gserviceaccount.com" \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter \ --project PROJECT_ID
מחליפים את מה שכתוב בשדות הבאים:
- CONTROL_PLANE_KEY_NAME: שם המפתח של מישור הבקרה.
- CONTROL_PLANE_LOCATION: המיקום הפיזי שבו יאוחסנו נתונים ממישור הבקרה של Apigee.
- CONTROL_PLANE_KEY_RING_NAME: השם של אוסף המפתחות במישור הבקרה.
- PROJECT_NUMBER: Google Cloud מספר הפרויקט.
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
- CONSUMER_DATA_KEY_NAME: השם של מפתח נתוני הצרכן.
- CONSUMER_DATA_REGION: אזור משנה של אזור מישור הבקרה. חובה לציין גם את CONTROL_PLANE_LOCATION וגם את CONSUMER_DATA_REGION.
- CONSUMER_DATA_KEY_RING_NAME: השם של אוסף המפתחות של נתוני הלקוח.
מסד נתונים בזמן ריצה
gcloud kms keys add-iam-policy-binding RUNTIMEDB_KEY_NAME \ --location RUNTIMEDB_KEY_LOCATION \ --keyring RUNTIMEDB_KEY_RING_NAME \ --member serviceAccount:service-PROJECT_NUMBER@gcp-sa-apigee.iam.gserviceaccount.com \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter \ --project PROJECT_ID
מחליפים את מה שכתוב בשדות הבאים:
- RUNTIMEDB_KEY_NAME: השם של מפתח מסד הנתונים שאתם יוצרים.
- RUNTIMEDB_KEY_RING_NAME: השם של מחזיק מפתחות מסד הנתונים שאתם יוצרים.
- RUNTIMEDB_KEY_LOCATION: המיקום הפיזי של אוסף המפתחות של מסד הנתונים.
- PROJECT_NUMBER: Google Cloud מספר הפרויקט.
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
דיסק זמן ריצה
gcloud kms keys add-iam-policy-binding RUNTIMEDISK_KEY_NAME \ --location RUNTIMEDISK_KEY_LOCATION \ --keyring RUNTIMEDISK_KEY_RING_NAME \ --member serviceAccount:service-PROJECT_NUMBER@gcp-sa-apigee.iam.gserviceaccount.com \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter \ --project PROJECT_ID
מחליפים את מה שכתוב בשדות הבאים:
- RUNTIMEDISK_KEY_NAME: השם של מפתח הדיסק שאתם יוצרים.
- RUNTIMEDISK_KEY_RING_NAME: השם של אוסף מפתחות הדיסק שאתם יוצרים.
- RUNTIMEDISK_KEY_LOCATION: המיקום הפיזי של אוסף המפתחות של הדיסק.
- PROJECT_NUMBER: Google Cloud מספר הפרויקט.
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
הפקודה הזו מקשרת את המפתח לסוכן השירות של Apigee.
אם הבקשה הזו תושלם בהצלחה,
gcloudישיב עם משהו דומה לזה:Updated IAM policy for key [runtime]. bindings: - members: - serviceAccount:service-1234567890@gcp-sa-apigee.iam.gserviceaccount.com role: roles/cloudkms.cryptoKeyEncrypterDecrypter etag: BwWqgEuCuwk= version: 1
אם מופיעה שגיאה כמו זו:
INVALID_ARGUMENT: Role roles/cloudkms.cryptokms.cryptoKeyEncrypterDecrypter is not supported for this resource.
חשוב לוודא שהשתמשתם במספר הפרויקט ולא בשם הפרויקט בכתובת האימייל של חשבון השירות.
כדי לוודא שהמפתח משויך לסוכן השירות של Apigee:
gcloud kms keys get-iam-policy $DISK_KEY_NAME \ --keyring $DISK_KEY_RING_NAME \ --location \ --project $PROJECT_IDgcloud kms keys describe $DISK_KEY_NAME \ --keyring $DISK_KEY_RING_NAME \ --location \ --project $PROJECT_ID
השם של מחזיק המפתחות צריך להיות ייחודי בארגון. אם יוצרים אזורים נוספים, השמות של אוספי המפתחות באזורים האלה לא יכולים להיות זהים לשמות של אוספי מפתחות קיימים.
יצירת מפתחות חדשים באמצעות מסוף Google Cloud
אפשר ליצור מפתחות חדשים באמצעות המסוף, כמו שמתואר במאמר יצירת מפתח הצפנה סימטרי.
כשמשתמשים במסוף כדי ליצור מפתח חדש:
- למפתח ההצפנה של מסד הנתונים בזמן הריצה, מגדירים את המיקום לכל מיקום ב-Cloud KMS שתומך ב-Cloud HSM וב-Cloud EKM. ממשק המשתמש לא מאפשר לבחור מיקום אחר למפתח, ולכן הוא יתאים למה שתבחרו במחזיק המפתחות.
- אחרי שיוצרים את המפתח, מקבלים את נתיב המפתח בחלונית Cryptographic keys. לשם כך, לוחצים על More לצד המפתח ואז בוחרים באפשרות Copy Resource Name.
קבלת מזהה המפתח
כשמפנים למשאב של Cloud Key Management Service באמצעות Cloud KMS API או Google Cloud CLI, משתמשים במזהה המשאב. אפשר לאתר את מזהה המפתח באמצעות הפקודה
gcloud kms keys list:
מישור הבקרה
כשמפעילים data residency, יש מחזיק מפתחות למישור הבקרה ועוד אחד לאזור הגיאוגרפי לאחסון נתונים של הצרכן.
gcloud kms keys list \ --location=CONTROL_PLANE_LOCATION \ --keyring=CONTROL_PLANE_KEY_RING_NAME \ --project=PROJECT_ID
gcloud kms keys list \ --location=CONSUMER_DATA_REGION \ --keyring=CONSUMER_DATA_KEY_RING_NAME \ --project=PROJECT_ID
תחביר מזהה המפתח (דומה לנתיב קובץ):
projects/PROJECT_ID/locations/CONTROL_PLANE_LOCATION/keyRings/CONTROL_PLANE_KEY_RING_NAME/cryptoKeys/CONTROL_PLANE_KEY_NAME
מסד נתונים בזמן ריצה
gcloud kms keys list \ --location=RUNTIMEDB_KEY_LOCATION \ --keyring=RUNTIMEDB_KEY_RING_NAME \ --project=PROJECT_ID
תחביר מזהה המפתח (דומה לנתיב קובץ):
projects/PROJECT_ID/locations/RUNTIMEDB_KEY_LOCATION/keyRings/RUNTIMEDB_KEY_RING_NAME/cryptoKeys/RUNTIMEDB_KEY_NAME
דיסק זמן ריצה
gcloud kms keys list \ --location=RUNTIMEDISK_KEY_LOCATION \ --keyring=RUNTIMEDISK_KEY_RING_NAME \ --project=PROJECT_ID
תחביר מזהה המפתח (דומה לנתיב קובץ):
projects/PROJECT_ID/locations/RUNTIMEDISK_KEY_LOCATION/keyRings/RUNTIMEDISK_KEY_RING_NAME/cryptoKeys/RUNTIMEDISK_KEY_NAME
לדוגמה:
NAME: projects/my-project/locations/us-west1/keyRings/my-key-ring/cryptoKeys/my-key PURPOSE: ENCRYPT_DECRYPT ALGORITHM: GOOGLE_SYMMETRIC_ENCRYPTION PROTECTION_LEVEL: SOFTWARE LABELS: PRIMARY_ID: 1 PRIMARY_STATE: ENABLED
אפשר גם לקבל את מזהה המפתח במסוף Google Cloud . מידע נוסף זמין במאמר קבלת מזהה משאב של Cloud KMS.