מערכת ניהול המפתחות (KMS) תומכת בסוגים שונים של מפתחות לפעולות קריפטוגרפיות כמו הצפנה, פענוח, חתימה ואימות. למידע נוסף על סוגי המפתחות והאלגוריתמים הזמינים, קראו את המאמר מפתחות נתמכים.
הדף הזה מיועד לקהלים בקבוצת מפעילי האפליקציות, כמו צוותי DevOps, שמבצעים פעולות של ניהול מפתחות ב-Google Distributed Cloud (GDC) עם air gap. מידע נוסף מופיע במאמר קהלים למסמכי תיעוד של GDC עם air gap.
לפני שמתחילים
כדי ליצור ולנהל מפתחות, צריך לבקש את ההרשאות הנדרשות ולהכין את הסביבה.
בקשת תפקידים ב-IAM
צריך לבקש ממנהל חשבון ארגוני ב-IAM להקצות לכם את התפקידים הבאים במרחב השמות של הפרויקט:
- יוצר KMS (
kms-creator): צפייה במשאביAEADKeyו-SigningKeyבפרויקט ויצירה שלהם. - אדמין KMS (
kms-admin): צפייה, יצירה ומחיקה של מפתחות בפרויקט.
הכנת הסביבה
אם עדיין לא עשיתם את זה, מתקינים ומפעילים את gdcloud CLI.
אימות ב-GDC באמצעות gdcloud CLI. בתהליך הזה נדרש אישור CA של הארגון:
מורידים את אישור ה-CA:
echo -n | openssl s_client -showcerts -connect CONSOLE_URL:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > CA_CERT_PATHמחליפים את מה שכתוב בשדות הבאים:
-
CONSOLE_URL: כתובת ה-URL של מסוף הארגון (למשלconsole.org-1.zone1.google.gdch.test) -
CA_CERT_PATH: הנתיב המלא שבו רוצים לשמור את קובץ אישור ה-CA (למשל/tmp/my-org-ca.crt)
-
נכנסים באמצעות אישור ה-CA שהורדתם:
gdcloud auth login --login-config-cert=CA_CERT_PATH
מורידים קובץ kubeconfig לשרת Management API באמצעות gdcloud CLI.
יצירת מפתח
אתם יכולים ליצור מפתחות למטרות קריפטוגרפיות שונות.
יצירת מפתח AEAD
כדי לבצע הצפנה מאומתת עם מידע נלווה (AEAD), יוצרים משאב AEADKey במרחב השמות של הפרויקט:
kubectl --kubeconfig KUBECONFIG_PATH \
apply -f - << EOF
apiVersion: "kms.gdc.goog/v1"
kind: AEADKey
metadata:
name: KEY_NAME
namespace: PROJECT
spec:
algorithm: AES_256_GCM
EOF
מחליפים את מה שכתוב בשדות הבאים:
-
KUBECONFIG_PATH: הנתיב לקובץ kubeconfig של שרת Management API -
KEY_NAME: שם למפתח ה-AEAD שרוצים ליצור, לדוגמה:key-1 -
PROJECT: שם הפרויקט, לדוגמה:kms-test1
יצירת מפתח חתימה
כדי לחתום על נתונים ולאמת אותם, יוצרים משאב SigningKey במרחב השמות של הפרויקט:
kubectl --kubeconfig KUBECONFIG_PATH \
apply -f - << EOF
apiVersion: "kms.gdc.goog/v1"
kind: SigningKey
metadata:
name: KEY_NAME
namespace: PROJECT
spec:
algorithm: EC_SIGN_P384_SHA384
EOF
מחליפים את מה שכתוב בשדות הבאים:
-
KUBECONFIG_PATH: הנתיב לקובץ kubeconfig של שרת Management API -
KEY_NAME: שם למפתח החתימה שרוצים ליצור, לדוגמה:key-1 -
PROJECT: שם הפרויקט, לדוגמה:kms-test1
אימות יצירת המפתח
אחרי שיוצרים מפתח, צריך לוודא שהפעולה בוצעה בהצלחה ושהמשאב של המפתח מוכן.
אימות היצירה של מפתח AEAD
כדי לבדוק את הסטטוס של מפתח AEAD:
kubectl --kubeconfig KUBECONFIG_PATH \
get aeadkey KEY_NAME \
--namespace=PROJECT -o yaml
מחליפים את מה שכתוב בשדות הבאים:
-
KUBECONFIG_PATH: הנתיב לקובץ kubeconfig של שרת Management API -
KEY_NAME: השם של מפתח ה-AEAD שרוצים לאמת, לדוגמה:key-1 -
PROJECT: שם הפרויקט, לדוגמה:kms-test1
אם המפתח נוצר בהצלחה, בודקים אם בפלט מופיע התנאי Ready עם הסטטוס True.
אימות היצירה של מפתח החתימה
כדי לבדוק את הסטטוס של מפתח חתימה:
kubectl --kubeconfig KUBECONFIG_PATH \
get signingkey KEY_NAME \
--namespace=PROJECT -o yaml
מחליפים את מה שכתוב בשדות הבאים:
-
KUBECONFIG_PATH: הנתיב לקובץ kubeconfig של שרת Management API -
KEY_NAME: השם של מפתח החתימה שרוצים לאמת, לדוגמה:key-1 -
PROJECT: שם הפרויקט, לדוגמה:kms-test1
אם המפתח נוצר בהצלחה, בודקים אם בפלט מופיע התנאי Ready עם הסטטוס True.
מחיקת מפתח
כדי למחוק משאב מפתח, צריך לציין את הסוג והשם של המפתח.
מוחקים את המפתח במרחב השמות של הפרויקט:
kubectl --kubeconfig KUBECONFIG_PATH \ delete KEY_PRIMITIVE KEY_NAME \ --namespace=PROJECTמחליפים את מה שכתוב בשדות הבאים:
-
KUBECONFIG_PATH: הנתיב לקובץ kubeconfig של שרת Management API -
KEY_PRIMITIVE: סוג משאב המפתח שרוצים למחוק, כמוaeadkeyלמפתח AEAD אוsigningkeyלמפתח החתימה. -
KEY_NAME: השם של המפתח שרוצים למחוק, לדוגמה:key-1. -
PROJECT: שם הפרויקט, לדוגמה:kms-test1.
-
כדי לוודא שהמפתח נמחק, מנסים לאחזר אותו:
kubectl --kubeconfig KUBECONFIG_PATH \ get KEY_PRIMITIVE KEY_NAME \ --namespace=PROJECTאם המחיקה של המפתח בוצעה בהצלחה, הפקודה לא תחזיר את אובייקט המפתח.