במדריך הזה מוסבר איך ליצור, להקצות ולנהל מכונה של Cloud HSM עם דייר יחיד באמצעות Google Cloud CLI. אחרי שיוצרים את המכונה ומקצים לה משאבים, אפשר ליצור מפתחות במכונה ולהשתמש בהם באמצעות המסוף Google Cloud , Cloud Key Management Service API, ה-CLI של gcloud וספריות לקוח.
כדי ליצור את המכונה ולנהל אותה, צריך אימות קוורום. כשיוצרים את המופע, מגדירים את מספר האישורים של חברי הקוורום שנדרשים כדי להריץ פעולות במופע. כדי לשמור על שליטה אדמיניסטרטיבית במופע, תמיד צריכים להיות לחברי הקוורום לפחות המספר הזה של מפתחות בקרה זמינים.
לפני שמתחילים
- כשיוצרים את המופע ושומרים עליו, מומלץ לעיין בשיטות המומלצות ל-Cloud HSM עם דייר יחיד ולפעול לפיהן.
- מחליטים כמה חברי קוורום רוצים להגדיר בהתחלה. אפשר להוסיף חברים נוספים לקוורום בהמשך, אם החברים הקיימים יאשרו זאת. מספר חברי הקוורום המינימלי הוא שלושה.
- מחליטים כמה חברי קוורום נדרשים כדי לאשר הצעות. אי אפשר לשנות את המספר הזה אחרי שיוצרים את המופע. למשתתפים בקבוצת הקוורום צריכה להיות תמיד גישה למספר הזה של מפתחות בקרה כדי לשמור על המופע. גודל הקוורום המינימלי הוא שניים. הגודל הנדרש של הקוורום צריך להיות קטן ממספר חברי הקוורום.
- מחליטים איך לוודא שהמופע יתעדכן בזמן.
כדי למנוע השבתה לא רצויה, חשוב לעקוב אחרי
disableDateשל המופע ולהציע, לאשר ולבצע פעולת רענון של המופע לפני המועד האחרון. -
כדי לקבל את ההרשאות שדרושות ליצירה, לניהול ולשימוש במופעי Single-tenant Cloud HSM, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים בפרויקט או במשאב הורה:
-
יצירת הצעות:
Cloud KMS single-tenant HSM Proposer (
cloudkms.hsmSingleTenantProposer) -
אישור הצעות:
חבר בקוורום של Cloud KMS single-tenant HSM (
cloudkms.hsmSingleTenantQuorumMember) -
ביצוע הצעות:
Cloud KMS single-tenant HSM Executor (
cloudkms.hsmSingleTenantExecutor) -
יצירת מפתחות:
Cloud KMS single-tenant HSM Key Creator (
roles/cloudkms.hsmSingleTenantKeyCreator)
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
-
יצירת הצעות:
Cloud KMS single-tenant HSM Proposer (
לכל חבר בקוורום, יוצרים זוג מפתחות RSA-2048 לאימות דו-שלבי (2FA). מומלץ להשתמש באסימונים פיזיים עבור מפתחות הבקרה. פועלים לפי התקנים של הארגון ליצירת זוגות מפתחות RSA-2048 באסימונים פיזיים.
לצורך הדגמה, במדריך הזה נעשה שימוש ב-OpenSSL כדי ליצור שלושה מפתחות RSA-2048 שמגובים בתוכנה:
openssl genrsa -out rsaprivate1.pem openssl genrsa -out rsaprivate2.pem openssl genrsa -out rsaprivate3.pem openssl rsa -in rsaprivate1.pem -out rsapub1.pem --pubout openssl rsa -in rsaprivate2.pem -out rsapub2.pem --pubout openssl rsa -in rsaprivate3.pem -out rsapub3.pem --puboutחשוב לאחסן את המפתחות הפרטיים בצורה מאובטחת, כי הם נדרשים לאישור הצעות. חשוב לשמור את המפתחות הציבוריים, כי תצטרכו אותם כדי ליצור את מופע Cloud HSM עם דייר יחיד.
בוחרים מיקום ב-Cloud KMS שתומך ב-Cloud HSM עם דייר יחיד. כדי לזהות מיקומים תואמים, אפשר לעיין ברשימת המיקומים בדף מיקומים ב-Cloud KMS. במסנן HSM support (תמיכה ב-HSM), בוחרים באפשרות Supports single-tenant HSM (תומך ב-HSM עם דייר יחיד).
יצירה והקצאה של מופע
כדי ליצור ולהקצות מופע Cloud HSM עם דייר יחיד, משתמשים ב-CLI של gcloud כדי ליצור את משאב המופע, ליצור הצעה לרישום מפתחות האימות, ואז לאשר ולהפעיל את ההצעה.
יצירת המופע
את השלב הזה צריך לבצע אדמין של מופע עם התפקיד Cloud KMS single-tenant HSM Proposer.
מגדירים את פרויקט ברירת המחדל.
gcloud config set project PROJECT_IDמחליפים את PROJECT_ID במזהה הפרויקט.
יוצרים מכונת Cloud HSM לדייר יחיד.
gcloud kms single-tenant-hsm create --location=LOCATION \ --total-approver-count=QUORUM_MEMBER_COUNT \ --single-tenant-hsm-instance-id=INSTANCE_IDמחליפים את מה שכתוב בשדות הבאים:
-
LOCATION: המיקום שבו רוצים ליצור את המופע, לדוגמה:us-central1. -
QUORUM_MEMBER_COUNT: המספר הכולל של חברי הקוורום. זה גם מספר מפתחות הבקרה שיצרתם בעבר. הערך המינימלי הוא3. אפשר להוסיף מפתחות נוספים בהמשך באישור קוורום. כדי לשחזר את מפתח הבקרה אחרי שהוא אבד, צריך שיהיה לפחות חבר אחד נוסף בקבוצת הקוורום מעבר לגודל הקוורום הנדרש. -
INSTANCE_ID: המזהה שרוצים להשתמש בו עבור המופע. לדוגמה:example-sthsm-instance. אפשר להשמיט את הדגל--single-tenant-hsm-instance-idכדי ש-Cloud HSM יקצה UUID.
-
בודקים את הסטטוס של המופע.
gcloud kms single-tenant-hsm describe INSTANCE_ID \ --location=LOCATIONמחליפים את מה שכתוב בשדות הבאים:
-
INSTANCE_ID: המזהה של המכונה. -
LOCATION: המיקום שבו יצרתם את המכונה.
אם המצב הוא
PENDING_TWO_FACTOR_AUTH_REGISTRATION, אפשר להקצות את המופע. בדרך כלל עוברות 5 עד 30 דקות עד שהמצב הזה מתעדכן.-
הקצאת המופע
-
יוצרים הצעה לרישום מפתחות לאימות דו-שלבי באמצעות הפעולה
register_2fa_keys. כדי לבצע את השלב הזה, צריך את התפקיד Cloud KMS single-tenant HSM Proposer. בניגוד לרוב ההצעות, ההצעה register_2fa_keys מחייבת קבלת אתגרים חתומים מכל חברי הקוורום.gcloud kms single-tenant-hsm proposal create INSTANCE_ID \ --single-tenant-hsm-instance-proposal-id PROPOSAL_ID \ --location LOCATION \ --operation-type register_2fa_keys \ --required-approver-count MEMBERS_REQUIRED_FOR_APPROVAL \ --two-factor-public-key-pems=PUBLIC_KEY_LIST
מחליפים את מה שכתוב בשדות הבאים:
-
INSTANCE_ID: המזהה של המכונה. -
PROPOSAL_ID: המזהה הייחודי שרוצים להשתמש בו להצעה הזו, למשלset-up-2fa. -
LOCATION: המיקום שבו יצרתם את המכונה. -
MEMBERS_REQUIRED_FOR_APPROVAL: מספר חברי הקוורום שצריכים לאשר הצעה לפני שאפשר לבצע את הפעולה. הערך המינימלי הוא2. אי אפשר לשנות את הערך הזה אחרי הקצאת המופע. למשתתפים בקבוצת הקוורום צריכה להיות תמיד גישה למספר הזה לפחות של מפתחות בקרה, כדי לשמור על הרשאות האדמין במופע. -
PUBLIC_KEY_LIST: רשימה מופרדת בפסיקים של נתיבים לחלקים של המפתחות הציבוריים של כל מפתחות הבקרה, לדוגמהrsapub1.pem,rsapub2.pem,rsapub3.pem. מספר המפתחות הציבוריים ברשימה הזו צריך להיות זהה לערך שלQUORUM_MEMBER_COUNTשבו השתמשתם בעבר.
-
-
אפשר לראות את הסטטוס של ההצעה ולחכות שהסטטוס שלה יהפוך ל-
PENDING.gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID \ --location LOCATION
מחליפים את מה שכתוב בשדות הבאים:
-
INSTANCE_ID: המזהה של המכונה. PROPOSAL_IDהמזהה של ההצעה, לדוגמה:set-up-2fa.-
LOCATION: המיקום שבו יצרתם את המכונה.
כשהסטטוס הוא
PENDING, אפשר לחתום על האתגרים. -
-
קבלת האתגרים מההצעה. הקצאת משאבים של מופע חדש של Cloud HSM עם דייר יחיד מחייבת אתגרים חתומים מכל חברי הקוורום.
gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID \ --location LOCATION \ --format="json[](quorumParameters.challenges)"
הפקודה הזו מחזירה מערך של אתגרים בפורמט JSON.
-
לכל מפתח, מפענחים את האתגר באמצעות הפקודה `basenc --base64url -d` וחותמים עליו באמצעות המפתח הפרטי המתאים.
echo CHALLENGE_N | basenc --base64url -d > decoded-challenge-N.txt openssl dgst -sign PRIVATE_KEY_N -out signed-challenge-N.txt decoded-challenge-N.txt
מחליפים את מה שכתוב בשדות הבאים:
-
N: מספר האתגר – לדוגמה,1לאתגר הראשון,2לאתגר השני וכן הלאה. CHALLENGE_N: התוכן של אתגר מספרNמהפלט של השלב הקודם.-
PRIVATE_KEY_N: הנתיב למפתח הפרטי מספרN, לדוגמהrsaprivate1.pemלאתגר הראשון.
-
-
מאשרים את ההצעה על ידי העלאת האתגרים החתומים. אפשר להעלות אותם בפקודה אחת או בכמה פקודות. כדי לבצע את השלב הזה צריך את התפקיד Cloud KMS single-tenant HSM Quorum Member.
gcloud kms single-tenant-hsm proposal approve PROPOSAL_ID \ --location LOCATION \ --single_tenant_hsm_instance INSTANCE_ID \ --quorum-challenge-replies="SIGNED_QUORUM_CHALLENGE_LIST"
מחליפים את
SIGNED_QUORUM_CHALLENGE_LISTבמערך של אתגרים בפורמט JSON, כאשר כל פריט ברשימה הוא טופל שמכיל את הנתיב לאתגר החתום ואת הנתיב למפתח הציבורי התואם. לדוגמה,[('signed-challenge-1.txt','rsapub1.pem'), ('signed-challenge-2.txt','rsapub2.pem')]כדי לשלוח את שני האתגרים החתומים הראשונים בפקודה אחת.אחרי שמעלים את מספר האתגרים החתומים הנדרש, הסטטוס של ההצעה מתעדכן ל-
APPROVED. -
אחרי שההצעה תאושר, משתמשים בפקודה
executeכדי להשלים את הפעולהregister_2fa_keys. בשלב הזה נדרש התפקיד Cloud KMS single-tenant HSM Executor, והוא חייב להתבצע תוך 24 שעות אחרי יצירת ההצעה.gcloud kms single-tenant-hsm proposal execute PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID --location LOCATION
זוהי פעולה ממושכת שמקצה משתמשים ויוצרת גיבויים. המופע הופך ל-
ACTIVEאחרי 20 עד 30 דקות. אחרי שהמכונה
ACTIVE, אפשר לראות את פרטי המכונה כדי לראות אתdisableDate:gcloud kms single-tenant-hsm describe INSTANCE_ID \ --location=LOCATIONמציינים את
disableDateשל המופע. עליך להשלים את הפעולהrefresh_sthiלפני המועד הזה, אחרת המופע שלך יושבת.
הצגת מופעים
משתמשים עם אחד מהתפקידים הבאים יכולים לראות רשימה של מופעי Single-tenant Cloud HSM והסטטוס שלהם:
- Cloud KMS single-tenant HSM Proposer
- חבר בקוורום של Cloud KMS HSM עם דייר יחיד
- Cloud KMS single-tenant HSM Executor
- Cloud KMS Viewer
- Cloud KMS Administrator
חשוב לבדוק את מצב המופעים באופן קבוע. כדי שהמכונות יישארו במצב פעיל, צריך לרענן אותן באופן קבוע.
אפשר להשתמש במופעים במצב פעיל. מפתחים שצריכים ליצור או לייבא מפתחות במופעים של Cloud HSM עם דייר יחיד צריכים את מזהה המשאב של המופע. מזהה המשאב מופיע בפורמט הבא:
projects/INSTANCE_PROJECT/locations/LOCATION/singleTenantHsmInstances/INSTANCE_NAME
כדי לראות את המופעים בארגון ולמצוא את מזהי המשאבים שלהם, פועלים לפי השלבים הבאים:
המסוף
נכנסים לדף KMS infrastructure במסוף Google Cloud .
בכרטיס Single-tenant HSM instance (מופע HSM עם דייר יחיד), לוחצים על View (הצגה). בדף Single-tenant HSM instance מוצגת רשימה של כל המקרים של Single-tenant Cloud HSM שיש לכם הרשאה לצפות בהם.
כדי לראות את הפרטים של מופע, לוחצים על שם המופע. בדף Single-tenant HSM instance details מוצגים פרטים על המופע שנבחר, כולל מזהה המשאב המלא של המופע ורשימה של הצעות שנוצרו עבור המופע.
אופציונלי: כדי לראות או להוריד את המפתחות הציבוריים שמשויכים למפתחות הנוכחיים של אימות דו-שלבי (2FA) של חברי הקוורום, לוחצים על קבלת מפתח ציבורי. אפשר להשוות את המפתחות הציבוריים עם מפתחות ה-2FA הפרטיים כדי לוודא אילו מפתחות בקרה פעילים.
gcloud
אפשר להציג רשימה של מופעים קיימים באמצעות השיטה kms single-tenant-hsm list.
gcloud kms single-tenant-hsm list --location=LOCATION
מחליפים את LOCATION במיקום שבו רוצים לראות מופעים של Cloud HSM עם דייר יחיד.
אפשר להציג פרטים של מופע קיים באמצעות השיטה kms single-tenant-hsm describe.
gcloud kms single-tenant-hsm describe INSTANCE_ID \
--location=LOCATION
מחליפים את מה שכתוב בשדות הבאים:
-
INSTANCE_ID: המכונה שרוצים לראות את הפרטים שלה. -
LOCATION: המיקום שבו רוצים להציג מופעים של Cloud HSM בדיירות יחידה.
שימוש במכונה
בזמן שהמכונה שלכם במצב ACTIVE, אתם יכולים ליצור מפתחות ולהשתמש בהם. אפשר ליצור מפתחות Cloud HSM עם דייר יחיד בכל אוסף מפתחות שקיים באותו מיקום כמו מופע פעיל של Cloud HSM עם דייר יחיד.
כדי ליצור מפתחות Cloud HSM בדייר יחיד, צריך את התפקיד יוצר מפתחות HSM בדייר יחיד ב-Cloud KMS בנוסף לתפקיד אדמין של Cloud KMS.
אחרי שיוצרים מפתחות Cloud HSM עם דייר יחיד, לא נדרשות הרשאות מיוחדות כדי להשתמש בהם.
יצירת מפתח
כשיוצרים מפתח Cloud HSM בדייר יחיד, צריך לציין את מופע Cloud HSM בדייר יחיד שבו רוצים ליצור אותו. אחרת, התהליך דומה ליצירת כל מפתח אחר. הוראות מפורטות זמינות במאמר יצירת מפתח.
ייבוא מפתח
כשמייבאים חומר מפתח למפתח Cloud HSM בדייר יחיד, צריך לציין את מופע Cloud HSM בדייר יחיד שבו רוצים לאחסן אותו. אחרת, התהליך דומה לייבוא של כל מפתח אחר. הוראות מפורטות זמינות במאמר ייבוא גרסת מפתח ל-Cloud Key Management Service.
שימוש במפתח
אחרי שיוצרים את המפתח, השימוש במפתח Cloud HSM עם דייר יחיד זהה לשימוש בכל מפתח אחר של Cloud HSM. כדי להשתמש במפתח, לא צריך לציין את מופע ה-HSM בענן עם דייר יחיד.
ניידות מפתחות
ניידות מפתחות מאפשרת לכם לנהל מפתחות אריזה משלכם במופעי Cloud HSM עם דייר יחיד. היכולת הזו מאפשרת לייבא ולייצא מפתחות אחרים (שנקראים מפתחות שאפשר לעטוף) על ידי עטיפה שלהם באמצעות מפתח העטיפה המותאם אישית שלכם. ניוד מפתחות שימושי לצורך פעולה הדדית של מפתחות בין ספקי ענן שונים או בין אזורים שונים. Google Cloud
כדי לבצע פעולות של ניוד מפתחות, צריך ליצור את המפתחות ולאחסן אותם במופעי Cloud HSM עם דייר יחיד. RFC 5649 הוא האלגוריתם היחיד שנתמך להצפנת מפתחות.
כדי להשתמש בניוד מפתחות, צריך לבצע את השלבים הבאים:
- הגדרת מפתח עוטף מהימן
- יצירה או ייבוא של מפתח שאפשר לעטוף
- משתמשים במפתח האריזה המהימן כדי לייבא חומר מפתח שעבר אריזה מראש או לייצא מפתח שאפשר לארוז.
הגדרת מפתח עוטף מהימן
מפתח אריזה מהימן הוא מפתח AES שמשמש לאריזה ולפריקה של מפתחות אחרים לצורך ייצוא או ייבוא, כפי שמוגדר ב-RFC 5649. כדי להגדיר מפתח אריזה מהימן במופע Cloud HSM עם דייר יחיד, צריך לייבא את המפתח כמפתח לייבוא בלבד עם המטרה AES_WRAPPING, ואז להפוך אותו למהימן.
קידום מפתח דורש אישור של חבר אחד בקוורום.
-
יוצרים משאב מפתח לייבוא בלבד עם המטרה
AES_WRAPPING:gcloud kms keys create KEY_NAME \ --location LOCATION \ --keyring KEY_RING \ --purpose AES_WRAPPING \ --protection-level HSM_SINGLE_TENANT \ --skip-initial-version-creation \ --import-only \ --crypto-key-backend "projects/INSTANCE_PROJECT/locations/LOCATION/singleTenantHsmInstances/INSTANCE_NAME"
מחליפים את מה שכתוב בשדות הבאים:
-
KEY_NAME: המזהה של מפתח העטיפה המהימן. -
LOCATION: האזור שבו נמצאים אוסף המפתחות ומופע Cloud HSM עם דייר יחיד. -
KEY_RING: מחזיק המפתחות שבו רוצים ליצור את המפתח. -
INSTANCE_PROJECT: המזהה של הפרויקט שמכיל את מופע Cloud HSM עם דייר יחיד. -
INSTANCE_NAME: המזהה של מופע Cloud HSM בדיירות יחידה.
-
-
יוצרים משימת ייבוא לייבוא חומר המפתח:
gcloud kms import-jobs create IMPORT_JOB_NAME \ --location LOCATION \ --keyring KEY_RING \ --import-method IMPORT_METHOD \ --protection-level HSM_SINGLE_TENANT
מחליפים את מה שכתוב בשדות הבאים:
-
IMPORT_JOB_NAME: המזהה של משימת הייבוא. -
IMPORT_METHOD: שיטת הייבוא של חומר המפתח לעטיפה, לדוגמה,rsa-oaep-4096-sha256-aes-256.
-
-
מייבאים את חומר המפתח הגולמי של AES.
gcloud kms keys versions import \ --import-job IMPORT_JOB_NAME \ --location LOCATION \ --keyring KEY_RING \ --key KEY_NAME \ --algorithm aes-256-kwp \ --target-key-file TRUSTED_KEY_PATH
מחליפים את
TRUSTED_KEY_PATHבנתיב לקובץ שמכיל את הבייטים הגולמיים של מפתח העטיפה המהימן. -
יצירת הצעה לקידום מפתח העטיפה למצב מהימן. סוג הפעולה הוא
upgrade_key_trust. פעולות שקשורות למבצעים צריכות להיות חתומות ומאושרות על ידי אותו חבר בקוורום שהתחיל אותן.gcloud kms single-tenant-hsm proposal create INSTANCE_NAME \ --location LOCATION \ --single-tenant-hsm-instance-proposal-id PROPOSAL_ID \ --operation-type upgrade_key_trust \ --keyring KEY_RING \ --key KEY_NAME \ --two-factor-login-key PATH_TO_PUBLIC_KEY
מחליפים את מה שכתוב בשדות הבאים:
-
PROPOSAL_ID: מזהה ייחודי של ההצעה. -
PATH_TO_PUBLIC_KEY: הנתיב למפתח הציבורי של חבר הקוורום שיזם את ההצעה וחתם עליה.
-
-
בודקים את הסטטוס של ההצעה ומחכים עד שהוא משתנה ל-
PENDING:gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_NAME \ --location LOCATION
אם הסטטוס הוא
PENDING, אפשר לחתום על האתגר. -
מקבלים את האתגר מההצעה.
gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_NAME \ --location LOCATION \ --format="json[](requiredActionQuorumParameters.requiredChallenges)"
הפקודה הזו מחזירה מערך בפורמט JSON שמכיל את האתגר.
-
מפענחים את האתגר באמצעות
basenc --base64url -d, ואז חותמים עליו. צריך לחתום על האתגר באמצעות המפתח הפרטי שמתאים למפתח הציבורי שסופק כשנוצרה ההצעה.echo CHALLENGE | basenc --base64url -d > decoded-challenge.txt openssl dgst -sign PRIVATE_KEY_PATH -out signed-challenge.txt decoded-challenge.txt
מחליפים את מה שכתוב בשדות הבאים:
-
CHALLENGE: התוכן של האתגר מהפלט של השלב הקודם. -
PRIVATE_KEY_PATH: הנתיב למפתח הפרטי של חבר הקוורום שיצר את ההצעה.
-
-
מאשרים את ההצעה על ידי העלאת האתגר החתום. כדי לבצע את השלב הזה צריך את התפקיד חבר בקוורום של HSM בדייר יחיד ב-Cloud KMS.
gcloud kms single-tenant-hsm proposal approve PROPOSAL_ID \ --location LOCATION \ --single_tenant_hsm_instance INSTANCE_NAME \ --required-challenge-replies="[('signed-challenge.txt','PUBLIC_KEY_PATH')]"
מחליפים את
PUBLIC_KEY_PATHבנתיב של המפתח הציבורי של חבר הקוורום שיצר את ההצעה.אחרי שמעלים את האתגר החתום, סטטוס ההצעה מתעדכן ל
APPROVED. -
אחרי שההצעה תאושר, תצטרכו להפעיל אותה כדי להשלים את המבצע:
gcloud kms single-tenant-hsm proposal execute PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_NAME \ --location LOCATION
אחרי שההצעה מבוצעת, המפתח מקודם למפתח אריזה מהימן ואפשר להשתמש בו כדי לייבא או לייצא מפתחות אחרים במופע של Cloud HSM עם דייר יחיד.
ניהול מפתחות שאפשר לעטוף
מפתח שאפשר לעטוף הוא מפתח קריפטוגרפי שמיועד לייבוא או לייצוא מאובטח באמצעות מפתח עטיפה מהימן. כשיוצרים את משאב המפתח, צריך להגדיר את המפתח כניתן לעטיפה. אי אפשר לשנות את ההגדרה הזו בהמשך.
יצירת מפתח חדש שאפשר לעטוף
כדי ליצור מפתח חדש שאפשר לעטוף, משתמשים בדגל --hsm-trusted-wrapping:
gcloud kms keys create WRAPPABLE_KEY_NAME \ --location LOCATION \ --keyring KEY_RING \ --purpose PURPOSE \ --protection-level HSM_SINGLE_TENANT \ --hsm-trusted-wrapping \ --crypto-key-backend "projects/INSTANCE_PROJECT/locations/LOCATION/singleTenantHsmInstances/INSTANCE_NAME"
מחליפים את מה שכתוב בשדות הבאים:
-
WRAPPABLE_KEY_NAME: השם של המפתח החדש שאפשר לעטוף. -
PURPOSE: המטרה של המפתח, לדוגמה,raw-encryption. אי אפשר להשתמש במפתחות מיובאים למטרהENCRYPT_DECRYPT.
ייבוא מפתח שאפשר לעטוף
אתם יכולים להשתמש במשימת ייבוא כדי לייבא חומרי מפתח קיימים שתרצו לייצא בעתיד. כדי לעשות זאת, צריך לכלול את הדגל hsm-trusted-wrapping גם כשיוצרים את המפתח וגם כשמייבאים את גרסת המפתח.
יוצרים משאב של מפתח עם הדגל
--hsm-trusted-wrapping:gcloud kms keys create WRAPPABLE_KEY_NAME \ --location LOCATION \ --keyring KEY_RING \ --purpose PURPOSE \ --protection-level HSM_SINGLE_TENANT \ --hsm-trusted-wrapping \ --skip-initial-version-creation \ --crypto-key-backend "projects/INSTANCE_PROJECT/locations/LOCATION/singleTenantHsmInstances/INSTANCE_NAME"יוצרים עבודת ייבוא:
gcloud kms import-jobs create IMPORT_JOB_NAME \ --location LOCATION \ --keyring KEY_RING \ --import-method IMPORT_METHOD \ --protection-level HSM_SINGLE_TENANTמייבאים את גרסת המפתח באמצעות הדגל
--hsm-trusted-wrapping:gcloud kms keys versions import \ --import-job IMPORT_JOB_NAME \ --location LOCATION \ --keyring KEY_RING \ --key WRAPPABLE_KEY_NAME \ --algorithm ALGORITHM \ --target-key-file UNWRAPPED_KEY_TO_IMPORT \ --hsm-trusted-wrappingמחליפים את מה שכתוב בשדות הבאים:
-
KEY_ALGORITHM: האלגוריתם של המפתח שמייבאים. -
UNWRAPPED_KEY_TO_IMPORT: הנתיב לחומר המפתח הגולמי (לא מפוענח).
-
שימוש במפתחות מהימנים לייבוא ולייצוא
אחרי שמגדירים מפתח אריזה מהימן, אפשר להשתמש בו כדי לייבא חומר מפתח שעבר אריזה מראש למפתח שאפשר לארוז, או לייצא מפתח שאפשר לארוז.
ייבוא גרסת מפתח שעברה הצפנה מראש באמצעות מפתח מהימן
אתם יכולים לייבא חומר מפתח שעבר אריזה מקומית באמצעות העותק שלכם של מפתח אריזה מהימן, בלי להשתמש במשימת ייבוא.
- מוודאים שיצרתם את משאב המפתח שאפשר לעטוף עם הדגל
--hsm-trusted-wrappingוהאפשרות--import-only. אפשר לעיין בקטע יצירת מפתח חדש שאפשר לעטוף. מייבאים את גרסת המפתח שעברה הצפנה:
gcloud kms keys versions import-trusted-key-wrapped \ --location LOCATION \ --target-keyring KEY_RING \ --target-key TARGET_KEY_NAME \ --trusted-keyring TRUSTED_KEY_RING \ --trusted-key TRUSTED_KEY_NAME \ --target-algorithm ALGORITHM \ --wrapped-key-file PATH_TO_WRAPPED_KEYמחליפים את מה שכתוב בשדות הבאים:
-
TARGET_KEY_NAME: השם של משאב המפתח שאפשר לעטוף, שאליו רוצים לייבא את חומר המפתח. -
TRUSTED_KEY_RING: אוסף המפתחות של מפתח העטיפה המהימן. -
TRUSTED_KEY_NAME: השם של מפתח העטיפה המהימן שקודם. -
ALGORITHM: האלגוריתם של מפתח היעד. הערכים הנתמכים הם כל האלגוריתמים של Cloud Key Management Service, חוץ מ-GOOGLE_SYMMETRIC_ENCRYPTION. -
PATH_TO_WRAPPED_KEY: הנתיב לקובץ שמכיל את חומר המפתח שעבר אריזה באמצעות מפתח האריזה המהימן.
-
ייצוא מפתח שאפשר לעטוף אותו על ידי עטיפתו במפתח מהימן
אפשר לעטוף מפתח קיים שאפשר לעטוף באמצעות מפתח עטיפה מהימן, ולשמור את חומר המפתח העטוף שמתקבל בקובץ.
gcloud kms keys versions export-trusted-key-wrapped \ --location LOCATION \ --trusted-keyring TRUSTED_KEY_RING \ --trusted-key TRUSTED_KEY_NAME \ --target-keyring TARGET_KEY_RING \ --target-key TARGET_KEY_NAME \ --wrapped-key-file PATH_TO_OUTPUT_WRAPPED_KEY
מחליפים את מה שכתוב בשדות הבאים:
-
TRUSTED_KEY_RING: אוסף המפתחות של מפתח העטיפה המהימן. -
TRUSTED_KEY_NAME: השם של מפתח העטיפה המהימן שקודם. -
TARGET_KEY_RING: אוסף המפתחות של המפתח שאפשר לעטוף שמייצאים. -
TARGET_KEY_NAME: השם של המפתח שאפשר לעטוף שמייצאים. -
PATH_TO_OUTPUT_WRAPPED_KEY: הנתיב שבו יישמר חומר המפתח העטוף.
תחזוקת מופע
אחרי שהמופע שלכם מוקצה, אתם אחראים לתחזוקה שלו. אתם מתחזקים את המופע על ידי יצירת הצעות לפעולות תחזוקה, קבלת אישור של קוורום ואז ביצוע הפעולה שאושרה. בכל רגע נתון יכולה להיות פעילה רק הצעה אחת. אם בוחרים לא לקדם הצעה, אי אפשר להציע פעולה אחרת עד שמוחקים את ההצעה הפעילה או עד שתוקף ההצעה יפוג.
צריך לרענן את המופע לפני disableDate. אם אתם צריכים לבדוק את disableDate של מופע, אתם יכולים לראות את פרטי המופע.
צפייה בהצעות לגבי מופעים
כדי לראות הצעות למופע, פועלים לפי השלבים הבאים:
המסוף
נכנסים לדף KMS infrastructure במסוף Google Cloud .
בכרטיס Single-tenant HSM instance (מופע HSM עם דייר יחיד), לוחצים על View (הצגה). בדף Single-tenant HSM instance מוצגת רשימה של כל המקרים של Single-tenant Cloud HSM שיש לכם הרשאה לצפות בהם.
מאתרים את המופע שבו רוצים לראות את ההצעות ולוחצים על השם של המופע. בדף Single-tenant HSM instance details מוצגים פרטים על המופע, כולל רשימה של הצעות שנוצרו עבור המופע.
אופציונלי: כדי לסנן את רשימת ההצעות, לוחצים על סרגל Filter ומזינים את קריטריוני הסינון. לדוגמה, אפשר לסנן את הרשימה כדי לראות רק את ההצעה שממתינה לאישור או רק הצעות שהושלמו בהצלחה.
gcloud
-
כדי להציג רשימה של הצעות קיימות, משתמשים בשיטה
kms single-tenant-hsm proposal list.gcloud kms single-tenant-hsm proposal list INSTANCE_ID \ --location=LOCATION
מחליפים את מה שכתוב בשדות הבאים:
-
INSTANCE_ID: המזהה של מופע Cloud HSM בדיירות יחידה שרוצים לראות את ההצעות לגביו. -
LOCATION: המיקום שבו רוצים להציג מופעים של Cloud HSM בדיירות יחידה.
-
רענון של מופע
אפשר לרענן את המופע כדי לשמור אותו מעודכן ולמנוע השבתה לא מתוכננת. כדי לבצע את הפעולה הזו נדרש אימות קוורום. אחרי שההצעה מאושרת, הפעולה נמשכת כ-15 עד 30 דקות.
כשמרעננים מופע, הערך של disableDate מוגדר ל-730 ימים מרגע הרענון.
-
יוצרים הצעה לרענון המכונה באמצעות סוג הפעולה
refresh_sthi. בשלב הזה נדרש התפקיד Cloud KMS single-tenant HSM Proposer.gcloud kms single-tenant-hsm proposal create INSTANCE_ID \ --location LOCATION \ --single-tenant-hsm-instance-proposal-id PROPOSAL_ID \ --operation-type refresh_sthi
מחליפים את מה שכתוב בשדות הבאים:
-
INSTANCE_ID: המזהה של המכונה. -
LOCATION: המיקום שבו יצרתם את המכונה. -
PROPOSAL_ID: המזהה הייחודי שרוצים להשתמש בו להצעה הזו. לדוגמה:refresh_instance.
-
-
אפשר לראות את הסטטוס של ההצעה ולחכות שהסטטוס שלה יהפוך ל-
PENDING.gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID \ --location LOCATION
מחליפים את מה שכתוב בשדות הבאים:
-
INSTANCE_ID: המזהה של המכונה. PROPOSAL_IDהמזהה של ההצעה, לדוגמה:refresh_instance.-
LOCATION: המיקום שבו יצרתם את המכונה.
כשהסטטוס הוא
PENDING, אפשר לחתום על האתגרים. -
-
קבלת האתגרים מההצעה.
gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID \ --location LOCATION \ --format="json[](quorumParameters.challenges)"
הפקודה הזו מחזירה מערך של אתגרים בפורמט JSON.
-
לכל אתגר שמוחזר בשלב הקודם, מפענחים את האתגר באמצעות
basenc --base64url -dוחותמים עליו באמצעות מפתח פרטי.echo CHALLENGE_N | basenc --base64url -d > decoded-challenge-N.txt openssl dgst -sign PRIVATE_KEY_N -out signed-challenge-N.txt decoded-challenge-N.txt
מחליפים את מה שכתוב בשדות הבאים:
-
N: מספר האתגר – לדוגמה,1לאתגר הראשון,2לאתגר השני וכן הלאה. CHALLENGE_N: התוכן של אתגר מספרNמהפלט של השלב הקודם.-
PRIVATE_KEY_N: הנתיב למפתח הפרטי מספרN, לדוגמהrsaprivate1.pemלאתגר הראשון.
-
-
מאשרים את ההצעה על ידי העלאת האתגרים החתומים. אפשר להעלות אותם בפקודה אחת או בכמה פקודות. כדי לבצע את השלב הזה צריך את התפקיד Cloud KMS single-tenant HSM Quorum Member.
gcloud kms single-tenant-hsm proposal approve PROPOSAL_ID \ --location LOCATION \ --single_tenant_hsm_instance INSTANCE_ID \ --quorum-challenge-replies="SIGNED_QUORUM_CHALLENGE_LIST"
מחליפים את
SIGNED_QUORUM_CHALLENGE_LISTבמערך של אתגרים בפורמט JSON, כאשר כל פריט ברשימה הוא טופל שמכיל את הנתיב לאתגר החתום ואת הנתיב למפתח הציבורי התואם. לדוגמה,[('signed-challenge-1.txt','rsapub1.pem'), ('signed-challenge-2.txt','rsapub2.pem')]כדי לשלוח את שני האתגרים החתומים הראשונים בפקודה אחת.אחרי שמעלים את מספר האתגרים החתומים הנדרש, הסטטוס של ההצעה מתעדכן ל-
APPROVED. -
מבצעים את ההצעה. בשלב הזה נדרש התפקיד Cloud KMS single-tenant HSM Executor, והוא חייב להתבצע תוך 24 שעות אחרי יצירת ההצעה.
gcloud kms single-tenant-hsm proposal execute PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID --location LOCATION
אחרי שהפעולה מסתיימת, המופע נשאר במצב `ACTIVE` והערך של
disableDateמוגדר ל-730 ימים מהרגע של הרענון.
הוספת חבר לקוורום
אפשר להוסיף חבר בקוורום למופע. כדי לבצע את הפעולה הזו, צריך אימות של קוורום. אחרי שההצעה מאושרת, הפעולה נמשכת כ-15 עד 30 דקות.
יוצרים זוג חדש של מפתחות RSA-2048 עבור חבר הקוורום החדש. פועלים לפי התקנים של הארגון ליצירת זוגות מפתחות RSA-2048 באסימונים פיזיים.
חשוב לשמור את המפתח הפרטי בצורה מאובטחת, כי הוא נדרש לאישור הצעות. חשוב לשמור את המפתח הציבורי בהישג יד, כי תצטרכו אותו כדי להוסיף את חבר הקוורום החדש למופע Cloud HSM עם דייר יחיד.
-
יוצרים הצעה להוספת חבר לקוורום למכונה באמצעות הפעולה
add_quorum_member. בשלב הזה נדרש התפקיד Cloud KMS single-tenant HSM Proposer.gcloud kms single-tenant-hsm proposal create INSTANCE_ID \ --location LOCATION \ --single-tenant-hsm-instance-proposal-id PROPOSAL_ID \ --operation-type add_quorum_member \ --two_factor_public_key_pem PATH_TO_PUBLIC_KEY
מחליפים את מה שכתוב בשדות הבאים:
-
INSTANCE_ID: המזהה של המכונה. -
LOCATION: המיקום שבו יצרתם את המכונה. -
PROPOSAL_ID: המזהה הייחודי שרוצים להשתמש בו להצעה הזו. לדוגמה:add_quorum_member. -
PATH_TO_PUBLIC_KEY: הנתיב למפתח הציבורי החדש, לדוגמהrsapub4.pem.
-
-
אפשר לראות את הסטטוס של ההצעה ולחכות שהסטטוס שלה יהפוך ל-
PENDING.gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID \ --location LOCATION
מחליפים את מה שכתוב בשדות הבאים:
-
INSTANCE_ID: המזהה של המכונה. PROPOSAL_IDהמזהה של ההצעה, לדוגמה:add_quorum_member.-
LOCATION: המיקום שבו יצרתם את המכונה.
כשהסטטוס הוא
PENDING, אפשר לחתום על האתגרים. -
-
קבלת האתגרים מההצעה. כדי להוסיף חבר חדש לקוורום, צריך לקבל אתגרים חתומים מקוורום של חברים קיימים, בנוסף לאתגר חתום מהחבר החדש באמצעות המפתח החדש.
gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID \ --location LOCATION \ --format="json[](requiredActionQuorumParameters.requiredChallenges,requiredActionQuorumParameters.quorumChallenges)"
הפקודה הזו מחזירה מערך של אתגרים בפורמט JSON. השדה
requiredActionQuorumParameters.requiredChallengesמכיל אתגר למפתח החדש שאתם רושמים. השדהrequiredActionQuorumParameters.quorumChallengesמכיל אתגרים עבור קוורום של המפתחות הקיימים. צריך לחתום על כל האתגרים באובייקטrequiredActionQuorumParameters. -
לכל אתגר שמוחזר בשלב הקודם, מפענחים את האתגר באמצעות
basenc --base64url -dוחותמים עליו באמצעות מפתח פרטי.echo CHALLENGE_N | basenc --base64url -d > decoded-challenge-N.txt openssl dgst -sign PRIVATE_KEY_N -out signed-challenge-N.txt decoded-challenge-N.txt
מחליפים את מה שכתוב בשדות הבאים:
-
N: מספר האתגר – לדוגמה,1לאתגר הראשון,2לאתגר השני וכן הלאה. CHALLENGE_N: התוכן של אתגר מספרNמהפלט של השלב הקודם.-
PRIVATE_KEY_N: הנתיב למפתח הפרטי מספרN, לדוגמהrsaprivate1.pemלאתגר הראשון.
-
-
מאשרים את ההצעה על ידי העלאת האתגרים החתומים. אפשר להעלות אותם בפקודה אחת או בכמה פקודות. כדי לבצע את השלב הזה צריך את התפקיד Cloud KMS single-tenant HSM Quorum Member.
gcloud kms single-tenant-hsm proposal approve PROPOSAL_ID \ --location LOCATION \ --single_tenant_hsm_instance INSTANCE_ID \ --quorum-challenge-replies="SIGNED_QUORUM_CHALLENGE_LIST" \ --required-challenge-replies="SIGNED_REQUIRED_CHALLENGE_LIST"
מחליפים את מה שכתוב בשדות הבאים:
-
SIGNED_QUORUM_CHALLENGE_LIST: מערך בפורמט JSON של אתגרים חתומים באמצעות מפתחות פרטיים שכבר רשומים, כאשר כל פריט ברשימה הוא טופל שמכיל את הנתיב לאתגר החתום ואת הנתיב למפתח הציבורי התואם – לדוגמה,[('signed-challenge-1.txt','rsapub1.pem'), ('signed-challenge-2.txt','rsapub2.pem')]כדי לשלוח את שני האתגרים החתומים הראשונים בפקודה אחת. -
SIGNED_REQUIRED_CHALLENGE_LIST: מערך בפורמט JSON שמכיל את האתגר שנחתם באמצעות המפתח הפרטי החדש, כאשר הפריט היחיד ברשימה הוא טאפל שמכיל את הנתיב לאתגר החתום ואת הנתיב למפתח הציבורי התואם – לדוגמה,[('signed-challenge-newkey.txt','rsapub-newkey.pem')].
אחרי שמעלים את מספר האתגרים החתומים הנדרש, הסטטוס של ההצעה מתעדכן ל-
APPROVED. -
-
מבצעים את ההצעה. בשלב הזה נדרש התפקיד Cloud KMS single-tenant HSM Executor, והוא חייב להתבצע תוך 24 שעות אחרי יצירת ההצעה.
gcloud kms single-tenant-hsm proposal execute PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID --location LOCATION
אחרי שהפעולה תושלם, חבר הקוורום החדש יוכל להשתתף באתגרים כדי לאשר הצעות. המפתח הציבורי שהוספתם נכלל עכשיו ברשימת המפתחות הציבוריים בפרטי המופע.
הסרה של חבר בקוורום
אם יש לכם יותר חברים בקוורום מהגודל הנדרש, אתם יכולים להסיר חבר בקוורום ממופע. כדי לבצע את הפעולה הזו נדרש אימות קוורום. אחרי אישור ההצעה, הפעולה תימשך כ-15 עד 30 דקות.
-
יוצרים הצעה להסרת חבר מקוורום מהמכונה באמצעות הפעולה
remove_quorum_member. בשלב הזה נדרש התפקיד Cloud KMS single-tenant HSM Proposer.gcloud kms single-tenant-hsm proposal create INSTANCE_ID \ --location LOCATION \ --single-tenant-hsm-instance-proposal-id PROPOSAL_ID \ --operation-type remove_quorum_member \ --two_factor_public_key_pem PATH_TO_PUBLIC_KEY
מחליפים את מה שכתוב בשדות הבאים:
-
INSTANCE_ID: המזהה של המכונה. -
LOCATION: המיקום שבו יצרתם את המכונה. -
PROPOSAL_ID: המזהה הייחודי שרוצים להשתמש בו להצעה הזו. לדוגמה:remove_quorum_member. -
PATH_TO_PUBLIC_KEY: הנתיב למפתח הציבורי שרוצים להסיר מהמופע, לדוגמה,rsapub3.pem. אחרי שהפעולה מסתיימת, אי אפשר להשתמש במפתח הפרטי המתאים כדי לאשר הצעות.
-
-
אפשר לראות את הסטטוס של ההצעה ולחכות שהסטטוס שלה יהפוך ל-
PENDING.gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID \ --location LOCATION
מחליפים את מה שכתוב בשדות הבאים:
-
INSTANCE_ID: המזהה של המכונה. PROPOSAL_IDהמזהה של ההצעה, לדוגמה:remove_quorum_member.-
LOCATION: המיקום שבו יצרתם את המכונה.
כשהסטטוס הוא
PENDING, אפשר לחתום על האתגרים. -
-
קבלת האתגרים מההצעה.
gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID \ --location LOCATION \ --format="json[](quorumParameters.challenges)"
הפקודה הזו מחזירה מערך של אתגרים בפורמט JSON.
-
לכל אתגר שמוחזר בשלב הקודם, מפענחים את האתגר באמצעות
basenc --base64url -dוחותמים עליו באמצעות מפתח פרטי.echo CHALLENGE_N | basenc --base64url -d > decoded-challenge-N.txt openssl dgst -sign PRIVATE_KEY_N -out signed-challenge-N.txt decoded-challenge-N.txt
מחליפים את מה שכתוב בשדות הבאים:
-
N: מספר האתגר – לדוגמה,1לאתגר הראשון,2לאתגר השני וכן הלאה. CHALLENGE_N: התוכן של אתגר מספרNמהפלט של השלב הקודם.-
PRIVATE_KEY_N: הנתיב למפתח הפרטי מספרN, לדוגמהrsaprivate1.pemלאתגר הראשון.
-
-
מאשרים את ההצעה על ידי העלאת האתגרים החתומים. אפשר להעלות אותם בפקודה אחת או בכמה פקודות. כדי לבצע את השלב הזה צריך את התפקיד Cloud KMS single-tenant HSM Quorum Member.
gcloud kms single-tenant-hsm proposal approve PROPOSAL_ID \ --location LOCATION \ --single_tenant_hsm_instance INSTANCE_ID \ --quorum-challenge-replies="SIGNED_QUORUM_CHALLENGE_LIST"
מחליפים את
SIGNED_QUORUM_CHALLENGE_LISTבמערך של אתגרים בפורמט JSON, כאשר כל פריט ברשימה הוא טופל שמכיל את הנתיב לאתגר החתום ואת הנתיב למפתח הציבורי התואם. לדוגמה,[('signed-challenge-1.txt','rsapub1.pem'), ('signed-challenge-2.txt','rsapub2.pem')]כדי לשלוח את שני האתגרים החתומים הראשונים בפקודה אחת.אחרי שמעלים את מספר האתגרים החתומים הנדרש, הסטטוס של ההצעה מתעדכן ל-
APPROVED. -
מבצעים את ההצעה. בשלב הזה נדרש התפקיד Cloud KMS single-tenant HSM Executor, והוא חייב להתבצע תוך 24 שעות אחרי יצירת ההצעה.
gcloud kms single-tenant-hsm proposal execute PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID --location LOCATION
אחרי שהפעולה מסתיימת, חבר הקוורום שהוסר לא יכול יותר להשתתף באתגרים לאישור הצעות. המפתח הציבורי שהסרתם כבר לא נכלל ברשימת המפתחות הציבוריים בפרטי המופע.
השבתת מכונה
אפשר להשבית מופע כדי לחסום זמנית את הגישה לכל המפתחות שלו. הפעולה הזו מחייבת אימות של קוורום. אחרי שההצעה מאושרת, הפעולה נמשכת כ-15 עד 30 דקות.
בזמן שמופע מושבת, מפתחות שמאוחסנים באותו מופע עדיין מופיעים כ-ACTIVE, אבל אי אפשר להשתמש בהם. ניסיון לבצע פעולות קריפטוגרפיות באמצעות מפתח במופע מושבת יוביל לשגיאה.
-
יוצרים הצעה להשבתת המכונה באמצעות סוג הפעולה
disable_sthi. בשלב הזה נדרש התפקיד Cloud KMS single-tenant HSM Proposer.gcloud kms single-tenant-hsm proposal create INSTANCE_ID \ --location LOCATION \ --single-tenant-hsm-instance-proposal-id PROPOSAL_ID \ --operation-type disable_sthi
מחליפים את מה שכתוב בשדות הבאים:
-
INSTANCE_ID: המזהה של המכונה. -
LOCATION: המיקום שבו יצרתם את המכונה. -
PROPOSAL_ID: המזהה הייחודי שרוצים להשתמש בו להצעה הזו. לדוגמה:disable_instance.
-
-
אפשר לראות את הסטטוס של ההצעה ולחכות שהסטטוס שלה יהפוך ל-
PENDING.gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID \ --location LOCATION
מחליפים את מה שכתוב בשדות הבאים:
-
INSTANCE_ID: המזהה של המכונה. PROPOSAL_IDהמזהה של ההצעה, לדוגמה:disable_instance.-
LOCATION: המיקום שבו יצרתם את המכונה.
כשהסטטוס הוא
PENDING, אפשר לחתום על האתגרים. -
-
קבלת האתגרים מההצעה.
gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID \ --location LOCATION \ --format="json[](quorumParameters.challenges)"
הפקודה הזו מחזירה מערך של אתגרים בפורמט JSON.
-
לכל אתגר שמוחזר בשלב הקודם, מפענחים את האתגר באמצעות
basenc --base64url -dוחותמים עליו באמצעות מפתח פרטי.echo CHALLENGE_N | basenc --base64url -d > decoded-challenge-N.txt openssl dgst -sign PRIVATE_KEY_N -out signed-challenge-N.txt decoded-challenge-N.txt
מחליפים את מה שכתוב בשדות הבאים:
-
N: מספר האתגר – לדוגמה,1לאתגר הראשון,2לאתגר השני וכן הלאה. CHALLENGE_N: התוכן של אתגר מספרNמהפלט של השלב הקודם.-
PRIVATE_KEY_N: הנתיב למפתח הפרטי מספרN, לדוגמהrsaprivate1.pemלאתגר הראשון.
-
-
מאשרים את ההצעה על ידי העלאת האתגרים החתומים. אפשר להעלות אותם בפקודה אחת או בכמה פקודות. כדי לבצע את השלב הזה צריך את התפקיד Cloud KMS single-tenant HSM Quorum Member.
gcloud kms single-tenant-hsm proposal approve PROPOSAL_ID \ --location LOCATION \ --single_tenant_hsm_instance INSTANCE_ID \ --quorum-challenge-replies="SIGNED_QUORUM_CHALLENGE_LIST"
מחליפים את
SIGNED_QUORUM_CHALLENGE_LISTבמערך של אתגרים בפורמט JSON, כאשר כל פריט ברשימה הוא טופל שמכיל את הנתיב לאתגר החתום ואת הנתיב למפתח הציבורי התואם. לדוגמה,[('signed-challenge-1.txt','rsapub1.pem'), ('signed-challenge-2.txt','rsapub2.pem')]כדי לשלוח את שני האתגרים החתומים הראשונים בפקודה אחת.אחרי שמעלים את מספר האתגרים החתומים הנדרש, הסטטוס של ההצעה מתעדכן ל-
APPROVED. -
מבצעים את ההצעה. בשלב הזה נדרש התפקיד Cloud KMS single-tenant HSM Executor, והוא חייב להתבצע תוך 24 שעות אחרי יצירת ההצעה.
gcloud kms single-tenant-hsm proposal execute PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID --location LOCATION
אחרי שהפעולה מסתיימת, המופע נשאר במצב
DISABLEDואי אפשר להשתמש בו עד שמפעילים אותו מחדש.
הפעלת מופע
אפשר להפעיל מחדש מופע של DISABLED כדי לשחזר את הגישה אליו ואל המפתחות שלו.
כדי לבצע את הפעולה הזו נדרש אימות קוורום. אחרי שההצעה מאושרת,
הפעולה נמשכת כ-15 עד 30 דקות.
-
יוצרים הצעה להפעלת המכונה באמצעות סוג הפעולה
enable_sthi. בשלב הזה נדרש התפקיד Cloud KMS single-tenant HSM Proposer.gcloud kms single-tenant-hsm proposal create INSTANCE_ID \ --location LOCATION \ --single-tenant-hsm-instance-proposal-id PROPOSAL_ID \ --operation-type enable_sthi
מחליפים את מה שכתוב בשדות הבאים:
-
INSTANCE_ID: המזהה של המכונה. -
LOCATION: המיקום שבו יצרתם את המכונה. -
PROPOSAL_ID: המזהה הייחודי שרוצים להשתמש בו להצעה הזו. לדוגמה:enable_instance.
-
-
אפשר לראות את הסטטוס של ההצעה ולחכות שהסטטוס שלה יהפוך ל-
PENDING.gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID \ --location LOCATION
מחליפים את מה שכתוב בשדות הבאים:
-
INSTANCE_ID: המזהה של המכונה. PROPOSAL_IDהמזהה של ההצעה, לדוגמה:enable_instance.-
LOCATION: המיקום שבו יצרתם את המכונה.
כשהסטטוס הוא
PENDING, אפשר לחתום על האתגרים. -
-
קבלת האתגרים מההצעה.
gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID \ --location LOCATION \ --format="json[](quorumParameters.challenges)"
הפקודה הזו מחזירה מערך של אתגרים בפורמט JSON.
-
לכל אתגר שמוחזר בשלב הקודם, מפענחים את האתגר באמצעות
basenc --base64url -dוחותמים עליו באמצעות מפתח פרטי.echo CHALLENGE_N | basenc --base64url -d > decoded-challenge-N.txt openssl dgst -sign PRIVATE_KEY_N -out signed-challenge-N.txt decoded-challenge-N.txt
מחליפים את מה שכתוב בשדות הבאים:
-
N: מספר האתגר – לדוגמה,1לאתגר הראשון,2לאתגר השני וכן הלאה. CHALLENGE_N: התוכן של אתגר מספרNמהפלט של השלב הקודם.-
PRIVATE_KEY_N: הנתיב למפתח הפרטי מספרN, לדוגמהrsaprivate1.pemלאתגר הראשון.
-
-
מאשרים את ההצעה על ידי העלאת האתגרים החתומים. אפשר להעלות אותם בפקודה אחת או בכמה פקודות. כדי לבצע את השלב הזה צריך את התפקיד Cloud KMS single-tenant HSM Quorum Member.
gcloud kms single-tenant-hsm proposal approve PROPOSAL_ID \ --location LOCATION \ --single_tenant_hsm_instance INSTANCE_ID \ --quorum-challenge-replies="SIGNED_QUORUM_CHALLENGE_LIST"
מחליפים את
SIGNED_QUORUM_CHALLENGE_LISTבמערך של אתגרים בפורמט JSON, כאשר כל פריט ברשימה הוא טופל שמכיל את הנתיב לאתגר החתום ואת הנתיב למפתח הציבורי התואם. לדוגמה,[('signed-challenge-1.txt','rsapub1.pem'), ('signed-challenge-2.txt','rsapub2.pem')]כדי לשלוח את שני האתגרים החתומים הראשונים בפקודה אחת.אחרי שמעלים את מספר האתגרים החתומים הנדרש, הסטטוס של ההצעה מתעדכן ל-
APPROVED. -
מבצעים את ההצעה. בשלב הזה נדרש התפקיד Cloud KMS single-tenant HSM Executor, והוא חייב להתבצע תוך 24 שעות אחרי יצירת ההצעה.
gcloud kms single-tenant-hsm proposal execute PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID --location LOCATION
אחרי שהפעולה מסתיימת, המופע חוזר למצב `ACTIVE` והערך של
disableDateמוגדר ל-730 ימים מהרגע שבו מתבצע הרענון.
מחיקת מכונה
אפשר למחוק מופע כדי להשמיד אותו ואת המפתחות שלו באופן סופי. הפעולה הזו מחייבת אימות של קוורום. אחרי שההצעה מאושרת, הפעולה נמשכת כ-15 עד 30 דקות.
אחרי שמחקתם מופע, מפתחות ששמורים במופע הזה עדיין יופיעו כ-ACTIVE, אבל לא תוכלו להשתמש בהם. ניסיון לבצע פעולות קריפטוגרפיות באמצעות מפתח במופע שנמחק יוביל לשגיאה.
-
יוצרים הצעה למחיקת המכונה באמצעות סוג הפעולה
delete_sthi. בשלב הזה נדרש התפקיד Cloud KMS single-tenant HSM Proposer.gcloud kms single-tenant-hsm proposal create INSTANCE_ID \ --location LOCATION \ --single-tenant-hsm-instance-proposal-id PROPOSAL_ID \ --operation-type delete_sthi
מחליפים את מה שכתוב בשדות הבאים:
-
INSTANCE_ID: המזהה של המופע שרוצים למחוק. -
LOCATION: המיקום שבו יצרתם את המכונה. -
PROPOSAL_ID: המזהה הייחודי שרוצים להשתמש בו להצעה הזו. לדוגמה:delete_instance.
-
-
אפשר לראות את הסטטוס של ההצעה ולחכות שהסטטוס שלה יהפוך ל-
PENDING.gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID \ --location LOCATION
מחליפים את מה שכתוב בשדות הבאים:
-
INSTANCE_ID: המזהה של המכונה. PROPOSAL_IDהמזהה של ההצעה, לדוגמה:delete_instance.-
LOCATION: המיקום שבו יצרתם את המכונה.
כשהסטטוס הוא
PENDING, אפשר לחתום על האתגרים. -
-
קבלת האתגרים מההצעה.
gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID \ --location LOCATION \ --format="json[](quorumParameters.challenges)"
הפקודה הזו מחזירה מערך של אתגרים בפורמט JSON.
-
לכל אתגר שמוחזר בשלב הקודם, מפענחים את האתגר באמצעות
basenc --base64url -dוחותמים עליו באמצעות מפתח פרטי.echo CHALLENGE_N | basenc --base64url -d > decoded-challenge-N.txt openssl dgst -sign PRIVATE_KEY_N -out signed-challenge-N.txt decoded-challenge-N.txt
מחליפים את מה שכתוב בשדות הבאים:
-
N: מספר האתגר – לדוגמה,1לאתגר הראשון,2לאתגר השני וכן הלאה. CHALLENGE_N: התוכן של אתגר מספרNמהפלט של השלב הקודם.-
PRIVATE_KEY_N: הנתיב למפתח הפרטי מספרN, לדוגמהrsaprivate1.pemלאתגר הראשון.
-
-
מאשרים את ההצעה על ידי העלאת האתגרים החתומים. אפשר להעלות אותם בפקודה אחת או בכמה פקודות. כדי לבצע את השלב הזה צריך את התפקיד Cloud KMS single-tenant HSM Quorum Member.
gcloud kms single-tenant-hsm proposal approve PROPOSAL_ID \ --location LOCATION \ --single_tenant_hsm_instance INSTANCE_ID \ --quorum-challenge-replies="SIGNED_QUORUM_CHALLENGE_LIST"
מחליפים את
SIGNED_QUORUM_CHALLENGE_LISTבמערך של אתגרים בפורמט JSON, כאשר כל פריט ברשימה הוא טופל שמכיל את הנתיב לאתגר החתום ואת הנתיב למפתח הציבורי התואם. לדוגמה,[('signed-challenge-1.txt','rsapub1.pem'), ('signed-challenge-2.txt','rsapub2.pem')]כדי לשלוח את שני האתגרים החתומים הראשונים בפקודה אחת.אחרי שמעלים את מספר האתגרים החתומים הנדרש, הסטטוס של ההצעה מתעדכן ל-
APPROVED. -
מוודאים שרוצים להמשיך למחיקת המופע ולמחיקת כל הנתונים המוצפנים באמצעות מפתחות שנוצרו במופע הזה, ואז מריצים את ההצעה. בשלב הזה נדרש התפקיד Cloud KMS single-tenant HSM Executor, והוא חייב להתבצע תוך 24 שעות אחרי יצירת ההצעה.
אזהרה: הפקודה הבאה היא בלתי הפיכה. יכול להיות שיהיה אובדן נתונים קבוע. Google לא יכולה לעזור לכם לשחזר מפתחות במופע שנמחק.gcloud kms single-tenant-hsm proposal execute PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID --location LOCATION
אחרי שהפעולה מסתיימת, המופע נמחק.
מחיקת הצעה
אם החלטתם לא לאשר הצעה או לא לבצע אותה, אתם יכולים למחוק את ההצעה לפני שהתוקף שלה יפוג. אם תמחקו הצעה בהמתנה, לא תוכלו לאשר אותה ותוכלו ליצור הצעה חדשה. אם מוחקים הצעה שאושרה, אי אפשר לבצע את הפעולה.
-
כדי למחוק הצעה, משתמשים בפקודה
proposal delete. לשם כך נדרש התפקיד Cloud KMS single-tenant HSM Proposer.gcloud kms single-tenant-hsm proposal delete PROPOSAL_ID \ --location LOCATION \ --single_tenant_hsm_instance INSTANCE_ID
מחליפים את מה שכתוב בשדות הבאים:
-
INSTANCE_ID: המזהה של המכונה. -
LOCATION: המיקום שבו יצרתם את המכונה. -
PROPOSAL_ID: המזהה הייחודי של ההצעה שרוצים למחוק. לדוגמה:proposal_to_delete.
-