בדף הזה מוסבר על תצוגות מאובטחות עם פרמטרים ב-AlloyDB ל-PostgreSQL, שמספקות אבטחת מידע של אפליקציות ובקרת גישה לשורות באמצעות תצוגות SQL, ועוזרות לוודא שמשתמשי האפליקציה יכולים לראות רק את הנתונים שאליהם הם אמורים לגשת.
תצוגות מאובטחות עם פרמטרים הן הרחבה של תצוגות מאובטחות ב-PostgreSQL, שמאפשרות להשתמש בפרמטרים של תצוגות בעלות שם ספציפי לאפליקציה בהגדרות של תצוגות. היכולת הזו מספקת ממשק שמקבל שאילתה וערכים לפרמטרים עם שמות. הממשק מריץ את השאילתה עם הערכים האלה, שמשמשים לאורך כל ההרצה של השאילתה.
דוגמה לתצוגה מאובטחת עם פרמטרים:
CREATE VIEW secure_checked_items WITH (security_barrier) AS
SELECT bag_id, timestamp, location
FROM checked_items t
WHERE customer_id = $@app_end_userid;
אפשר לשלוח שאילתות לתצוגות מאובטחות עם פרמטרים באמצעות execute_parameterized_queryהפרוצדורה המאוחסנת או באמצעות הפעלת ההצהרה EXECUTE .. WITH VIEW PARAMETERS.
מידע נוסף זמין במאמר בנושא ניהול אבטחת נתונים של אפליקציות באמצעות תצוגות מאובטחות עם פרמטרים ב-AlloyDB.
היתרונות של תצוגות מאובטחות עם פרמטרים
תצוגות מאובטחות עם פרמטרים מתאימות לניהול אבטחת נתונים ברמת מסד הנתונים, במיוחד כשמדובר בשאילתות אד-הוק ממקורות לא מהימנים, כמו שאילתות שתורגמו משפה טבעית. התצוגות האלה מאפשרות ליישם בקרת גישה פרטנית בצורה גמישה.
לדוגמה, נניח שיש אפליקציה שעוקבת אחרי המזוודות של לקוחות שנרשמו לטיסה. לקוח עם מזהה משתמש 12345 שואל: "איפה התיק שלי?" בתרחיש הזה, תצוגות מאובטחות עם פרמטרים מבטיחות את הדברים הבאים:
השאילתה מחזירה רק שורות שהמשתמש ששלח את השאילתה יכול לגשת אליהן – לדוגמה, שורות שמקושרות למזהה משתמש 12345.
צמצום סיכוני אבטחה
תצוגות מאובטחות עם פרמטרים עוזרות לצמצם את סיכוני האבטחה כשמשתמשי קצה מריצים שאילתות לא מהימנות – כמו שאילתות בשפה טבעית – במסד הנתונים שלכם. הסיכונים האלה כוללים:
- הנחיות זדוניות: משתמשים עלולים לנסות לתפעל את המודל הבסיסי כדי לקבל גישה לכל נתוני האפליקציה.
- שאילתות SQL בהיקף רחב: מודלים גדולים של שפה (LLM) עשויים ליצור שאילתות SQL שחושפות מידע אישי רגיש, גם משאילתות משתמש עם כוונות טובות.
באמצעות תצוגות מאובטחות עם פרמטרים, אפשר להגביל את טווח השורות שזמינות למשתמשים ספציפיים באפליקציה. האמצעי הזה מבטיח את אבטחת מידע, לא משנה איך המשתמשים מנסחים את השאילתות שלהם.
ניהול הרשאות גישה לנתונים
תצוגות מאובטחות עם פרמטרים פותרות בעיות נפוצות בניהול גישה לנתונים עבור מספר גדול של משתמשים שגדל כל הזמן.
ניהול משתמשים פשוט יותר: בעזרת תצוגות מאובטחות עם פרמטרים, אתם יכולים להשתמש בתפקיד מסד נתונים יחיד כדי לשרת את כל משתמשי הקצה, במקום להשתמש בשיטות שעשויות לדרוש מכם ליצור משתמש או תפקיד נפרד במסד הנתונים לכל משתמש קצה. תצוגות מאובטחות עם פרמטרים עוזרות לפשט את ניהול המשתמשים והחיבורים באפליקציות שבהן כל משתמש קצה צריך גישה רק לנתונים שלו.
לדוגמה, באפליקציה של חברת תעופה שבה הלקוחות צריכים לראות רק את ההזמנות שלהם, אפשר להגדיר תצוגה מאובטחת אחת עם פרמטרים שמוגדרים לפי מזהה משתמש הקצה. התצוגה הזו מאפשרת לתפקיד יחיד במסד הנתונים – עם גישה לתצוגה, לא לטבלה הבסיסית – לשרת את כל המשתמשים, וכך מפשטת את ניהול המשתמשים ואת החיבורים למסד הנתונים.
אכיפת אבטחה יעילה: תצוגות מאובטחות עם פרמטרים כוללות בתוכן אמצעי בקרה לגישה. כשמבצעים שאילתה על תצוגה, פרמטרי האבטחה המוגדרים נאכפים באופן עקבי, ללא קשר למשתמש שניגש לתצוגה. הגישה הזו שונה ממצבים שבהם מדיניות האבטחה הבסיסית בטבלאות הבסיס לא חלה באופן אוטומטי על תצוגות בלי הגדרה נוספת.
מידע נוסף על מנגנוני אבטחה קיימים ב-PostgreSQL, כמו מדיניות אבטחה ברמת השורה (RLS), זמין במאמר בנושא מדיניות אבטחה ברמת השורה.
מנגנון אבטחה
תצוגות מאובטחות עם פרמטרים מספקות למפתחי אפליקציות אבטחת נתונים ובקרת גישה לשורות באמצעות השיטות הבאות:
- תצוגות שנוצרו באמצעות האפשרות
WITH (security barrier)מספקות אבטחה ברמת השורה, כי הן מונעות העברה של ערכים משורות לפונקציות ולאופרטורים שנבחרו בזדון, עד שהתצוגה מסיימת את העבודה שלה. מידע נוסף על סעיףWITH (security barrier)זמין במאמר כללים והרשאות. - הפרמטרים של התצוגה הנקראת מאפשרים להגביל את התצוגה של מסד הנתונים באמצעות פרמטרים שמוגדרים על ידי ערכים שמסופקים על ידי האפליקציה על סמך אבטחה ברמת האפליקציה, כמו אימות משתמשי קצה.
- האכיפה של הגבלות נוספות על שאילתות שגורמות לגישה לתצוגות עם פרמטרים שימושית לאפליקציות שמבצעות שאילתות לא מהימנות ממשתמשי קצה – כמו שאילתות שנוצרות על ידי AI ליצירת SQL משפה טבעית. כך נמנעת חדירה למעטפת האבטחה שמסופקת על ידי תצוגות מאובטחות עם פרמטרים, ומתאפשר ניהול של השימוש במשאבים. מידע נוסף מופיע במאמר בנושא הגבלות מחייבות על שאילתות.
מגבלות
צריך להפעיל את הדגל של התצוגה עם הפרמטרים בנפרד בכל מופע של AlloyDB. אובייקטים של תצוגה עם פרמטרים שנוצרו במופע הראשי מועברים למופעים של מאגר לקריאה ולרפליקות חוצות אזורים. עם זאת, ההגדרה של הסימון
parameterized_views.enabledלא מוחלת באופן אוטומטי, וצריך להגדיר אותה באופן ידני בכל מופע. מידע נוסף זמין במאמר לפני שמתחילים.אי אפשר להריץ שאילתות על תצוגות עם פרמטרים במופע של מאגר לקריאה או בעותק משוכפל חוצה-אזורים לפני שמפעילים את האפשרות
parameterized_views.enabledבכל מופע.
המאמרים הבאים
- ניהול אבטחת מידע באפליקציה באמצעות תצוגות מאובטחות עם פרמטרים.
- אבטחה ושליטה בגישה לנתוני אפליקציות באמצעות תצוגות מאובטחות עם פרמטרים.