בדף הזה נסביר איך מגדירים מניעת גישה ציבורית לנתונים בקטגוריה, ואיך מגדירים אילוץ במדיניות הארגון למניעת גישה ציבורית לנתונים. באמצעות ההגדרה בקטגוריה או האילוץ במדיניות הארגון, אפשר להגביל את הגישה של ישויות כמו משתמשים אנונימיים באינטרנט, לנתונים שלכם. במאמר סקירה כללית על בקרת הגישה תוכלו לקרוא על האפשרויות השונות של בקרת הגישה.
סקירה כללית
באמצעות מניעת גישה ציבורית לנתונים אפשר להגן על קטגוריות ואובייקטים של Cloud Storage מפני חשיפה בטעות לציבור. כשאוכפים מניעת גישה ציבורית לנתונים, אף אחד לא יכול להשתמש במדיניות IAM או ברשימות ACL כדי להפוך את הנתונים בקטגוריות הרלוונטיות לציבוריים. יש שתי דרכים לאכוף מניעה של גישה ציבורית:
אכיפה של מניעת גישה ציבורית לנתונים בקטגוריות ספציפיות.
אם הקטגוריה נמצאת בתוך ארגון, אפשר לאכוף את מניעת הגישה הציבורית לנתונים באמצעות האילוץ
storage.publicAccessPreventionשל מדיניות הארגון ברמת הפרויקט, התיקייה או הארגון.
האם כדאי למנוע גישה ציבורית לנתונים?
כדאי להשתמש במניעת גישה ציבורית לנתונים אם אתם יודעים שהנתונים שלכם אף פעם לא צריכים להיות חשופים באינטרנט הציבורי. כדי לספק את האבטחה הטובה ביותר למשאבים שלכם, כדאי לאכוף את מניעת הגישה הציבורית לנתונים ברמה הגבוהה ביותר האפשרית בארגון.
אם אתם צריכים שהקטגוריה תהיה נגישה לציבור, למשל לצורך אירוח אתרים סטטיים, לא כדאי להשתמש במניעת גישה ציבורית לנתונים. אם הקטגוריה הזאת נמצאת בארגון שאוכף את מניעת הגישה הציבורית לנתונים ברמת הארגון, תצטרכו להשבית את מניעת הגישה הציבורית לנתונים בפרויקט הספציפי שבו נמצאת הקטגוריה.
התנהגות בזמן אכיפה
מניעת הגישה הציבורית לנתונים משפיעה על ההתנהגות של המשאבים באופן הבא:
בקשות שנשלחות לקטגוריות ולאובייקטים עם אישור באמצעות
allUsersו-allAuthenticatedUsersייכשלו ויתקבל קוד הסטטוס401או403של HTTP.אין שינוי בכללי מדיניות ה-IAM וברשימות ה-ACL הקיימות שמעניקות גישה ל-
allUsersול-allAuthenticatedUsers, אבל הכללים למניעת הגישה הציבורית לנתונים מבטלים אותם.בקשות ליצירת קטגוריות או אובייקטים ייכשלו אם כללי מדיניות ה-IAM שלהן או רשימות ה-ACL שלהן כוללות את
allUsersו-allAuthenticatedUsers, מלבד במקרה הבא:- אם לקטגוריה יש רשימת ACL שמוגדרת כברירת המחדל לאובייקטים, והיא מכילה את
allUsers, הבקשות ליצירת אובייקטים בקטגוריה הזו יצליחו. רשימות ה-ACL של האובייקטים האלה יכילו אתallUsers, אבל ההגדרה שלallUsersתבוטל על ידי מניעת הגישה הציבורית לנתונים.
- אם לקטגוריה יש רשימת ACL שמוגדרת כברירת המחדל לאובייקטים, והיא מכילה את
בקשות להוספה של
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כדי לגשת לנתונים שלכם או כדי ליצור משאבים ציבוריים, הפעלה של מניעת גישה ציבורית לנתונים עלולה להשבית את האפליקציה. כדי לזהות את המשאבים הציבוריים שאפליקציות אחרות עשויות להיות תלויות בהם, אפשר להרחיב את התוכן הבא:איך מזהים משאבים שגלויים לכולם
לפני שמפעילים את מניעת הגישה הציבורית, מומלץ לבדוק את המלאי של המשאבים הציבוריים כדי לוודא שלא יפסיקו לפעול עומסי עבודה אחרים שתלויים בנתונים ציבוריים. אפשר לאתר קטגוריות, אובייקטים ותיקיות מנוהלות שמוגדרים כציבוריים באמצעות השיטות הבאות:
- כדי לזהות עומסי עבודה שאולי ניגשים לנתונים הציבוריים שלכם, כדאי להגדיר יומני שימוש. היומנים האלה יכולים לספק מידע על בקשות לגישה לנתונים שמוגשות למשאבים ציבוריים.
-
כדי לבדוק אם יכול להיות שקטגוריה נגישה לציבור, צריך לבדוק את מדיניות ה-IAM של הקטגוריה. מדיניות שמעניקה תפקידים לחשבון הראשי
allUsersאוallAuthenticatedUsersעלולה להפוך את הקטגוריה לנגישה לציבור. במקום לקבל את מדיניות ה-IAM של קטגוריות נפרדות, אפשר להשתמש ב-מאגר משאבי ענן כדי לצפות במדיניות של כל הקטגוריות בפרויקט, בתיקייה או בארגון.אם יש בקטגוריה תיקיות מנוהלות, כדאי גם לבדוק את מדיניות ה-IAM של התיקיות המנוהלות כדי לזהות אילו תיקיות מנוהלות עשויות להיות נגישות לציבור.
- כדי לבדוק אם אובייקטים ספציפיים עשויים להיות נגישים לציבור, צריך לבדוק את האובייקט כדי לראות אם יש לו רשימות ACL.
רשימות ACL שמעניקות גישה למשתמש הראשי
allUsersאוallAuthenticatedUsersהופכות את האובייקט לנגיש לציבור.
יומני הביקורת של Cloud לא עוקבים אחרי הגישה לאובייקטים ציבוריים. אם מופעלים אצלכם יומני גישה לנתונים בזמן האכיפה של מניעת הגישה הציבורית לנתונים, יכול להיות שתבחינו בעלייה בקצב יצירת היומנים. יצירת היומנים האלו משפיעה על המכסה של הטמעת הנתונים ביומן ועשויה לגרום לצבירת חיובים על יומני הביקורת של Cloud. העלייה הזו עשויה להתרחש כי יכול להיות שהגישה, שקודם לכן הייתה ציבורית ולכן לא דוּוחה, תשויך להרשאות ספציפיות שכן מדוּוחות ליומן.
כתובות URL חתומות, שמעניקות גישה מוגבלת בזמן לכל מי שמשתמש בהן, לא מושפעות ממניעת הגישה הציבורית לנתונים.
בפרויקטים שלא משויכים לארגון אי אפשר להשתמש במדיניות הארגון. לקטגוריות בפרויקט כזה יש להגדיר את המדיניות ברמת הקטגוריה.
מניעת הגישה הציבורית לנתונים עקבית מאוד בקריאה אחרי עדכון של אובייקט, אבל יכולות לעבור עד 10 דקות לפני שהאכיפה תיכנס לתוקף.
אחרי שהאכיפה מתחילה, יכול להיות שהאובייקטים עדיין יהיו נגישים לציבור דרך מטמון באינטרנט למשך פרק זמן מסוים, בהתאם להגדרת ה-
Cache-Controlשל האובייקטים. לדוגמה, אם השדהCache-Control:max-ageשל האובייקט מוגדר לברירת המחדל של 3,600 שניות, האובייקט עשוי להישאר במטמון באינטרנט למשך הזמן הזה.
המאמרים הבאים
- איך משתמשים במניעת גישה ציבורית לנתונים
- למידע נוסף על מדיניות הארגון.