העברת מפתחות חיצוניים

במסמך הזה מוסבר איך להעביר את המפתחות של Cloud EKM בין רמות ההגנה 'חיצוני דרך האינטרנט' (EXTERNAL) ו'חיצוני דרך VPC' (EXTERNAL_VPC). העברת מפתחות חיצוניים נתמכת רק ב-ה-CLI של gcloud וב-Cloud KMS API.

תרחישי שימוש בהעברה

כשמפתח מוגדר ברמת ההגנה EXTERNAL או EXTERNAL_VPC, אפשר לבצע את כל הפעולות הבאות:

  • מבצעים רוטציה למפתח ויוצרים גרסת מפתח חדשה עם רמת הגנה שונה של Cloud EKM מזו של מפתח האב. לדוגמה, אפשר לבצע רוטציה של מפתח ברמת ההגנה EXTERNAL כדי ליצור גרסה חדשה של מפתח ברמת ההגנה EXTERNAL_VPC.
  • עדכון גרסת מפתח לשימוש ברמת הגנה אחרת של Cloud EKM לאותו חומר מפתח. לדוגמה, אפשר לעדכן גרסת מפתח ברמת ההגנה EXTERNAL כדי להשתמש באותו חומר מפתח ובאותו משאב של גרסת מפתח ברמת ההגנה EXTERNAL_VPC.
  • מבצעים רוטציה של מפתח EXTERNAL_VPC או מעדכנים גרסת מפתח EXTERNAL_VPC כדי להשתמש בEkmConnection שונה ממפתח האב.

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

כשמעבירים גרסת מפתח מרמת ההגנה EXTERNAL לרמת ההגנה EXTERNAL_VPC, משייכים משאב EkmConnection לגרסת המפתח ומוסיפים את ekmConnectionKeyPath. כשמעבירים גרסה של מפתח מרמת ההגנה EXTERNAL_VPC לרמת ההגנה EXTERNAL, מוסיפים externalKeyUri כדי להחליף את EkmConnection ואת ekmConnectionKeyPath.

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

מעבר לחיצוני דרך VPC

מעבר מרמת ההגנה 'חיצונית דרך האינטרנט' לרמת ההגנה 'חיצונית דרך VPC' משפר את המהימנות של מפתחות Cloud EKM. אתם נהנים מהיתרונות של רשתות ענן וירטואלי פרטי (VPC), כולל בידוד חזק ותמיכה תפעולית משופרת.

אפשר גם לבצע מיגרציה בין הגדרות שונות של VPC – לדוגמה, לשדרג משימוש ב-VPC עם Partner Interconnect לשימוש ב-VPC עם Dedicated Interconnect.

לפני שמתחילים

כדי להעביר מפתחות Cloud EKM, אתם צריכים:

  1. Google Cloud פרויקט שבו מופעלים גם החיוב וגם Cloud KMS API.
  2. כדי לקבל את ההרשאה שנדרשת להעברת מפתחות חיצוניים, צריך לבקש מהאדמין לתת לכם את תפקיד ה-IAM‏ Cloud KMS Admin ‏ (roles/cloudkms.admin) בפרויקט או במשאב אב. כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

    התפקיד המוגדר מראש הזה כולל את ההרשאה cloudkms.cryptoKeys.update, שנדרשת להעברת מפתחות חיצוניים.

    יכול להיות שתוכלו לקבל את ההרשאה הזו גם בתפקידים בהתאמה אישית או בתפקידים אחרים שמוגדרים מראש.

  3. אם אתם עוברים לרמת ההגנה החיצונית דרך האינטרנט (EXTERNAL), אתם צריכים להגדיר את Cloud EKM דרך האינטרנט אם עוד לא עשיתם זאת.
  4. אם אתם מבצעים מיגרציה לרמת ההגנה החיצונית דרך VPC ‏ (EXTERNAL_VPC) או מבצעים מיגרציה לרשת VPC חדשה, אתם צריכים ליצור חיבור EKM אם עדיין לא עשיתם זאת.

יצירה של גרסה חדשה של מפתח חיצוני ב-VPC שמנוהל באופן ידני

gcloud

כדי להשתמש ב-Cloud KMS בשורת הפקודה, קודם צריך להתקין את הגרסה האחרונה של Google Cloud CLI או לשדרג אליה.

