מערכת ניהול המפתחות (KMS) תומכת בסוגים שונים של מפתחות לפעולות קריפטוגרפיות כמו הצפנה, פענוח, חתימה ואימות. מידע נוסף על סוגי המפתחות והאלגוריתמים הזמינים מופיע במאמר בנושא מפתחות נתמכים.
הדף הזה מיועד לקהלים בקבוצת מפעילים של אפליקציות, כמו צוותי DevOps, שמבצעים פעולות של ניהול מפתחות ב-Google Distributed Cloud (GDC) עם בידוד פיזי. מידע נוסף מופיע במאמרי העזרה בנושא קהלים ב-GDC עם פער אבטחה.
לפני שמתחילים
כדי ליצור ולנהל מפתחות, צריך לבקש את ההרשאות הנדרשות ולהכין את הסביבה.
שליחת בקשה לתפקידי IAM
פנו לאדמין ה-IAM של הארגון כדי להקצות לכם את התפקידים הבאים במרחב השמות של הפרויקט:
- KMS Creator (
kms-creator): הרשאה להצגה וליצירה של משאביAEADKeyו-SigningKeyבתוך פרויקט. - KMS Admin (
kms-admin): צפייה במפתחות, יצירה ומחיקה שלהם בתוך פרויקט.
הכנת הסביבה
מתקינים ומפעילים את CLI של gcloud, אם עוד לא עשיתם זאת.
מבצעים אימות ל-GDC באמצעות ה-CLI של gdcloud. התהליך הזה מחייב את אישור רשות האישורים (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 עם סטטוס 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 עם סטטוס 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אם המפתח נמחק בהצלחה, הפקודה לא תחזיר את אובייקט המפתח.