מניעת גישה ציבורית

הגדרה

בדף הזה נסביר איך מגדירים מניעת גישה ציבורית לנתונים בקטגוריה, ואיך מגדירים אילוץ במדיניות הארגון למניעת גישה ציבורית לנתונים. באמצעות ההגדרה בקטגוריה או האילוץ במדיניות הארגון, אפשר להגביל את הגישה של ישויות כמו משתמשים אנונימיים באינטרנט, לנתונים שלכם. במאמר סקירה כללית על בקרת הגישה תוכלו לקרוא על האפשרויות השונות של בקרת הגישה.

סקירה כללית

באמצעות מניעת גישה ציבורית לנתונים אפשר להגן על קטגוריות ואובייקטים של Cloud Storage מפני חשיפה בטעות לציבור. כשאוכפים מניעת גישה ציבורית לנתונים, אף אחד לא יכול להשתמש במדיניות IAM או ברשימות ACL כדי להפוך את הנתונים בקטגוריות הרלוונטיות לציבוריים. יש שתי דרכים לאכוף מניעה של גישה ציבורית:

האם כדאי למנוע גישה ציבורית לנתונים?

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

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

התנהגות בזמן אכיפה

מניעת הגישה הציבורית לנתונים משפיעה על ההתנהגות של המשאבים באופן הבא:

  • בקשות שנשלחות לקטגוריות ולאובייקטים עם אישור באמצעות allUsers ו-allAuthenticatedUsers ייכשלו ויתקבל קוד הסטטוס 401 או 403 של HTTP.

  • אין שינוי בכללי מדיניות ה-IAM וברשימות ה-ACL הקיימות שמעניקות גישה ל-allUsers ול-allAuthenticatedUsers, אבל הכללים למניעת הגישה הציבורית לנתונים מבטלים אותם.

  • בקשות ליצירת קטגוריות או אובייקטים ייכשלו אם כללי מדיניות ה-IAM שלהן או רשימות ה-ACL שלהן כוללות את allUsers ו-allAuthenticatedUsers, מלבד במקרה הבא:

    • אם לקטגוריה יש רשימת ACL שמוגדרת כברירת המחדל לאובייקטים, והיא מכילה את allUsers, הבקשות ליצירת אובייקטים בקטגוריה הזו יצליחו. רשימות ה-ACL של האובייקטים האלה יכילו את allUsers, אבל ההגדרה של allUsers תבוטל על ידי מניעת הגישה הציבורית לנתונים.
  • בקשות להוספה של allUsers ושל allAuthenticatedUsers למדיניות IAM או לרשימת ACL ייכשלו ויתקבל קוד הסטטוס 412 Precondition Failed.

ירושה

קטגוריה יכולה לקבל בירושה את ההגדרה למניעת הגישה הציבורית לנתונים, גם אם לא חלה עליה מניעת גישה ציבורית לנתונים באופן מפורש. הירושה מתרחשת במקרה שהאילוץ storage.publicAccessPrevention של מדיניות הארגון מוגדר ברמת הפרויקט, התיקייה או הארגון שבהם נמצאת הקטגוריה. לכן מצב הקטגוריה יכול להיות רק enforced או inherited.

  • אם במטא-נתונים של הקטגוריה הערך של מניעת גישה ציבורית לנתונים מוגדר ל-enforced, מניעת הגישה הציבורית לנתונים חלה על הקטגוריה.

  • אם במטא-נתונים של הקטגוריה הערך של מניעת גישה ציבורית לנתונים מוגדר ל-inherited, מניעת הגישה הציבורית לנתונים נקבעת לפי האילוץ storage.publicAccessPrevention של מדיניות הארגון:

    • אם האילוץ storage.publicAccessPrevention מוגדר לערך True ברמת הפרויקט שמכיל את הקטגוריה, מניעת הגישה הציבורית לנתונים חלה על הקטגוריה.

    • אם האילוץ storage.publicAccessPrevention מוגדר לערך False ברמת הפרויקט שמכיל את הקטגוריה, מניעת הגישה הציבורית לנתונים לא חלה על הקטגוריה.

    • אם האילוץ storage.publicAccessPrevention לא מוגדר בפרויקט שמכיל את הקטגוריה, מניעת הגישה הציבורית לנתונים נקבעת לפי הערך של storage.publicAccessPrevention ברמת התיקייה (אם קיימת) שמכילה את הפרויקט.

      • באופן דומה, אם האילוץ storage.publicAccessPrevention לא מוגדר בתיקייה שמכילה את הקטגוריה, מניעת הגישה הציבורית לנתונים נקבעת לפי הערך של storage.publicAccessPrevention ברמת הארגון שמכיל את הפרויקט.

      • אם האילוץ storage.publicAccessPrevention לא מוגדר באף משאב, מניעת הגישה הציבורית לנתונים לא תחול על הקטגוריה.