כדי ליצור גרסה חדשה של מפתח חיצוני ב-VPC במפתח Cloud EKM קיים, משתמשים בפקודה kms keys versions create עם הדגלים --protection-level, --crypto-key-backend ו---ekm-connection-key-path:

gcloud kms keys versions create \
    --key KEY_NAME \
    --keyring KEY_RING \
    --location LOCATION \
    --protection-level "external-vpc" \
    --crypto-key-backend EKM_CONNECTION_PATH \
    --ekm-connection-key-path EXTERNAL_KEY_PATH

מחליפים את מה שכתוב בשדות הבאים:

  • KEY_NAME: השם של המפתח.
  • KEY_RING: השם של אוסף המפתחות שמכיל את המפתח.
  • LOCATION: המיקום ב-Cloud KMS שבו נמצא אוסף המפתחות.
  • EKM_CONNECTION_PATH: מזהה המשאב של חיבור ה-EKM שרוצים להשתמש בו לגרסה החדשה של המפתח, לדוגמה: projects/PROJECT_ID/locations/LOCATION/ekmConnections/EKM_CONNECTION
  • EXTERNAL_KEY_PATH: הנתיב לגרסה החדשה של המפתח החיצוני מחיבור ה-EKM, לדוגמה v0/path/to/my/key.

אם מפתח ההורה הוא

אם המפתח הוא מפתח הצפנה סימטרי ואתם רוצים להגדיר את גרסת המפתח החדשה כגרסה הראשית, מוסיפים את הדגל --primary.

כדי לקבל מידע על כל הדגלים והערכים האפשריים, מריצים את הפקודה עם הדגל --help.

REST

בדוגמאות האלה נעשה שימוש ב-curl כלקוח HTTP כדי להדגים את השימוש ב-API. מידע נוסף על בקרת גישה זמין במאמר גישה ל-Cloud KMS API.

כדי ליצור גרסה חדשה של מפתח חיצוני ב-VPC במפתח Cloud EKM קיים, יוצרים גרסה חדשה של המפתח על ידי קריאה לשיטה CryptoKeyVersions.create.

curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME/cryptoKeyVersions" \
    --request "POST" \
    --header "authorization: Bearer TOKEN" \
    --header "content-type: application/json" \
    --data '{
            "protectionLevel": "EXTERNAL_VPC",
            "externalProtectionLevelOptions": {
              "ekmConnectionKeyPath": "EXTERNAL_KEY_PATH",
              "ekmConnectionBackendOverride": "EKM_CONNECTION_PATH"
              },
            }'
  • PROJECT_ID: המזהה של הפרויקט שמכיל את המפתח שרוצים לבצע לו רוטציה.
  • KEY_NAME: השם של המפתח.
  • KEY_RING: השם של אוסף המפתחות שמכיל את המפתח.
  • LOCATION: המיקום ב-Cloud KMS שבו נמצא אוסף המפתחות.
  • EKM_CONNECTION_PATH: מזהה המשאב של חיבור ה-EKM שרוצים להשתמש בו לגרסה החדשה של המפתח, לדוגמה: projects/PROJECT_ID/locations/LOCATION/ekmConnections/EKM_CONNECTION
  • EXTERNAL_KEY_PATH: הנתיב לגרסה החדשה של המפתח החיצוני מחיבור ה-EKM, לדוגמה v0/path/to/my/key.

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

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

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

gcloud

כדי להשתמש ב-Cloud KMS בשורת הפקודה, קודם צריך להתקין את הגרסה האחרונה של Google Cloud CLI או לשדרג אליה.

כדי ליצור גרסה חדשה של מפתח חיצוני באינטרנט במפתח Cloud EKM קיים, משתמשים בפקודה kms keys versions create עם הדגלים --protection-level ו---external-key-uri:

gcloud kms keys versions create \
    --key KEY_NAME \
    --keyring KEY_RING \
    --location LOCATION \
    --protection-level "external" \
    --external-key-uri EXTERNAL_KEY_URI

מחליפים את מה שכתוב בשדות הבאים:

  • KEY_NAME: השם של המפתח.
  • KEY_RING: השם של אוסף המפתחות שמכיל את המפתח.
  • LOCATION: המיקום ב-Cloud KMS שבו נמצא אוסף המפתחות.
  • EXTERNAL_KEY_URI: ה-URI של הגרסה החדשה של המפתח החיצוני.

