במאמר הזה מוסבר איך להצפין ולפענח נתונים באמצעות מפתחות של Key Management System (KMS) עם gdcloud CLI.
המסמך הזה מיועד למשתמשים בקבוצת מפעילי האפליקציות שצריכים לבצע פעולות קריפטוגרפיות בפרויקטים ב-GDC. מידע נוסף מופיע במאמר קהלים למסמכי תיעוד של GDC עם air gap.
לפני שמתחילים
לפני שמצפינים או מפענחים נתונים, צריך לוודא שיש לכם את ההרשאות הנדרשות ולהכין את הסביבה.
בקשת תפקידים ב-IAM
כדי להצפין ולפענח נתונים, צריך לבקש ממנהל חשבון ארגוני ב-IAM את התפקיד מפתח KMS (kms-developer) במרחב השמות של הפרויקט.
הכנת הסביבה
הצפנת נתונים
כדי להצפין נתונים, משתמשים בפקודה gdcloud kms keys encrypt. הפקודה הזו מצפינה קובץ טקסט פשוט נתון באמצעות המפתח AEAD, וכותבת אותו לקובץ מידע מוצפן (ciphertext) בעל שם.
כדי להצפין נתונים, מעבירים את שם המפתח ואת הפרטים הבאים:
gdcloud kms keys encrypt namespaces/NAMESPACE/aeadKeys/KEY_NAME \ --plaintext-file=PLAINTEXT_PATH \ --additional-authenticated-data-file=ADDITIONAL_AUTHENTICATED_DATA_FILE \ --ciphertext-file=CIPHERTEXT_PATHמחליפים את המשתנים הבאים:
- NAMESPACE: מרחב השמות של הפרויקט – לדוגמה:
kms-test1. - KEY_NAME: שם המפתח שמשמש להצפנת הטקסט הפשוט, לדוגמה:
key-1. - PLAINTEXT_PATH: הנתיב לקובץ שמכיל את הטקסט הפשוט שרוצים להצפין.
- ADDITIONAL_AUTHENTICATED_DATA_FILE: קובץ אופציונלי שמכיל נתונים מאומתים נוספים (AAD). AAD משמש לבדיקות תקינות ומגן על הנתונים שלכם מפני מתקפת confused deputy. הגודל של AAD ושל הטקסט הפשוט מוגבל ל-64KB.
- CIPHERTEXT_PATH: הנתיב לקובץ שמכיל את הטקסט הפשוט המוצפן.
אחרי הרצת הפקודה, יופיע קובץ שציינתם בדגל
--ciphertext-fileשמכיל את התוכן המוצפן של קובץ הטקסט הפשוט.- NAMESPACE: מרחב השמות של הפרויקט – לדוגמה:
פענוח נתונים
כדי לפענח נתונים, משתמשים בפקודה gdcloud kms keys decrypt. הפקודה הזו מפענחת קובץ מידע מוצפן (ciphertext) נתון באמצעות המפתח AEAD, וכותבת אותו לקובץ טקסט פשוט (plaintext) בעל שם.
כדי לפענח מידע מוצפן, מעבירים את שם המפתח ואת הפרטים הבאים:
gdcloud kms keys decrypt namespaces/NAMESPACE/aeadKeys/KEY_NAME \ --ciphertext-file=CIPHERTEXT_PATH \ --additional-authenticated-data-file=ADDITIONAL_AUTHENTICATED_DATA_FILE \ --plaintext-file=PLAINTEXT_PATHמחליפים את המשתנים הבאים:
- NAMESPACE: מרחב השמות של הפרויקט.
- KEY_NAME: שם המפתח שמשמש להצפנת הטקסט הפשוט.
- CIPHERTEXT_PATH: הנתיב של הקובץ שרוצים לפענח.
- ADDITIONAL_AUTHENTICATED_DATA_FILE: קובץ אופציונלי שמכיל נתונים מאומתים נוספים (AAD). AAD משמש לבדיקות תקינות ומגן על הנתונים שלכם מפני מתקפת confused deputy. הגודל של AAD ושל הטקסט הפשוט מוגבל ל-64KB.
- PLAINTEXT_PATH: הנתיב לקובץ שמכיל את הטקסט הפשוט המפוענח.
אחרי הרצת הפקודה, מופיע קובץ שציינתם בדגל
--plaintext-fileשמכיל את הנתונים שפוענחו.