בדף הזה מוסבר על תצוגות מאובטחות עם פרמטרים ב-AlloyDB Omni, שמספקות אבטחת נתונים של אפליקציות ובקרת גישה לשורות באמצעות תצוגות 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 Omni.
היתרונות של תצוגות מאובטחות עם פרמטרים
תצוגות מאובטחות עם פרמטרים מתאימות לניהול אבטחת מידע ברמת מסד הנתונים, במיוחד כשמדובר בשאילתות אד-הוק ממקורות לא מהימנים, כמו שאילתות שתורגמו משפה טבעית. התצוגות האלה מאפשרות ליישם בקרת גישה פרטנית בצורה גמישה.
לדוגמה, נניח שיש אפליקציה שעוקבת אחרי הכבודה של הלקוחות. לקוח עם מזהה משתמש 12345 שואל: "איפה התיק שלי?" בתרחיש הזה, תצוגות מאובטחות עם פרמטרים מבטיחות את הדברים הבאים:
השאילתה מחזירה רק שורות שהמשתמש ששלח את השאילתה יכול לגשת אליהן – לדוגמה, שורות שמקושרות למזהה משתמש 12345.
צמצום סיכוני אבטחה
תצוגות מאובטחות עם פרמטרים עוזרות לצמצם את סיכוני האבטחה כשמשתמשי קצה מריצים שאילתות לא מהימנות – כמו שאילתות בשפה טבעית – במסד הנתונים שלכם. הסיכונים האלה כוללים:
- הנחיות זדוניות: משתמשים עלולים לנסות לתמרן את המודל הבסיסי כדי לגשת לכל נתוני האפליקציה.
- שאילתות SQL בהיקף רחב: מודלים גדולים של שפה (LLM) עשויים ליצור שאילתות SQL שחושפות מידע אישי רגיש, גם אם המשתמשים הזינו שאילתות עם כוונות טובות.
באמצעות תצוגות מאובטחות עם פרמטרים, אפשר להגביל את טווח השורות שזמינות למשתמשים בודדים באפליקציה. אמצעי הבקרה הזה מבטיח את אבטחת המידע, לא משנה איך המשתמשים מנסחים את השאילתות שלהם.
ניהול הרשאות גישה לנתונים
תצוגות מאובטחות עם פרמטרים נותנות מענה לאתגרים נפוצים בניהול הגישה לנתונים של מספר גדול והולך של משתמשים.
- ניהול משתמשים פשוט יותר: באמצעות תצוגות מאובטחות עם פרמטרים, אתם יכולים להשתמש בתפקיד אחד במסד הנתונים כדי לשרת את כל משתמשי הקצה, במקום להשתמש בשיטות שבהן צריך ליצור משתמש או תפקיד נפרדים במסד הנתונים לכל משתמש קצה. תצוגות מאובטחות עם פרמטרים עוזרות לפשט את ניהול המשתמשים והחיבורים באפליקציות שבהן כל משתמש קצה צריך גישה רק לנתונים שלו. לדוגמה, באפליקציה של חברת תעופה שבה הלקוחות אמורים לראות רק את ההזמנות שלהם, אפשר להגדיר תצוגה מאובטחת אחת עם פרמטרים, שמוגדרת לפי מזהה משתמש הקצה. התצוגה הזו מאפשרת לתפקיד יחיד במסד הנתונים – עם גישה לתצוגה, לא לטבלה הבסיסית – לשרת את כל המשתמשים, וכך מפשטת את ניהול המשתמשים ואת החיבורים למסד הנתונים.
- אכיפת אבטחה יעילה: תצוגות מאובטחות עם פרמטרים כוללות באופן מובנה אמצעי בקרה לגישה. כששולחים שאילתה לתצוגה, פרמטרי האבטחה שהוגדרו נאכפים באופן עקבי, בלי קשר למשתמש שניגש לתצוגה. הגישה הזו שונה ממצבים שבהם כללי מדיניות האבטחה הבסיסיים במסדי נתונים טבלאיים לא חלים באופן אוטומטי על תצוגות בלי הגדרות נוספות.
למידע נוסף על מנגנוני האבטחה הקיימים ב-PostgreSQL, כמו מדיניות אבטחה ברמת השורה (RLS), קראו את המאמר מדיניות אבטחה ברמת השורה.
מנגנון אבטחה
תצוגות מאובטחות עם פרמטרים מוסיפות שכבת אבטחה נוספת על ידי שליטה באופן שבו שאילתות ניגשות לנתונים הבסיסיים. הם מספקים למפתחי אפליקציות אבטחת נתונים ובקרת גישה לשורות באמצעות השיטות הבאות:
- תצוגות שנוצרו באמצעות האפשרות
WITH (security barrier)מספקות אבטחה ברמת השורה, בכך שהן מונעות העברת ערכים משורות לפונקציות ולאופרטורים שנבחרו באופן זדוני, עד לאחר שהתצוגה מסיימת את פעולתה. למידע נוסף על הסעיףWITH (security barrier), קראו את המאמר כללים והרשאות. - הגדרת פרמטרים באמצעות פרמטרים של תצוגה עם שם מאפשרת תצוגה מוגבלת של מסד הנתונים, שמוגדרת באמצעות ערכים שהאפליקציה מספקת על סמך אבטחה ברמת האפליקציה, כמו אימות של משתמשי קצה.
- אכיפה של הגבלות נוספות על שאילתות שניגשות לתצוגות עם פרמטרים שימושית לאפליקציות שמריצות שאילתות לא מהימנות ממשתמשי קצה, כמו אלה שנוצרות על ידי AI שממיר שפה טבעית ל-SQL. כך אפשר למנוע חריגה ממעטפת האבטחה שמספקות תצוגות מאובטחות עם פרמטרים, ולנהל את השימוש במשאבים. מידע נוסף זמין במאמר הגבלות על שאילתות.
מגבלות
- צריך להפעיל את הדגל של התצוגה עם הפרמטרים בנפרד בכל מופע של AlloyDB Omni. אובייקטים של תצוגה עם פרמטרים שנוצרו במופע הראשי מועברים למופעים של מאגר לקריאה ולרפליקות חוצות-אזורים.
עם זאת, הגדרת הדגל
parameterized_views.enabledלא חלה באופן אוטומטי וצריך להגדיר אותה באופן ידני בכל מכונה. למידע נוסף, ראו לפני שמתחילים. אי אפשר לשלוח שאילתות לתצוגות עם פרמטרים במכונה של מאגר לקריאה בלבד או ברפליקה חוצת-אזורים, לפני שמפעילים את הדגלparameterized_views.enabledבכל מכונה.
המאמרים הבאים
- ניהול אבטחת מידע של האפליקציה באמצעות תצוגות מאובטחות עם פרמטרים.
- גישה מאובטחת לנתוני האפליקציה ושליטה בהם באמצעות תצוגות מאובטחות עם פרמטרים.