אם המפתח הוא מפתח הצפנה סימטרי ואתם רוצים להגדיר את גרסת המפתח החדשה כגרסה הראשית, מוסיפים את הדגל --primary.

כדי לקבל מידע על כל הדגלים והערכים האפשריים, מריצים את הפקודה עם הדגל --help.

REST

בדוגמאות האלה נעשה שימוש ב-curl כלקוח HTTP כדי להדגים את השימוש ב-API. מידע נוסף על בקרת גישה זמין במאמר גישה ל-Cloud KMS API.

כדי ליצור גרסה חדשה של מפתח חיצוני באינטרנט במפתח Cloud EKM קיים, יוצרים גרסה חדשה של המפתח על ידי קריאה לשיטה CryptoKeyVersions.create.

curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME/cryptoKeyVersions" \
    --request "POST" \
    --header "authorization: Bearer TOKEN" \
    --header "content-type: application/json" \
    --data '{
            "protectionLevel": "EXTERNAL",
            "externalProtectionLevelOptions": {
              "externalKeyUri": "EXTERNAL_KEY_URI",
              },
            }'
  • PROJECT_ID: המזהה של הפרויקט שמכיל את המפתח שרוצים לבצע לו רוטציה.
  • KEY_NAME: השם של המפתח.
  • KEY_RING: השם של אוסף המפתחות שמכיל את המפתח.
  • LOCATION: המיקום ב-Cloud KMS שבו נמצא אוסף המפתחות.
  • EXTERNAL_KEY_URI: ה-URI של הגרסה החדשה של המפתח החיצוני.

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

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

עדכון גרסת מפתח לשימוש במצב ההגנה החיצוני על VPC

gcloud

כדי להשתמש ב-Cloud KMS בשורת הפקודה, קודם צריך להתקין את הגרסה האחרונה של Google Cloud CLI או לשדרג אליה.

כדי לעדכן גרסה קיימת של מפתח external לרמת ההגנה external-vpc, משתמשים בפקודה kms keys versions update עם הדגלים --protection-level, --crypto-key-backend ו---ekm-connection-key-path:

gcloud kms keys versions update KEY_VERSION \
    --key KEY_NAME \
    --keyring KEY_RING \
    --location LOCATION \
    --protection-level "external-vpc" \
    --crypto-key-backend EKM_CONNECTION_PATH \
    --ekm-connection-key-path EXTERNAL_KEY_PATH

מחליפים את מה שכתוב בשדות הבאים:

  • KEY_VERSION: מספר גרסת המפתח שרוצים להעביר, לדוגמה 3.
  • KEY_NAME: השם של המפתח.
  • KEY_RING: השם של אוסף המפתחות שמכיל את המפתח.
  • LOCATION: המיקום ב-Cloud KMS שבו נמצא אוסף המפתחות.
  • EKM_CONNECTION_PATH: מזהה המשאב של חיבור ה-EKM שבו רוצים להשתמש לגרסת המפתח – לדוגמה, projects/PROJECT_ID/locations/LOCATION/ekmConnections/EKM_CONNECTION
  • EXTERNAL_KEY_PATH: הנתיב החדש לחומר המפתח החיצוני הקיים מחיבור ה-EKM, לדוגמה, v0/path/to/my/key. החיבור ל-EKM ונתיב המפתח צריכים להפנות לאותו חומר מפתח שאליו מפנה כתובת ה-URI הנוכחית של המפתח.

כדי לקבל מידע על כל הדגלים והערכים האפשריים, מריצים את הפקודה עם הדגל --help.

REST

בדוגמאות האלה נעשה שימוש ב-curl כלקוח HTTP כדי להדגים את השימוש ב-API. מידע נוסף על בקרת גישה זמין במאמר גישה ל-Cloud KMS API.

כדי לעדכן גרסה קיימת של מפתח external לרמת ההגנה external-vpc, צריך לבצע קריאה לשיטה CryptoKeyVersions.patch.

curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME/cryptoKeyVersions/KEY_VERSION?updateMask=protectionLevel,externalProtectionLevelOptions" \
    --request "PATCH" \
    --header "authorization: Bearer TOKEN" \
    --header "content-type: application/json" \
    --data '{
            "protectionLevel": "EXTERNAL_VPC",
            "externalProtectionLevelOptions": {
              "ekmConnectionKeyPath": "EXTERNAL_KEY_PATH",
              "ekmConnectionBackendOverride": "EKM_CONNECTION_PATH"
              },
            }'
  • PROJECT_ID: המזהה של הפרויקט שמכיל את המפתח שרוצים להעביר.
  • KEY_NAME: השם של המפתח.
  • KEY_RING: השם של אוסף המפתחות שמכיל את המפתח.
  • LOCATION: המיקום ב-Cloud KMS שבו נמצא אוסף המפתחות.
  • EKM_CONNECTION_PATH: מזהה המשאב של חיבור ה-EKM שבו רוצים להשתמש לגרסת המפתח – לדוגמה, projects/PROJECT_ID/locations/LOCATION/ekmConnections/EKM_CONNECTION
  • EXTERNAL_KEY_PATH: הנתיב החדש לחומר המפתח החיצוני הקיים מחיבור ה-EKM שלכם, לדוגמה, v0/path/to/my/key. החיבור ל-EKM ונתיב המפתח צריכים להפנות לאותו חומר מפתח שאליו מפנה כתובת ה-URI הנוכחית של המפתח.

עדכון גרסת מפתח לשימוש במצב הגנה חיצוני באינטרנט

gcloud

כדי להשתמש ב-Cloud KMS בשורת הפקודה, קודם צריך להתקין את הגרסה האחרונה של Google Cloud CLI או לשדרג אליה.

כדי לעדכן גרסה קיימת של מפתח external-vpc לרמת ההגנה external, משתמשים בפקודה kms keys versions update עם הדגלים --protection-level ו---external-key-uri:

gcloud kms keys versions update KEY_VERSION \
    --key KEY_NAME \
    --keyring KEY_RING \
    --location LOCATION \
    --protection-level "external" \
    --external-key-uri EXTERNAL_KEY_URI

מחליפים את מה שכתוב בשדות הבאים:

  • KEY_VERSION: מספר גרסת המפתח שרוצים להעביר, לדוגמה 3.
  • KEY_NAME: השם של המפתח.
  • KEY_RING: השם של אוסף המפתחות שמכיל את המפתח.
  • LOCATION: המיקום ב-Cloud KMS שבו נמצא אוסף המפתחות.
  • EXTERNAL_KEY_URI: ה-URI החדש של חומר המפתח החיצוני הקיים ב-EKM. כתובת ה-URI צריכה להפנות לאותו חומר מפתח כמו החיבור הנוכחי ל-EKM והמפתח החיצוני.

כדי לקבל מידע על כל הדגלים והערכים האפשריים, מריצים את הפקודה עם הדגל --help.

REST

בדוגמאות האלה נעשה שימוש ב-curl כלקוח HTTP כדי להדגים את השימוש ב-API. מידע נוסף על בקרת גישה זמין במאמר גישה ל-Cloud KMS API.

כדי לעדכן גרסה קיימת של מפתח external-vpc לרמת ההגנה external, צריך לבצע קריאה לשיטה CryptoKeyVersions.patch.

curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME/cryptoKeyVersions/KEY_VERSION?updateMask=protectionLevel,externalProtectionLevelOptions" \
    --request "PATCH" \
    --header "authorization: Bearer TOKEN" \
    --header "content-type: application/json" \
    --data '{
            "protectionLevel": "EXTERNAL",
            "externalProtectionLevelOptions": {
              "externalKeyUri": "EXTERNAL_KEY_URI",
              },
            }'
  • PROJECT_ID: המזהה של הפרויקט שמכיל את המפתח שרוצים להעביר.
  • KEY_NAME: השם של המפתח.
  • KEY_RING: השם של אוסף המפתחות שמכיל את המפתח.
  • LOCATION: המיקום ב-Cloud KMS שבו נמצא אוסף המפתחות.
  • EXTERNAL_KEY_URI: ה-URI החדש של חומר המפתח החיצוני הקיים ב-EKM. כתובת ה-URI צריכה להפנות לאותו חומר מפתח כמו החיבור הנוכחי ל-EKM והמפתח החיצוני.