הצפנה ברמת העמודה באמצעות Cloud KMS
אתם יכולים להשתמש ב-Cloud Key Management Service (Cloud KMS) כדי להצפין את המפתחות שמשמשים להצפנת הערכים בטבלאות BigQuery. אתם יכולים להשתמש בפונקציות ההצפנה של AEAD עם ערכות מפתחות של Cloud KMS או עם ערכות מפתחות ארוזות כדי לספק שכבת הגנה שנייה ברמת העמודה.
מבוא
כדי לספק שכבת הגנה נוספת, Cloud KMS מצפין את המפתח להצפנת הנתונים (DEK) באמצעות מפתח שני להצפנת מפתחות (KEK). ב-BigQuery, הפניה לקבוצת מפתחות מוצפנת במקום לקבוצת מפתחות בטקסט גלוי עוזרת לצמצם את הסיכון לחשיפת מפתחות. ה-KEK הוא קבוצת מפתחות להצפנה סימטרית שמאוחסנת בצורה מאובטחת ב-Cloud KMS ומנוהלת באמצעות תפקידים והרשאות בניהול זהויות והרשאות גישה (IAM).
BigQuery תומך בפונקציות הצפנה דטרמיניסטיות ולא דטרמיניסטיות. בהצפנה דטרמיניסטית, אם שני חלקי הנתונים המאוחסנים והנתונים הנוספים שעברו אימות (אופציונלי) זהים, אז הטקסט המוצפן זהה. כך אפשר לתמוך בצבירה ובצירופים על סמך העמודה המוצפנת. בהצפנה לא דטרמיניסטית, המידע המוצפן שמאוחסן הוא ייחודי ללא קשר לנתונים המוצפנים, ולכן אי אפשר לבצע אשכול, צבירה וצירוף.
בזמן הביצוע של השאילתה, אתם מספקים את נתיב המשאב של Cloud KMS של KEK ואת הטקסט המוצפן מ-DEK הארוז. BigQuery קורא ל-Cloud KMS כדי לבטל את העטיפה של ה-DEK, ואז משתמש במפתח הזה כדי לפענח את הנתונים בשאילתה. הגרסה הלא עטופה של ה-DEK מאוחסנת בזיכרון רק למשך השאילתה, ואז היא מושמדת.
אם אתם משתמשים ב-Cloud KMS באזור שבו נתמך Cloud External Key Manager, אתם יכולים להשתמש במפתחות שמבוססים על Cloud EKM ב-Cloud KMS.
תרחישים לדוגמה
תרחישים לדוגמה לשימוש בהצפנה באמצעות מפתחות Cloud KMS:
- נתונים מוצפנים חיצוניים שצריך לאחסן ב-BigQuery בלי לאחסן את קבוצת המפתחות בטקסט לא מוצפן. אחר כך אפשר לייצא את הנתונים מהטבלה או לפענח אותם באמצעות שאילתת SQL.
- "בקרת גישה כפולה" לנתונים מוצפנים ב-BigQuery. כדי שמשתמש יוכל לקרוא נתונים בטקסט לא מוצפן, צריך לתת לו הרשאה לטבלה ולמפתח ההצפנה.
| טבלת הרשאות משתמשים | ||
|---|---|---|
| הרשאה בטבלה | אין הרשאה בטבלה | |
| הרשאות במפתח | קריאה ופענוח של נתונים מוצפנים. | אין גישה. |
| אין הרשאות במפתח | קריאת נתונים מוצפנים. | אין גישה. |
אם למשתמש יש הרשאה לגשת למפתח KMS וגישה לערכת המפתחות העטופה, פונקציות SQL יכולות לבטל את העטיפה של ערכת המפתחות ולפענח את הטקסט המוצפן. משתמשים יכולים גם להשתמש ב-API בארכיטקטורת REST או ב-CLI של Cloud KMS כדי לבטל את העטיפה של קבוצת המפתחות.
בדוגמה הבאה של שאילתה נעשה שימוש בפונקציות SQL של KMS כדי לפענח טקסט מוצפן לא דטרמיניסטי:
SELECT AEAD.DECRYPT_STRING( KEYS.KEYSET_CHAIN(@kms_resource_name, @first_level_keyset), ciphertext, additional_authenticated_data) FROM ciphertext_table WHERE ...
דוגמה לתרחיש שימוש
נניח שאתם מטמיעים את התכונה במקרה שבו מיקודים נחשבים למידע רגיש. אפשר להוסיף נתונים של מיקוד לטבלה ב-BigQuery באמצעות פונקציית ההצפנה AEAD, וכך להצפין את העמודה Zipcode. בדוגמה הזו, אנחנו משתמשים בפונקציה AEAD.ENCRYPT עם פונקציית ניהול של קבוצת מפתחות עטופה. הפונקציה KEYS.KEYSET_CHAIN מפענחת את מפתח ההצפנה הדיגיטלי באמצעות ה-KEK, והפונקציה AEAD.ENCRYPT מעבירה את המידע ל-KMS.
שרשרת ערכות המפתחות להצפנה ולפענוח מבטיחה שהמפתח להצפנת נתונים (DEK) מוצפן או ארוז באמצעות KEK ומועבר עם ה-KEK הזה. ה-DEK העטוף מפוענח או שהאריזה שלו נפתחת בתוך פונקציית ה-SQL, ואז הוא משמש להצפנה או לפענוח של נתונים.
הפונקציה הלא-דטרמיניסטית AEAD יכולה לפענח נתונים כשניגשים אליהם באמצעות הפונקציה בשאילתה שמופעלת בטבלה.

