בדף הזה מוסבר איך ליצור מפתח ב-Cloud KMS. מפתח יכול להיות מפתח הצפנה סימטרי או אסימטרי, מפתח חתימה אסימטרי או מפתח חתימה של MAC.
כשיוצרים מפתח, מוסיפים אותו לאוסף מפתחות במיקום ספציפי ב-Cloud KMS. אפשר ליצור אוסף מפתחות חדש או להשתמש באוסף מפתחות קיים. בדף הזה מוסבר איך יוצרים מפתח חדש ב-Cloud KMS ומוסיפים אותו לאוסף מפתחות קיים. כדי ליצור מפתח Cloud EKM, קראו את המאמר יצירת מפתח חיצוני. כדי לייבא מפתח של Cloud KMS או של Cloud HSM, קראו את המאמר ייבוא מפתח.
לפני שמתחילים
לפני שתבצעו את המשימות שבדף הזה, אתם צריכים:
- משאב פרויקט ב- Cloud de Confiance שיכיל את משאבי Cloud KMS. מומלץ להשתמש בפרויקט נפרד למשאבי Cloud KMS, שלא מכיל משאבים אחרים של Cloud de Confiance .
- השם והמיקום של אוסף המפתחות שבו רוצים ליצור את המפתח. בוחרים אוסף מפתחות במיקום שקרוב למשאבים האחרים שלכם, ושתומך ברמת ההגנה שבחרתם. כדי ליצור אוסף מפתחות, ראו יצירת אוסף מפתחות.
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות ליצירת מפתחות, בקשו מהאדמין להקצות לכם את תפקידי ה-IAM הבאים בפרויקט או במשאב ההורה:
- אדמין ב-Cloud KMS (
roles/cloudkms.admin) -
כדי ליצור מפתחות HSM לדייר יחיד:
Cloud KMS single-tenant HSM Key Creator (
roles/cloudkms.hsmSingleTenantKeyCreator)
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
אלה תפקידים מוגדרים מראש שכוללים את ההרשאות שנדרשות ליצירת מפתחות. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
כדי ליצור מפתחות, צריך את ההרשאות הבאות:
-
cloudkms.cryptoKeys.create -
cloudkms.cryptoKeys.get -
cloudkms.cryptoKeys.list -
cloudkms.cryptoKeyVersions.create -
cloudkms.cryptoKeyVersions.get -
cloudkms.cryptoKeyVersions.list -
cloudkms.keyRings.get -
cloudkms.keyRings.list -
cloudkms.locations.get -
cloudkms.locations.list -
resourcemanager.projects.get -
כדי לאחזר מפתח ציבורי:
cloudkms.cryptoKeyVersions.viewPublicKey -
כדי ליצור מפתחות HSM לדייר יחיד:
-
cloudkms.singleTenantHsmInstances.get -
cloudkms.singleTenantHsmInstances.use
-
יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
יצירת מפתח הצפנה סימטרי
המסוף
נכנסים לדף Key Management במסוף Cloud de Confiance .
לוחצים על השם של אוסף המפתחות שבו רוצים ליצור מפתח.
לוחצים על Create key.
בשדה Key name, נותנים שם למפתח.
בקטע Protection level, בוחרים באפשרות Software.
בקטע Key material, בוחרים באפשרות Generated key.
בשדה Purpose, בוחרים באפשרות Symmetric encrypt/decrypt.
מאשרים את ערכי ברירת המחדל של Rotation period ו-Starting on.
לוחצים על יצירה.
gcloud
כדי להשתמש ב-Cloud KMS בשורת הפקודה, קודם צריך להתקין את הגרסה העדכנית של Google Cloud CLI או לשדרג אליה.
כדי ליצור מפתח תוכנה, משתמשים בפקודה kms keys create:
gcloud kms keys create KEY_NAME \
--keyring KEY_RING \
--location LOCATION \
--purpose "encryption"
מחליפים את מה שכתוב בשדות הבאים:
-
KEY_NAME: השם של המפתח. -
KEY_RING: השם של אוסף המפתחות שמכיל את המפתח. -
LOCATION: המיקום ב-Cloud KMS שבו נמצא אוסף המפתחות.
כדי לקבל מידע על כל הדגלים והערכים האפשריים, מריצים את הפקודה עם הדגל --help.
C#
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח ב-C# ולהתקין את Cloud KMS C# SDK.
Go
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח ב-Go ולהתקין את Cloud KMS Go SDK.
Java
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח של Java ולהתקין את Cloud KMS Java SDK.
Node.js
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח של Node.js ולהתקין את Cloud KMS Node.js SDK.
PHP
כדי להריץ את הקוד הזה, קודם צריך ללמוד על שימוש ב-PHP ב- Cloud de Confiance ולהתקין את Cloud KMS PHP SDK.
Python
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח ב-Python ולהתקין את Cloud KMS Python SDK.
Ruby
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח של Ruby ולהתקין את Cloud KMS Ruby SDK.
API
בדוגמאות האלה משתמשים ב-curl כצד הלקוח ב-HTTP כדי להדגים את השימוש ב-API. מידע נוסף על בקרת גישה זמין במאמר גישה ל-Cloud KMS API.
כדי ליצור מפתח תוכנה, משתמשים ב-method CryptoKey.create:
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys?crypto_key_id=KEY_NAME" \
--request "POST" \
--header "authorization: Bearer TOKEN" \
--header "content-type: application/json" \
--data '{"purpose": "ENCRYPT_DECRYPT", "versionTemplate": { "protectionLevel": "SOFTWARE", "algorithm": "ALGORITHM" }}'
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט שמכיל את אוסף המפתחות. -
LOCATION: המיקום ב-Cloud KMS שבו נמצא אוסף המפתחות. -
KEY_RING: השם של אוסף המפתחות שמכיל את המפתח. -
KEY_NAME: השם של המפתח. -
ALGORITHM: אלגוריתם החתימה של HMAC, לדוגמהHMAC_SHA256. כאן מפורטים כל האלגוריתמים הנתמכים של חתימת HMAC.
יצירת מפתח הצפנה סימטרי עם רוטציה אוטומטית בהתאמה אישית
כשיוצרים מפתח, אפשר לציין את תקופת הרוטציה שלו, שהיא משך הזמן בין היצירה האוטומטית של גרסאות מפתח חדשות. אפשר גם לציין באופן עצמאי את מועד הרוטציה הבא, כך שהרוטציה הבאה תתבצע מוקדם או מאוחר יותר מתקופת רוטציה אחת מעכשיו.
המסוף
כשמשתמשים במסוף Cloud de Confiance כדי ליצור מפתח, Cloud KMS מגדיר את תקופת הרוטציה ואת זמן הרוטציה הבא באופן אוטומטי. אתם יכולים להשתמש בערכי ברירת המחדל או לציין ערכים אחרים.
כדי לציין תקופת רוטציה ושעת התחלה שונות, כשיוצרים את המפתח, אבל לפני שלוחצים על הלחצן Create:
בקטע תקופת רוטציית מפתחות, בוחרים אפשרות.
בשדה החל מ-, בוחרים את התאריך שבו רוצים שהרוטציה האוטומטית הראשונה תתבצע. אפשר להשאיר את ערך ברירת המחדל של Starting on כדי להתחיל את רוטציית המפתחות האוטומטית הראשונה בתקופת רוטציה אחת של מפתחות, החל מהמועד שבו יצרתם את המפתח.
gcloud
כדי להשתמש ב-Cloud KMS בשורת הפקודה, קודם צריך להתקין את הגרסה העדכנית של Google Cloud CLI או לשדרג אליה.
gcloud kms keys create KEY_NAME \
--keyring KEY_RING \
--location LOCATION \
--purpose "encryption" \
--rotation-period ROTATION_PERIOD \
--next-rotation-time NEXT_ROTATION_TIME
מחליפים את מה שכתוב בשדות הבאים:
-
KEY_NAME: השם של המפתח. -
KEY_RING: השם של אוסף המפתחות שמכיל את המפתח. -
LOCATION: המיקום ב-Cloud KMS שבו נמצא אוסף המפתחות. -
ROTATION_PERIOD: מרווח הזמן לרוטציה של המפתח. לדוגמה,30dכדי לבצע רוטציה של המפתח כל 30 יום. תקופת הרוטציה צריכה להיות לפחות יום אחד ולכל היותר 100 שנים. למידע נוסף, ראו CryptoKey.rotationPeriod. -
NEXT_ROTATION_TIME: חותמת הזמן שבה תושלם הרוטציה הראשונה, לדוגמה2023-01-01T01:02:03. אפשר להשמיט את--next-rotation-timeכדי לתזמן את הרוטציה הראשונה לתקופת רוטציה אחת מהרגע שבו מריצים את הפקודה. מידע נוסף זמין במאמרCryptoKey.nextRotationTime.
כדי לקבל מידע על כל הדגלים והערכים האפשריים, מריצים את הפקודה עם הדגל --help.
C#
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח ב-C# ולהתקין את Cloud KMS C# SDK.
Go
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח ב-Go ולהתקין את Cloud KMS Go SDK.
Java
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח של Java ולהתקין את Cloud KMS Java SDK.
Node.js
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח של Node.js ולהתקין את Cloud KMS Node.js SDK.
PHP
כדי להריץ את הקוד הזה, קודם צריך ללמוד על שימוש ב-PHP ב- Cloud de Confiance ולהתקין את Cloud KMS PHP SDK.
Python
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח ב-Python ולהתקין את Cloud KMS Python SDK.
Ruby
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח של Ruby ולהתקין את Cloud KMS Ruby SDK.
API
בדוגמאות האלה משתמשים ב-curl כצד הלקוח ב-HTTP כדי להדגים את השימוש ב-API. מידע נוסף על בקרת גישה זמין במאמר גישה ל-Cloud KMS API.
כדי ליצור מפתח, משתמשים ב-method CryptoKey.create:
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys?crypto_key_id=KEY_NAME" \
--request "POST" \
--header "authorization: Bearer TOKEN" \
--header "content-type: application/json" \
--data '{
"purpose": "PURPOSE", "rotationPeriod": "ROTATION_PERIOD",
"nextRotationTime": "NEXT_ROTATION_TIME"
}'
מחליפים את מה שכתוב בשדות הבאים:
-
PURPOSE: מטרת המפתח. -
ROTATION_PERIOD: מרווח הזמן לרוטציה של המפתח. לדוגמה,30dכדי לבצע רוטציה של המפתח כל 30 יום. תקופת הרוטציה צריכה להיות לפחות יום אחד ולכל היותר 100 שנים. למידע נוסף, ראו CryptoKey.rotationPeriod. -
NEXT_ROTATION_TIME: חותמת הזמן שבה תושלם הרוטציה הראשונה, לדוגמה2023-01-01T01:02:03. מידע נוסף זמין במאמרCryptoKey.nextRotationTime.
הגדרת משך הזמן של המצב "מתוזמן להשמדה"
כברירת מחדל, גרסאות מפתחות ב-Cloud KMS נמצאות 30 יום במצב "מתוזמן להשמדה" (DESTROY_SCHEDULED) לפני שהן מושמדות. המצב "ממתין להשמדה" נקרא לפעמים מצב מחיקה עם יכולת שחזור. אפשר להגדיר את משך הזמן שבו גרסאות המפתחות נשארות במצב הזה, בכפוף למגבלות הבאות:
- אפשר להגדיר את משך הזמן רק כשיוצרים את המפתח.
- אחרי שמציינים את משך הזמן של המפתח, אי אפשר לשנות אותו.
- משך הזמן חל על כל הגרסאות של המפתח שייווצרו בעתיד.
- משך הזמן המינימלי הוא 24 שעות לכל המפתחות, חוץ ממפתחות לייבוא בלבד שמשך הזמן המינימלי שלהם הוא 0.
- משך הזמן המקסימלי הוא 120 ימים.
- ברירת המחדל היא 30 יום.
יכול להיות שבמדיניות הארגון שלכם מוגדר משך זמן מינימלי להמתנה להשמדה. מידע נוסף על השמדת מפתחות
כדי ליצור מפתח עם משך זמן מותאם אישית למצב מתוזמן להשמדה, מבצעים את השלבים הבאים:
המסוף
נכנסים לדף Key Management במסוף Cloud de Confiance .
לוחצים על השם של אוסף המפתחות שבו רוצים ליצור מפתח.
לוחצים על Create key.
קובעים את הגדרות המפתח של האפליקציה.
לוחצים על הגדרות נוספות.
בשדה Duration of 'scheduled for destruction' state, בוחרים את מספר הימים שבהם המפתח יישאר במצב scheduled for destruction לפני שיושמד באופן סופי.
לוחצים על Create key.
gcloud
כדי להשתמש ב-Cloud KMS בשורת הפקודה, קודם צריך להתקין את הגרסה העדכנית של Google Cloud CLI או לשדרג אליה.
gcloud kms keys create KEY_NAME \
--keyring KEY_RING \
--location LOCATION \
--purpose PURPOSE \
--destroy-scheduled-duration DURATION
מחליפים את מה שכתוב בשדות הבאים:
-
KEY_NAME: השם של המפתח. -
KEY_RING: השם של אוסף המפתחות שמכיל את המפתח. -
LOCATION: המיקום ב-Cloud KMS שבו נמצא אוסף המפתחות. -
PURPOSE: מטרת המפתח, לדוגמהencryption. -
DURATION: משך הזמן שבו המפתח נשאר במצב מתוזמן להשמדה לפני שהוא מושמד באופן סופי.
כדי לקבל מידע על כל הדגלים והערכים האפשריים, מריצים את הפקודה עם הדגל --help.
אנחנו ממליצים להשתמש במשך הזמן שמוגדר כברירת מחדל (30 ימים) לכל המפתחות, אלא אם יש לכם דרישות ספציפיות של אפליקציות או דרישות רגולטוריות שמחייבות ערך אחר.
יצירת מפתח אסימטרי
בקטעים הבאים מוסבר איך ליצור מפתחות אסימטריים.
יצירת מפתח פענוח אסימטרי
כדי ליצור מפתח פענוח אסימטרי באוסף המפתחות ובמיקום שצוינו, פועלים לפי השלבים הבאים. אפשר להתאים את הדוגמאות האלה כדי לציין רמת הגנה או אלגוריתם אחרים. למידע נוסף ולערכים חלופיים, קראו את המאמרים אלגוריתמים ורמות הגנה.
כשיוצרים את המפתח, גרסת המפתח הראשונית נמצאת בסטטוס בהמתנה ליצירה. כשהמצב משתנה ל-Enabled, אפשר להשתמש במפתח. מידע נוסף על מצבי גרסאות של מפתחות זמין במאמר מצבי גרסאות של מפתחות.
המסוף
נכנסים לדף Key Management במסוף Cloud de Confiance .
לוחצים על השם של אוסף המפתחות שבו רוצים ליצור מפתח.
לוחצים על Create key.
בשדה Key name, נותנים שם למפתח.
בקטע Protection level, בוחרים באפשרות Software.
בקטע Key material, בוחרים באפשרות Generated key.
בשדה Purpose, בוחרים באפשרות Asymmetric decrypt.
בשדה Algorithm, בוחרים באפשרות 3072 bit RSA - OAEP Padding - SHA256 Digest. אפשר לשנות את הערך הזה בגרסאות עתידיות של המפתח.
לוחצים על יצירה.
gcloud
כדי להשתמש ב-Cloud KMS בשורת הפקודה, קודם צריך להתקין את הגרסה העדכנית של Google Cloud CLI או לשדרג אליה.
gcloud kms keys create KEY_NAME \
--keyring KEY_RING \
--location LOCATION \
--purpose "asymmetric-encryption" \
--default-algorithm "ALGORITHM" \
--protection-level "PROTECTION_LEVEL"
מחליפים את מה שכתוב בשדות הבאים:
-
KEY_NAME: השם של המפתח. -
KEY_RING: השם של אוסף המפתחות שמכיל את המפתח. -
LOCATION: המיקום ב-Cloud KMS שבו נמצא אוסף המפתחות. -
ALGORITHM: האלגוריתם שבו משתמשים למפתח, לדוגמהrsa-decrypt-oaep-3072-sha256. במאמר אלגוריתמים של הצפנה אסימטרית תוכלו למצוא רשימה של האלגוריתמים הנתמכים. -
PROTECTION_LEVEL: רמת ההגנה שרוצים להשתמש בה למפתח.
C#
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח ב-C# ולהתקין את Cloud KMS C# SDK.
Go
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח ב-Go ולהתקין את Cloud KMS Go SDK.
Java
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח של Java ולהתקין את Cloud KMS Java SDK.
Node.js
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח של Node.js ולהתקין את Cloud KMS Node.js SDK.
PHP
כדי להריץ את הקוד הזה, קודם צריך ללמוד על שימוש ב-PHP ב- Cloud de Confiance ולהתקין את Cloud KMS PHP SDK.
Python
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח ב-Python ולהתקין את Cloud KMS Python SDK.
Ruby
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח של Ruby ולהתקין את Cloud KMS Ruby SDK.
API
בדוגמאות האלה משתמשים ב-curl כצד הלקוח ב-HTTP כדי להדגים את השימוש ב-API. מידע נוסף על בקרת גישה זמין במאמר גישה ל-Cloud KMS API.
יוצרים מפתח פענוח אסימטרי באמצעות ה-methodCryptoKey.create.
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys?crypto_key_id=KEY_NAME" \
--request "POST" \
--header "authorization: Bearer TOKEN" \
--header "content-type: application/json" \
--data '{"purpose": "ASYMMETRIC_DECRYPT", "protectionLevel": "PROTECTION_LEVEL", "versionTemplate": {"algorithm": "ALGORITHM"}}'
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט שמכיל את אוסף המפתחות. -
LOCATION: המיקום ב-Cloud KMS שבו נמצא אוסף המפתחות. -
KEY_RING: השם של אוסף המפתחות שמכיל את המפתח. -
KEY_NAME: השם של המפתח. -
ALGORITHM: האלגוריתם שבו משתמשים למפתח, לדוגמהRSA_DECRYPT_OAEP_3072_SHA256. במאמר אלגוריתמים של הצפנה אסימטרית תוכלו למצוא רשימה של האלגוריתמים הנתמכים. -
PROTECTION_LEVEL: רמת ההגנה שרוצים להשתמש בה למפתח.
יצירת מפתח חתימה אסימטרי
כדי ליצור מפתח חתימה אסימטרי באוסף המפתחות ובמיקום שצוינו, פועלים לפי השלבים הבאים. אפשר להתאים את הדוגמאות האלה כדי לציין רמת הגנה או אלגוריתם אחרים. למידע נוסף ולערכים חלופיים, קראו את המאמרים אלגוריתמים ורמות הגנה.
כשיוצרים את המפתח, גרסת המפתח הראשונית נמצאת בסטטוס בהמתנה ליצירה. כשהמצב משתנה ל-Enabled, אפשר להשתמש במפתח. מידע נוסף על מצבי גרסאות של מפתחות זמין במאמר מצבי גרסאות של מפתחות.
המסוף
נכנסים לדף Key Management במסוף Cloud de Confiance .
לוחצים על השם של אוסף המפתחות שבו רוצים ליצור מפתח.
לוחצים על Create key.
בשדה Key name, נותנים שם למפתח.
בקטע Protection level, בוחרים באפשרות Software.
בקטע Key material, בוחרים באפשרות Generated key.
בשדה Purpose, בוחרים באפשרות Asymmetric sign.
בשדה Algorithm, בוחרים באפשרות Elliptic Curve P-256 - SHA256 Digest. אפשר לשנות את הערך הזה בגרסאות עתידיות של המפתח.
לוחצים על יצירה.
gcloud
כדי להשתמש ב-Cloud KMS בשורת הפקודה, קודם צריך להתקין את הגרסה העדכנית של Google Cloud CLI או לשדרג אליה.
gcloud kms keys create KEY_NAME \
--keyring KEY_RING \
--location LOCATION \
--purpose "asymmetric-signing" \
--default-algorithm "ALGORITHM" \
--protection-level "PROTECTION_LEVEL"
מחליפים את מה שכתוב בשדות הבאים:
-
KEY_NAME: השם של המפתח. -
KEY_RING: השם של אוסף המפתחות שמכיל את המפתח. -
LOCATION: המיקום ב-Cloud KMS שבו נמצא אוסף המפתחות. -
ALGORITHM: האלגוריתם שבו משתמשים למפתח, לדוגמהec-sign-p256-sha256. כאן תוכלו למצוא רשימה של אלגוריתמים נתמכים לחתימה אסימטרית. -
PROTECTION_LEVEL: רמת ההגנה שרוצים להשתמש בה למפתח.
C#
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח ב-C# ולהתקין את Cloud KMS C# SDK.
Go
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח ב-Go ולהתקין את Cloud KMS Go SDK.
Java
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח של Java ולהתקין את Cloud KMS Java SDK.
Node.js
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח של Node.js ולהתקין את Cloud KMS Node.js SDK.
PHP
כדי להריץ את הקוד הזה, קודם צריך ללמוד על שימוש ב-PHP ב- Cloud de Confiance ולהתקין את Cloud KMS PHP SDK.
Python
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח ב-Python ולהתקין את Cloud KMS Python SDK.
Ruby
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח של Ruby ולהתקין את Cloud KMS Ruby SDK.
API
בדוגמאות האלה משתמשים ב-curl כצד הלקוח ב-HTTP כדי להדגים את השימוש ב-API. מידע נוסף על בקרת גישה זמין במאמר גישה ל-Cloud KMS API.
יוצרים מפתח חתימה אסימטרי באמצעות קריאה ל-[`CryptoKey.create`](/kms/docs/reference/rest/v1/projects.locations.keyRings.cryptoKeys/create).
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys?crypto_key_id=KEY_NAME" \
--request "POST" \
--header "authorization: Bearer TOKEN" \
--header "content-type: application/json" \
--data '{"purpose": "ASYMMETRIC_SIGN", "versionTemplate": {"protectionLevel": "PROTECTION_LEVEL", "algorithm": "ALGORITHM"}}'
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט שמכיל את אוסף המפתחות. -
LOCATION: המיקום ב-Cloud KMS שבו נמצא אוסף המפתחות. -
KEY_RING: השם של אוסף המפתחות שמכיל את המפתח. -
KEY_NAME: השם של המפתח. -
PROTECTION_LEVEL: רמת ההגנה שרוצים להשתמש בה למפתח.
ALGORITHM: האלגוריתם שבו משתמשים למפתח, לדוגמהEC_SIGN_P256_SHA256. במאמר אלגוריתמים של חתימה אסימטרית תוכלו למצוא רשימה של האלגוריתמים הנתמכים.
יצירת מפתח KEM
כדי ליצור מפתח לשימוש במנגנון אנקפסולציה של מפתחות (KEM) לאוסף המפתחות ולמיקום שצוינו, פועלים לפי השלבים הבאים. אפשר להתאים את הדוגמאות האלה כדי לציין רמת הגנה או אלגוריתם אחרים. למידע נוסף ולערכים חלופיים, קראו את המאמרים אלגוריתמים ורמות הגנה.
כשיוצרים את המפתח, גרסת המפתח הראשונית נמצאת בסטטוס בהמתנה ליצירה. כשהמצב משתנה ל-Enabled, אפשר להשתמש במפתח. מידע נוסף על מצבי גרסאות של מפתחות זמין במאמר מצבי גרסאות של מפתחות.
gcloud
כדי להשתמש ב-Cloud KMS בשורת הפקודה, קודם צריך להתקין את הגרסה העדכנית של Google Cloud CLI או לשדרג אליה.
gcloud kms keys create KEY_NAME \
--keyring KEY_RING \
--location LOCATION \
--purpose "key-encapsulation" \
--default-algorithm "ALGORITHM"
מחליפים את מה שכתוב בשדות הבאים:
-
KEY_NAME: השם של המפתח. -
KEY_RING: השם של אוסף המפתחות שמכיל את המפתח. -
LOCATION: המיקום ב-Cloud KMS שבו נמצא אוסף המפתחות. -
ALGORITHM: האלגוריתם שבו משתמשים למפתח, לדוגמהml-kem-768. כאן מופיעה רשימה של אלגוריתמים נתמכים לאנקפסולציית מפתחות.
כדי לקבל מידע על כל הדגלים והערכים האפשריים, מריצים את הפקודה עם הדגל --help.
API
בדוגמאות האלה משתמשים ב-curl כצד הלקוח ב-HTTP כדי להדגים את השימוש ב-API. מידע נוסף על בקרת גישה זמין במאמר גישה ל-Cloud KMS API.
יוצרים מפתח עם המטרה KEY_ENCAPSULATION באמצעות קריאה ל-CryptoKey.create.
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys?crypto_key_id=KEY_NAME" \
--request "POST" \
--header "authorization: Bearer TOKEN" \
--header "content-type: application/json" \
--data '{"purpose": "KEY_ENCAPSULATION", "versionTemplate": {"algorithm": "ALGORITHM"}}'
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט שמכיל את אוסף המפתחות. -
LOCATION: המיקום ב-Cloud KMS שבו נמצא אוסף המפתחות. -
KEY_RING: השם של אוסף המפתחות שמכיל את המפתח. -
KEY_NAME: השם של המפתח. -
ALGORITHM: האלגוריתם שבו משתמשים למפתח, לדוגמהML_KEM_768. במאמר אלגוריתמים של אנקפסולציית מפתחות תוכלו למצוא רשימה של האלגוריתמים הנתמכים.
אחזור המפתח הציבורי
כשיוצרים מפתח אסימטרי, Cloud KMS יוצר זוג מפתחות ציבורי/פרטי. אחרי שיוצרים מפתח אסימטרי, אפשר לאחזר את המפתח הציבורי שלו בכל שלב, כל עוד המפתח מופעל.
המפתח הציבורי הוא בפורמט Privacy-enhanced Electronic Mail (PEM). למידע נוסף, קראו את הסעיפים General Considerations ו-Textual Encoding of Subject Public Key Info ב-RFC 7468.
כדי להוריד את המפתח הציבורי של גרסת מפתח אסימטרי קיימת:
המסוף
נכנסים לדף Key Management במסוף Cloud de Confiance .
לוחצים על השם של אוסף המפתחות שמכיל את המפתח האסימטרי שרוצים לאחזר את המפתח הציבורי שלו.
לוחצים על שם המפתח שרוצים לאחזר את המפתח הציבורי שלו.
בשורה של גרסת המפתח שרוצים לאחזר את המפתח הציבורי שלה, לוחצים על View More .
לוחצים על קבלת מפתח ציבורי.
המפתח הציבורי מוצג בהודעה. אתם יכולים להעתיק את המפתח הציבורי ללוח. כדי להוריד את המפתח הציבורי, לוחצים על הורדה.
אם האפשרות Get public key לא מופיעה, צריך לוודא את הדברים הבאים:
- המפתח הוא מפתח אסימטרי.
- גרסת המפתח מופעלת.
- יש לכם את ההרשאה
cloudkms.cryptoKeyVersions.viewPublicKey.
שם הקובץ של מפתח ציבורי שהורדתם ממסוף Cloud de Confiance הוא בפורמט הבא:
KEY_RING-KEY_NAME-KEY_VERSION.pub
כל חלק בשם הקובץ מופרד באמצעות מקף, לדוגמה ringname-keyname-version.pub.
gcloud
כדי להשתמש ב-Cloud KMS בשורת הפקודה, קודם צריך להתקין את הגרסה העדכנית של Google Cloud CLI או לשדרג אליה.
gcloud kms keys versions get-public-key KEY_VERSION \
--key KEY_NAME \
--keyring KEY_RING \
--location LOCATION \
--public-key-format PUBLIC_KEY_FORMAT \
--output-file OUTPUT_FILE_PATH
מחליפים את מה שכתוב בשדות הבאים:
-
KEY_VERSION: מספר הגרסה של המפתח. -
KEY_NAME: השם של המפתח. -
KEY_RING: השם של אוסף המפתחות שמכיל את המפתח. -
LOCATION: המיקום ב-Cloud KMS שבו נמצא אוסף המפתחות. -
PUBLIC_KEY_FORMAT: הפורמט שבו רוצים לייצא את המפתח הציבורי. לאלגוריתמים של NIST PQC, משתמשים ב-nist-pqc, ול-X-Wing משתמשים ב-xwing-raw-bytes. לכל שאר המפתחות, אפשר להשתמש ב-pem, ב-derאו להשמיט את הפרמטר הזה. -
OUTPUT_FILE_PATH: הנתיב שבו רוצים לשמור את קובץ המפתח הציבורי, לדוגמהpublic-key.pub.
כדי לקבל מידע על כל הדגלים והערכים האפשריים, מריצים את הפקודה עם הדגל --help.
C#
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח ב-C# ולהתקין את Cloud KMS C# SDK.
Go
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח ב-Go ולהתקין את Cloud KMS Go SDK.
Java
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח של Java ולהתקין את Cloud KMS Java SDK.
Node.js
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח של Node.js ולהתקין את Cloud KMS Node.js SDK.
PHP
כדי להריץ את הקוד הזה, קודם צריך ללמוד על שימוש ב-PHP ב- Cloud de Confiance ולהתקין את Cloud KMS PHP SDK.
Python
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח ב-Python ולהתקין את Cloud KMS Python SDK.
Ruby
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח של Ruby ולהתקין את Cloud KMS Ruby SDK.
API
בדוגמאות האלה משתמשים ב-curl כצד הלקוח ב-HTTP כדי להדגים את השימוש ב-API. מידע נוסף על בקרת גישה זמין במאמר גישה ל-Cloud KMS API.
מאחזרים את המפתח הציבורי באמצעות קריאה ל-method CryptoKeyVersions.getPublicKey.
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME/cryptoKeyVersions/KEY_VERSION/publicKey?public_key_format=PUBLIC_KEY_FORMAT" \
--request "GET" \
--header "authorization: Bearer TOKEN"
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט שמכיל את אוסף המפתחות. -
LOCATION: המיקום ב-Cloud KMS שבו נמצא אוסף המפתחות. -
KEY_RING: השם של אוסף המפתחות שמכיל את המפתח. -
KEY_NAME: השם של המפתח. -
KEY_VERSION: מספר הגרסה של המפתח. -
PUBLIC_KEY_FORMAT: הפורמט שבו רוצים לייצא את המפתח הציבורי. לאלגוריתמים של PQC, צריך להשתמש ב-NIST_PQC. בכל שאר המפתחות, אפשר להשתמש ב-PEMאו להשמיט את הפרמטר הזה.
אם משמיטים את פורמט המפתח הציבורי למפתח שאינו PQC, הפלט דומה לזה:
{ "pem": "-----BEGIN PUBLIC KEY-----\nQ29uZ3JhdHVsYXRpb25zLCB5b3UndmUgZGlzY292ZX JlZCB0aGF0IHRoaXMgaXNuJ3QgYWN0dWFsbHkgYSBwdWJsaWMga2V5ISBIYXZlIGEgbmlj ZSBkYXkgOik=\n-----END PUBLIC KEY-----\n", "algorithm": "ALGORITHM", "pemCrc32c": "2561089887", "name": "projects/PROJECT_ID/locations/LOCATION/keyRings/ KEY_RING/cryptoKeys/KEY_NAME/cryptoKeyVersions/ KEY_VERSION", "protectionLevel": "PROTECTION_LEVEL" }
באלגוריתם PQC עם פורמט מפתח ציבורי NIST_PQC, הפלט דומה לזה:
{ "publicKeyFormat": "NIST_PQC", "publicKey": { "crc32cChecksum": "1985843562", "data": "kdcOIrFCC5kN8S4i0+R+AoSc9gYIJ9jEQ6zG235ZmCQ=" } "algorithm": "ALGORITHM", "name": "projects/PROJECT_ID/locations/LOCATION/keyRings/ KEY_RING/cryptoKeys/KEY_NAME/cryptoKeyVersions/ KEY_VERSION", "protectionLevel": "PROTECTION_LEVEL" }
המרת מפתח ציבורי לפורמט JWK
ב-Cloud KMS אפשר לאחזר מפתח ציבורי בפורמט PEM. יכול להיות שבאפליקציות מסוימות יהיה צורך בפורמטים אחרים של מפתחות, כמו JSON Web Key (JWK). מידע נוסף על פורמט JWK זמין ב-RFC 7517.
כדי להמיר מפתח ציבורי לפורמט JWK, פועלים לפי השלבים הבאים:
Go
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח ב-Go ולהתקין את Cloud KMS Go SDK.
Java
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח של Java ולהתקין את Cloud KMS Java SDK.
Python
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח ב-Python ולהתקין את Cloud KMS Python SDK.
שליטה בגישה למפתחות אסימטריים
כדי לחתום או לאמת, צריך את ההרשאה או התפקיד המתאימים במפתח האסימטרי.
למשתמש או לשירות שיבצעו את החתימה, צריך להעניק את ההרשאה
cloudkms.cryptoKeyVersions.useToSignבמפתח האסימטרי.למשתמש או לשירות שיאחזרו את המפתח הציבורי, צריך להקצות את התפקיד
cloudkms.cryptoKeyVersions.viewPublicKeyבמפתח האסימטרי. המפתח הציבורי נדרש לאימות החתימה.
מידע נוסף על הרשאות ותפקידים ב-Cloud KMS
יצירת מפתח חתימה של MAC
המסוף
נכנסים לדף Key Management במסוף Cloud de Confiance .
לוחצים על השם של אוסף המפתחות שבו רוצים ליצור מפתח.
לוחצים על Create key.
בשדה Key name, נותנים שם למפתח.
בקטע Protection level, בוחרים באפשרות Software.
בקטע Key material, בוחרים באפשרות Generated key.
בשדה Purpose, בוחרים באפשרות MAC signing/verification.
אופציונלי: בשדה Algorithm, בוחרים אלגוריתם חתימה של HMAC.
לוחצים על יצירה.
gcloud
כדי להשתמש ב-Cloud KMS בשורת הפקודה, קודם צריך להתקין את הגרסה העדכנית של Google Cloud CLI או לשדרג אליה.
כדי ליצור מפתח תוכנה, משתמשים בפקודהkms keys create:
gcloud kms keys create KEY_NAME \
--keyring KEY_RING \
--location LOCATION \
--purpose "mac" \
--default-algorithm "ALGORITHM"
מחליפים את מה שכתוב בשדות הבאים:
-
KEY_NAME: השם של המפתח. -
KEY_RING: השם של אוסף המפתחות שמכיל את המפתח. -
LOCATION: המיקום ב-Cloud KMS שבו נמצא אוסף המפתחות. -
ALGORITHM: אלגוריתם החתימה של HMAC, לדוגמהhmac-sha256. כדי לראות את כל האלגוריתמים הנתמכים של HMAC, קראו את המאמר אלגוריתמים של חתימת HMAC.
כדי לקבל פרטים על כל הדגלים והערכים האפשריים, מריצים את הפקודה עם הדגל --help.
C#
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח ב-C# ולהתקין את Cloud KMS C# SDK.
Go
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח ב-Go ולהתקין את Cloud KMS Go SDK.
Java
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח של Java ולהתקין את Cloud KMS Java SDK.
Node.js
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח של Node.js ולהתקין את Cloud KMS Node.js SDK.
PHP
כדי להריץ את הקוד הזה, קודם צריך ללמוד על שימוש ב-PHP ב- Cloud de Confiance ולהתקין את Cloud KMS PHP SDK.
Python
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח ב-Python ולהתקין את Cloud KMS Python SDK.
Ruby
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח של Ruby ולהתקין את Cloud KMS Ruby SDK.
API
בדוגמאות האלה משתמשים ב-curl כצד הלקוח ב-HTTP כדי להדגים את השימוש ב-API. מידע נוסף על בקרת גישה זמין במאמר גישה ל-Cloud KMS API.
כדי ליצור מפתח תוכנה, משתמשים ב-method CryptoKey.create:
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys?crypto_key_id=KEY_NAME" \
--request "POST" \
--header "authorization: Bearer TOKEN" \
--header "content-type: application/json" \
--data '{"purpose": "MAC", "versionTemplate": { "protectionLevel": "SOFTWARE", "algorithm": "ALGORITHM" }}'
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט שמכיל את אוסף המפתחות. -
LOCATION: המיקום ב-Cloud KMS שבו נמצא אוסף המפתחות. -
KEY_RING: השם של אוסף המפתחות שמכיל את המפתח. -
KEY_NAME: השם של המפתח. -
ALGORITHM: אלגוריתם החתימה של HMAC, לדוגמהHMAC_SHA256. כאן מפורטים כל האלגוריתמים הנתמכים של חתימת HMAC.