מידע על מפתחות ההצפנה של Apigee

הדף הזה רלוונטי ל-Apigee, אבל לא ל-Apigee Hybrid.

לעיון במסמכי התיעוד של Apigee Edge.

בקטע הזה מתוארים סוגי מפתחות ההצפנה ואיך ליצור אותם.

במאמר מעקב אחרי התקינות של EKM מוסבר איך לעקוב אחרי התקינות של EKM.

במהלך תהליך ההגדרה של Apigee, אתם יוצרים את מפתחות ההצפנה הבאים של Cloud Key Management Service:

סוג המפתח מתי נוצר תיאור
מפתח הצפנה של מישור הבקרה

מסוףGoogle Cloud :

ממשק שורת הפקודה (CLI):

כשמשתמשים ב מיקום אחסון הנתונים, Apigee משתמש במפתח הזה כדי להצפין את נתוני Analytics שמאוחסנים ב-BigQuery בפרויקט של הדייר (tenant).

הצפנה של שרתי proxy ל-API, שרתי יעד, מאגרי Truststore ומאגרי מפתחות, נתוני ניתוח וכל דבר אחר שמשותף בין סביבות זמן ריצה.

ב-Apigee תתבקשו לספק שני מפתחות CMEK למישור הבקרה. המפתח הזה ו מפתח להצפנת נתונים של צרכן API.

המיקום של מפתח ההצפנה של מישור הבקרה צריך להיות זהה למיקום של מישור הבקרה.

מפתח להצפנת נתונים של צרכן API

מסוףGoogle Cloud :

ממשק שורת הפקודה (CLI):

כשמשתמשים ב מיקום אחסון הנתונים, Apigee צריך מפתח לאזור יחיד, בנוסף ל מפתח ההצפנה של מישור הבקרה, שמשמש לשירותים שזמינים רק באזור יחיד. לדוגמה, Dataflow ו-Cloud SQL.

המיקום של מפתח ההצפנה של נתוני צרכן ה-API צריך להיות במיקום של מישור הבקרה.

מפתח הצפנה של מסד נתונים בזמן ריצה

מסוףGoogle Cloud :

ממשק שורת הפקודה (CLI):

הצפנת נתוני אפליקציות כמו מכונות KVM, מטמון וסודות לקוח, שמאוחסנים לאחר מכן במסד הנתונים.

לכל ארגון יש מפתח הצפנה אחד למסד הנתונים של זמן הריצה – כל המכונות והאזורים בארגון משתמשים באותו מפתח הצפנה למסד הנתונים של זמן הריצה.

מפתח ההצפנה של מסד הנתונים של סביבת זמן הריצה תומך בכל המיקומים של Cloud KMS שתומכים ב-Cloud HSM וב-Cloud EKM. כשיוצרים את המפתח, Google ממליצה להשתמש ב מיקום בכמה אזורים (כמו us או europe) או ב מיקום בשני אזורים (eur5,‏ nam4).

כשמשתמשים ב מיקום אחסון הנתונים, המיקום של מפתח ההצפנה של מסד הנתונים של סביבת זמן הריצה צריך להיות במיקום של מישור הבקרה.

מפתח להצפנת דיסק

מסוף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 גישה לשימוש במפתח החדש. יוצרים אוספי מפתחות ומפתחות למישור הבקרה (אם משתמשים במיקום אחסון הנתונים), למסד הנתונים של סביבת זמן הריצה ולדיסק של סביבת זמן הריצה.

  1. יוצרים אוסף מפתחות חדש באמצעות הפקודה gcloud kms keyrings create:

    מישור הבקרה

    כשהאפשרות מיקום אחסון הנתונים מופעלת, צריך ליצור אוסף מפתחות למישור הבקרה ואוסף מפתחות נוסף לאזור הגיאוגרפי של נתוני הצרכן.

    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_ID

    gcloud kms keyrings describe $DISK_KEY_RING_NAME \
    --location  \
    --project $PROJECT_ID
  2. השם של אוסף המפתחות חייב להיות ייחודי לארגון. אם יוצרים אזורים נוספים, השמות של אוספי המפתחות באזורים האלה לא יכולים להיות זהים לשמות של אוספי מפתחות קיימים.

  3. יוצרים מפתח באמצעות הפקודה kms keys create:

    מישור הבקרה

    כשהאפשרות מיקום אחסון הנתונים מופעלת, צריך ליצור אוסף מפתחות למישור הבקרה ואוסף מפתחות נוסף לאזור הגיאוגרפי של נתוני הצרכן.

    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 .

    הפקודה הזו יוצרת את המפתח ומוסיפה אותו לאוסף המפתחות.

    כשמפנים למפתח, משתמשים במזהה המפתח.

  4. נותנים לסוכן השירות של Apigee גישה לשימוש במפתח החדש באמצעות הפקודה gcloud kms keys add-iam-policy-binding:

    מישור הבקרה

    כשהאפשרות מיקום אחסון הנתונים מופעלת, צריך ליצור אוסף מפתחות למישור הבקרה ואוסף מפתחות נוסף לאזור הגיאוגרפי של נתוני הצרכן.

    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." \
    --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." \
    --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. \
      --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. \
      --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.
    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_ID

    gcloud 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:

מישור הבקרה

כשמפעילים את מיקום אחסון הנתונים, יש אוסף מפתחות למישור הבקרה ואוסף מפתחות נוסף לאזור הגיאוגרפי של נתוני הצרכן.

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.