התנהגות בזמן השבתה

ההשבתה של מניעת הגישה הציבורית לנתונים משפיעה על ההתנהגות של המשאבים באופן הבא:

  • כללי מדיניות ה-IAM ורשימות ה-ACL הקיימות שמעניקות גישה ל-allUsers ול-allAuthenticatedUsers ייכנסו לתוקף והנתונים יהיו נגישים לציבור.

  • הבקשות ליצירת מדיניות IAM או רשימות ACL שמאפשרות גישה ל-allUsers ול-allAuthenticatedUsers מצליחות.

  • אובייקטים שנוצרים במסגרת מניעת הגישה הציבורית לנתונים בלי רשימות ACL ציבוריות, יכולים להיות נגישים לציבור אם הם נוצרים בקטגוריה שנגישה לציבור.

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

לתשומת ליבכם

  • כשאוכפים מניעת גישה ציבורית לנתונים על משאבים קיימים, כל ההרשאות הקיימות נחסמות ונסיונות להוסיף allUsers ו-allAuthenticatedUsers גם נחסמים. יכולה להיות לכך השפעה על הקטגוריות שלכם בדרכים הבאות:

    • אם האפליקציה מסתמכת על allUsers ו-allAuthenticatedUsers כדי לגשת לנתונים שלכם או כדי ליצור משאבים ציבוריים, הפעלה של מניעת גישה ציבורית לנתונים עלולה להשבית את האפליקציה. כדי לזהות את המשאבים הציבוריים שאפליקציות אחרות עשויות להיות תלויות בהם, אפשר להרחיב את התוכן הבא:

      איך מזהים משאבים שגלויים לכולם

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

    • יומני הביקורת של Cloud לא עוקבים אחרי הגישה לאובייקטים ציבוריים. אם מופעלים אצלכם יומני גישה לנתונים בזמן האכיפה של מניעת הגישה הציבורית לנתונים, יכול להיות שתבחינו בעלייה בקצב יצירת היומנים. יצירת היומנים האלו משפיעה על המכסה של הטמעת הנתונים ביומן ועשויה לגרום לצבירת חיובים על יומני הביקורת של Cloud. העלייה הזו עשויה להתרחש כי יכול להיות שהגישה, שקודם לכן הייתה ציבורית ולכן לא דוּוחה, תשויך להרשאות ספציפיות שכן מדוּוחות ליומן.

  • כתובות URL חתומות, שמעניקות גישה מוגבלת בזמן לכל מי שמשתמש בהן, לא מושפעות ממניעת הגישה הציבורית לנתונים.

  • בפרויקטים שלא משויכים לארגון אי אפשר להשתמש במדיניות הארגון. לקטגוריות בפרויקט כזה יש להגדיר את המדיניות ברמת הקטגוריה.

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

  • אחרי שהאכיפה מתחילה, יכול להיות שהאובייקטים עדיין יהיו נגישים לציבור דרך מטמון באינטרנט למשך פרק זמן מסוים, בהתאם להגדרת ה-Cache-Control של האובייקטים. לדוגמה, אם השדה Cache-Control:max-age של האובייקט מוגדר לברירת המחדל של 3,600 שניות, האובייקט עשוי להישאר במטמון באינטרנט למשך הזמן הזה.

המאמרים הבאים