הפונקציה הדטרמיניסטית AEAD יכולה לפענח נתונים כשניגשים אליהם באמצעות הפונקציה בשאילתה שמופעלת בטבלה, והיא תומכת בצבירה ובצירופים באמצעות הנתונים המוצפנים.

תחביר של פונקציה לא דטרמיניסטית
התחביר הנתמך לשימוש בפונקציות לא דטרמיניסטיות כולל את האפשרויות הבאות:
AEAD.ENCRYPT( KEYS.KEYSET_CHAIN(kms_resource_name, first_level_keyset), plaintext, additional_authenticated_data)
AEAD.DECRYPT_STRING( KEYS.KEYSET_CHAIN(kms_resource_name, first_level_keyset), ciphertext, additional_authenticated_data)
AEAD.DECRYPT_BYTES( KEYS.KEYSET_CHAIN(kms_resource_name, first_level_keyset), ciphertext, additional_authenticated_data)
AEAD.DECRYPT_BYTES,
AEAD.ENCRYPT,
AEAD.DECRYPT_STRING,
וKEYS.KEYSET_CHAIN
תחביר הפונקציות.
תחביר של פונקציה דטרמיניסטית
התחביר הנתמך לשימוש בפונקציות דטרמיניסטיות כולל את האפשרויות הבאות:
DETERMINISTIC_ENCRYPT( KEYS.KEYSET_CHAIN(kms_resource_name, first_level_keyset), plaintext, additional_data)
DETERMINISTIC_DECRYPT_STRING( KEYS.KEYSET_CHAIN(kms_resource_name, first_level_keyset), ciphertext, additional_data)
DETERMINISTIC_DECRYPT_BYTES( KEYS.KEYSET_CHAIN(kms_resource_name, first_level_keyset), ciphertext, additional_data)
DETERMINISTIC_DECRYPT_BYTES,
DETERMINISTIC_ENCRYPT,
DETERMINISTIC_DECRYPT_STRING,
וKEYS.KEYSET_CHAIN
תחביר הפונקציות.
תפקידים והרשאות
רשימת התפקידים ב-Cloud KMS מופיעה במאמר הרשאות ותפקידים ב-Cloud KMS.
מגבלות
ההצפנה באמצעות Cloud KMS כפופה למגבלות ולהגבלות הבאות:
המפתחות של Cloud KMS מוגבלים לאותו אזור או מספר אזורים כמו השאילתה. אסור להשתמש במפתחות גלובליים של Cloud KMS מסיבות שקשורות למהימנות.
אי אפשר לסובב קבוצת מקשים שמוקפת ב-
KEYS.ROTATE_KEYSETבאמצעות הפונקציה.הפרמטרים הקבועים בשאילתת BigQuery גלויים למשתמשים בתוכנית השאילתה לאבחון. הגורם הזה יכול להשפיע על הפרמטרים
kms_resource_nameו-first_level_keysetשל הפונקציהKEYSET_CHAIN. המפתחות אף פעם לא נחשפים בטקסט לא מוצפן, ונדרשת הרשאה למפתח Cloud KMS כדי לבצע פענוח של קבוצת המפתחות העטופה. הגישה הזו מבטיחה שהמפתחות לא ייחשפו דרך תוכנית השאילתות של האבחון, אלא אם למשתמש יש הרשאה לפענח את קבוצת המפתחות.כשמשתמשים בהצפנה ברמת העמודה עם סיווגי אבטחה מבוססי-סוג, חלות המגבלות הבאות:
אבטחה ברמת העמודה: משתמשים יכולים לפענח או להצפין נתונים רק בעמודות שיש להם הרשאה לגשת אליהן.
אבטחה ברמת השורה: משתמשים יכולים לפענח נתונים רק בשורות שיש להם הרשאה לגשת אליהן.
לפונקציות SQL ברמת העמודה אין השפעה משמעותית על הביצועים בהשוואה לביצועים של פונקציות הצפנה גולמיות שבהן נתוני המפתח נשלחים כטקסט ללא הצפנה.
לפני שמתחילים
כדי לעבוד עם מפתחות Cloud KMS, קבוצות מפתחות, טבלאות מוצפנות, פונקציות דטרמיניסטיות ופונקציות לא דטרמיניסטיות, צריך לבצע את הפעולות הבאות אם עדיין לא ביצעתם אותן:
יוצרים מפתח Cloud KMS עבור עמוד מוצפן עם רמת ההגנה של תוכנה או מודול אבטחה לחומרה (HSM).
הענקת הרשאות למשתמשים לעבודה עם מפתחות, הצפנה ופענוח של Cloud KMS.
חשוב לשים לב למושגים הבאים, כי הם מוזכרים בקטעים הבאים:
PROJECT_ID: השם של הפרויקט ב-Google Cloud.
DATASET_NAME: השם של מערך הנתונים ב-BigQuery.
LOCATION_ID: המיקום של מערך הנתונים ב-BigQuery.
TABLE_NAME: השם של הטבלה ב-BigQuery.
KEY_RING_ID: השם של אוסף המפתחות ב-Cloud KMS.
KEY_ID: השם של מפתח Cloud KMS.
KMS_KEY: מפתח Cloud KMS (KEK) בפורמט הזה:'gcp-kms://projects/PROJECT_ID/locations/LOCATION_ID/keyRings/KEY_RING_ID/cryptoKeys/KEY_ID'הנה דוגמה למפתח Cloud KMS:
'gcp-kms://projects/myProject/locations/us/keyRings/myKeyRing/cryptoKeys/myKeyName'
KMS_KEY_SHORT: בדומה ל-KMS_KEY, אבל בפורמט הזה:projects/PROJECT_ID/locations/LOCATION_ID/keyRings/KEY_RING_ID/cryptoKeys/KEY_ID
KEYSET_DECODED: קבוצת מפתחות מפוענחת כרצףBYTES. הפלט נראה דומה לזה של קבוצת מפתחות מוצפנת מפוענחת.למרות שפונקציות של ערכות מקשים מחזירות ערכות מקשים כבייטים, הפלט של המשתמש מוצג כמחרוזת מקודדת. כדי להמיר קבוצת מפתחות מקודדת לקבוצת מפתחות מפוענחת, אפשר לעיין במאמר בנושא פענוח של קבוצת מפתחות של Cloud KMS.
KEYSET_ENCODED: קבוצת מפתחות מקודדת בתורSTRING. הפלט דומה לזה של קבוצת מפתחות עטופה ומקודדת.כדי להמיר קבוצת מפתחות מקודדת לקבוצת מפתחות מפוענחת, ראו פענוח של קבוצת מפתחות של Cloud KMS
WRAPPED_KEYSET_DECODED: קבוצת מפתחות מפוענחת ועטופה כרצףBYTES. דוגמה לפלט:b'\x0a$\x00\xa6\xee\x12Y\x8d|l"\xf7\xfa\xc6\xeafM\xdeefy\xe9\x7f\xf2z\xb3M\ xf6"\xd0\xe0Le\xa8\x8e\x0fR\xed\x12\xb7\x01\x00\xf0\xa80\xbd\xc1\x07Z\\ \xd0L<\x80A0\x9ae\xfd(9\x1e\xfa\xc8\x93\xc7\xe8\...'למרות שפונקציות של קבוצות מקשים מוצפנות מחזירות קבוצות מקשים מוצפנות כבייטים, הפלט שמוצג למשתמש הוא מחרוזת מקודדת. כדי להמיר קבוצת מפתחות עטופה ומקודדת לקבוצת מפתחות עטופה ומפוענחת, אפשר לעיין במאמר בנושא פענוח של קבוצת מפתחות של Cloud KMS.
WRAPPED_KEYSET_ENCODED: קבוצת מפתחות עטופה ומקודדת כ-STRING. דוגמה לפלט:'CiQApu4SWTozQ7lNwITxpEvGlo5sT2rv1tyuSv3UAMtoTq/lhDwStwEA8KgwvX7CpVVzhWWMkRw WZNr3pf8uBIlzHeunCy8ZsQ6CofQYFpiBRBB6k/QqATbiFV+3opnDk/6dBL/S8OO1WoDC+DdD9 uzEFwqt5D20lTXCkGWFv1...'כדי להמיר קבוצת מפתחות עטופה ומקודדת לקבוצת מפתחות עטופה ומפוענחת, אפשר לעיין במאמר בנושא פענוח של קבוצת מפתחות של Cloud KMS.
ניהול מפתחות
בקטעים הבאים מפורטות משימות נפוצות שאפשר לבצע באמצעות מפתחות Cloud KMS.
יצירת קבוצת מפתחות
אפשר ליצור קבוצות של מפתחות מוצפנים או קבוצות של מפתחות לא מוצפנים. כדי לעשות זאת, צריך לבצע את השלבים בקטעים הבאים.
יצירת קבוצת מפתחות גולמית
מריצים את השאילתה הבאה כדי ליצור קבוצת מפתחות עם מפתח מסוג
DETERMINISTIC_AEAD_AES_SIV_CMAC_256.
SELECT KEYS.NEW_KEYSET('DETERMINISTIC_AEAD_AES_SIV_CMAC_256') AS raw_keyset
יצירת קבוצת מפתחות עטופה
מריצים את השאילתה הבאה כדי ליצור קבוצת מפתחות עטופה של Cloud KMS עם מפתח מסוג DETERMINISTIC_AEAD_AES_SIV_CMAC_256.
SELECT KEYS.NEW_WRAPPED_KEYSET( KMS_KEY, 'DETERMINISTIC_AEAD_AES_SIV_CMAC_256')
פענוח של קבוצת מקשים
למרות שפונקציות SQL שמחזירות קבוצות מפתחות יוצרות את קבוצות המפתחות בפורמט BYTES, התוצאה שמוצגת למשתמש מקודדת ומוצגת בפורמט STRING. אם רוצים להמיר את המחרוזת המקודדת הזו לרצף של בייטים מפוענחים שאפשר להשתמש בהם כפונקציות מילוליות להצפנת מפתחות, אפשר להשתמש בשאילתה הבאה.
פענוח של קבוצת מפתחות מוצפנת
מריצים את השאילתה הבאה כדי לפענח קבוצת מפתחות שעברה אריזה ב-Cloud KMS.
SELECT FORMAT('%T', FROM_BASE64(WRAPPED_KEYSET_ENCODED'))
פענוח של קבוצת מפתחות גולמית
מריצים את השאילתה הבאה כדי לפענח קבוצת מפתחות גולמית.
SELECT FORMAT('%T', FROM_BASE64(KEYSET_ENCODED'))
שינוי של קבוצת מקשים מוצפנת
מריצים את השאילתה הבאה כדי לארוז מחדש קבוצת מפתחות ארוזה של Cloud KMS באמצעות מפתח חדש של Cloud KMS. KMS_KEY_CURRENT מייצג את KMS_KEY החדש שמשמש להצפנת קבוצת המפתחות. KMS_KEY_NEW מייצג את KMS_KEY החדש שמשמש להצפנת קבוצת המפתחות.
SELECT KEYS.REWRAP_KEYSET( KMS_KEY_CURRENT, KMS_KEY_NEW, WRAPPED_KEYSET_DECODED)
ביצוע רוטציה של קבוצת מפתחות מוצפנת
מריצים את השאילתה הבאה כדי להחליף קבוצת מפתחות ארוזה של Cloud KMS עם מפתח מסוג DETERMINISTIC_AEAD_AES_SIV_CMAC_256.
SELECT KEYS.ROTATE_WRAPPED_KEYSET( KMS_KEY, WRAPPED_KEYSET_DECODED, 'DETERMINISTIC_AEAD_AES_SIV_CMAC_256')
יצירת קבוצת מפתחות גולמית מקבוצת מפתחות עטופה
חלק מפונקציות ההצפנה דורשות קבוצת מפתחות גולמית. כדי לפענח קבוצת מפתחות שעברה הצפנה ב-Cloud KMS וליצור קבוצת מפתחות גולמית, מבצעים את השלבים הבאים.
בכלי שורת הפקודה של BigQuery, מזינים את הפקודות הבאות כדי לשמור קבוצת מפתחות מוצפנת בקובץ בשם
keyset_to_unwrap, לפענח את קבוצת המפתחות המוצפנת וליצור את הפלט בפורמטKEYSET_DECODED:echo WRAPPED_KEYSET_ENCODED | base64 -d > /tmp/decoded_wrapped_key
gcloud kms decrypt \ --ciphertext-file=/tmp/decoded_wrapped_key \ --key=KMS_KEY_SHORT \ --plaintext-file=/tmp/keyset_to_unwrap.dec \ --project=PROJECT_ID
od -An --format=o1 /tmp/keyset_to_unwrap.dec | tr ' ' '\'
יצירת חבילת מפתחות ממערכת מפתחות גולמית
חלק מפונקציות ההצפנה דורשות ערכת מפתחות עטופה של Cloud KMS. כדי להצפין קבוצת מפתחות גולמית וליצור קבוצת מפתחות עטופה, מבצעים את השלבים הבאים.
בכלי שורת הפקודה של BigQuery, מזינים את הפקודות הבאות כדי לשמור קבוצת מפתחות גולמית בקובץ בשם
keyset_to_wrap, להצפין את קבוצת המפתחות הגולמית וליצור את הפלט בפורמטWRAPPED_KEYSET_DECODED:echo KEYSET_ENCODED | base64 -d > /tmp/decoded_key
gcloud kms encrypt \ --plaintext-file=/tmp/decoded_key \ --key=KMS_KEY_SHORT \ --ciphertext-file=/tmp/keyset_to_wrap.dec \ --project=PROJECT_ID
od -An --format=o1 /tmp/keyset_to_wrap.dec | tr ' ' '\'
יצירת מפתח עטוף לפונקציית DLP
כדי להשתמש בפונקציות DLP, צריך מפתח קריפטוגרפי ואז להשתמש במפתח הזה כדי לקבל מפתח עטוף.
כדי ליצור מפתח קריפטוגרפי חדש, מריצים את הפקודה הבאה בשורת הפקודה. גודל המפתח יכול להיות 16, 24 או 32 בייטים. בדוגמה הבאה נעשה שימוש במפתח של 16 בייט:
openssl rand 16 > rand.key.16.binעוטפים את המפתח שנוצר באורך 16 בייט באמצעות מפתח KMS. מקרה לדוגמה:
KEYRING=projects/myproject/locations/us/keyRings/kms-test KEY=projects/myproject/locations/us/keyRings/kms-test/cryptoKeys/test-Kek PROJECT="myproject" gcloud kms encrypt --project $PROJECT --location us --keyring $KEYRING --key $KEY --plaintext-file ./rand.key.16.bin --ciphertext-file ./rand.key.16.wrappedעכשיו אפשר לקבל את
BYTESהערך המילולי של המפתח העטוף או את פורמט base64 של המפתח העטוף.מילולית של בייטים
username:~/tmp$ od -b ./rand.key.16.wrapped | cut -d ' ' -f 2- | head -n -1 | sed -e 's/^/ /' | tr ' ' '\'הפלט אמור להיראות כך:
\012\044\000\325\155\264\153\246\071\172\130\372\305\103\047\342\356\061\077\014\030\126\147\041\126\150\012\036\020\202\215\044\267\310\331\014\116\233\022\071\000\363\344\230\067\274\007\340\273\016\212\151\226\064\200\377\303\207\103\147\052\267\035\350\004\147\365\251\271\133\062\251\246\152\177\017\005\270\044\141\211\116\337\043\035\263\122\340\110\333\266\220\377\247\204\215\233פורמט Base64
username:~/tmp$ base64 ./rand.key.16.wrappedהפלט אמור להיראות כך:
CiQA1W20a6Y5elj6xUMn4u4xPwwYVmchVmgKHhCCjSS3yNkMTpsSOQDz5Jg3vAfguw6KaZY0gP/Dh0NnKrcd6ARn9am5WzKppmp/DwW4JGGJTt8jHbNS4EjbtpD/p4SNmw==
קבלת מספר המפתחות בערכת מפתחות
מריצים את השאילתה הבאה כדי לקבל את מספר המפתחות ב-keyset גולמי.
אם אתם עובדים עם קבוצת מפתחות מוצפנת, קודם צריך ליצור קבוצת מפתחות גולמית.
מריצים את השאילתה הזו עם קבוצת המפתחות הגולמית:
SELECT KEYS.KEYSET_LENGTH(KEYSET_DECODED) as key_count;
קבלת ייצוג JSON של קבוצת מפתחות
מריצים את השאילתה הבאה כדי לראות ייצוג JSON של קבוצת מפתחות גולמית.
אם אתם עובדים עם קבוצת מפתחות מוצפנת, קודם צריך ליצור קבוצת מפתחות גולמית.
מריצים את השאילתה הזו עם קבוצת המפתחות הגולמית:
SELECT KEYS.KEYSET_TO_JSON(KEYSET_DECODED);
הצפנה ופענוח
אתם יכולים להשתמש בקבוצות מפתחות גולמיות או בקבוצות מפתחות עטופות כדי להצפין עמודה בטבלה. אתם יכולים גם לבחור להשתמש בהצפנה דטרמיניסטית או לא דטרמיניסטית בעמודות. בדוגמאות שבקטע הזה נעשה שימוש בערכות מפתחות עטופות, אבל אפשר להחליף את ערכות המפתחות העטופות בערכות מפתחות גולמיות.
הצפנה דטרמיניסטית של עמודה באמצעות קבוצת מפתחות עטופה
מריצים את השאילתה הבאה כדי ליצור טבלה ולאחסן ערכת מפתחות שעברה אריזה ב-Cloud KMS עם הצפנה דטרמיניסטית בעמודה שנקראת encrypted_content.
הצפנה של עמודה באמצעות קבוצת המפתחות העטופה.
CREATE OR REPLACE TABLE DATASET_NAME.TABLE_NAME AS SELECT DETERMINISTIC_ENCRYPT( KEYS.KEYSET_CHAIN(KMS_KEY, WRAPPED_KEYSET_DECODED), 'plaintext', '') AS encrypted_content
פענוח דטרמיניסטי של עמודה עם קבוצת מפתחות מוצפנת
מריצים את השאילתה הבאה כדי לפענח באופן דטרמיניסטי עמודה שמכילה תוכן מוצפן, באמצעות ערכת מפתחות עטופה של Cloud KMS. השאילתה הזו מניחה שאתם מפנים לטבלה עם עמודה בשם encrypted_content.
SELECT DETERMINISTIC_DECRYPT_STRING( KEYS.KEYSET_CHAIN(KMS_KEY, WRAPPED_KEYSET_DECODED), encrypted_content, '') FROM DATASET_NAME.TABLE_NAME
הצפנה לא דטרמיניסטית של עמודה באמצעות קבוצת מפתחות עטופה
אפשר לעיין במאמר בנושא הצפנה דטרמיניסטית של עמודה באמצעות קבוצת מפתחות עטופה, אבל להחליף את DETERMINISTIC_ENCRYPT ב-AEAD.ENCRYPT. חשוב לוודא שקבוצת המפתחות היא מסוג AEAD_AES_GCM_256.
פענוח עמודה עם קבוצת מפתחות מוצפנת באופן לא דטרמיניסטי
אפשר לעיין במאמר בנושא פענוח דטרמיניסטי של עמודה באמצעות קבוצת מפתחות מוצפנת, אבל להחליף את DETERMINISTIC_DECRYPT_STRING ב-AEAD.DECRYPT_STRING. חשוב לוודא שקבוצת המפתחות היא מסוג AEAD_AES_GCM_256.
המאמרים הבאים
- מידע נוסף על Cloud KMS הנושא הזה כולל מידע תיאורטי על הצפנה ברמת העמודה ב- Google Cloud.
- מידע נוסף על הצפנת AEAD ב-BigQuery הנושא הזה כולל מידע תיאורטי על הצפנה ברמת העמודה, במיוחד עבור BigQuery.
- מידע נוסף על פונקציות הצפנה של AEAD ל-BigQuery בנושא הזה מפורטות כל פונקציות ה-SQL שאפשר להשתמש בהן להצפנה ברמת העמודה ב-BigQuery.