גישה אחידה ברמת הקטגוריה

הגדרה

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

סקירה כללית

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

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

האם כדאי להשתמש בגישה אחידה ברמת הקטגוריה?

באופן כללי, מומלץ להשתמש בגישה אחידה ברמת הקטגוריה, כי היא מאחדת ומפשטת את האופן שבו נותנים גישה למשאבים ב-Cloud Storage.

השימוש בגישה אחידה ברמת הקטגוריה מאפשר גם להשתמש בתכונות אבטחה אחרות של Google Cloud, כמו שיתוף עם הגבלות על דומיינים, איחוד שירותי אימות הזהות של כוח עבודה ותנאים ב-IAM.

לא כדאי להשתמש בגישה אחידה ברמת הקטגוריה, ובמקום זאת לשמור רשימות ACL מפורטות אם:

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

  • אתם רוצים שמעלה אובייקט תהיה שליטה מלאה על האובייקט, אבל יש פחות גישה לאובייקטים אחרים בקטגוריה.

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

התנהגות כאשר היא מופעלת

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

אחרי שמפעילים את הקטגוריה, ההתנהגות שלה היא:

  • בקשות להגדרה, לקריאה או לשינוי של רשימות ACL של קטגוריות ואובייקטים נכשלות עם שגיאות 400 Bad Request.

  • בקשות של JSON API להקרנה מלאה של מטא-נתונים של קטגוריה או אובייקט כוללות רשימת ACL ריקה מהתגובה.

  • הפקודות gsutil cp -p, mv -p ו-rsync -p נכשלות (בשתיהן אם הקטגוריה האחידה – ו-level access bucket היא המקור ומתי הוא היעד). גם הפקודות gsutil acl ו-defacl נכשלות.

  • בעלות על אובייקט מסוים לא קיימת יותר. המוענקת מבעלות כזו מבוטלת, ובקשות למטא-נתונים של קטגוריות ואובייקטים לא כוללות יותר את השדה owner.

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

    • כך נשמרת ההרשאות שאובייקטים יקבלו בירושה מה-ACL הסטנדרטי של אובייקט ברירת המחדל של קטגוריה.

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

ההתנהגות במקרה שהיא בוטלה

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

  • אובייקטים מקבלים מחדש את רשימות ה-ACL שנשמרו.

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

שיקולים בעת העברת קטגוריה קיימת

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

כדאי לבדוק במקרה שהרשאת IAM ברמת הקטגוריה גורמת לחשיפת יתר של נתונים

לפני שמקצים פריטים שווי ערך ב-IAM לרשימות ה-ACL, כדאי לשקול את הדברים הבאים:

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

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

בדיקת שימוש ב-ACL של אובייקט

כאשר עוברים לגישה אחידה ברמת הקטגוריה, צריך לבדוק במקרה שניגשים לאובייקטים בקטגוריה דרך רשימות ACL שהוחלו עליהם. על מנת לבדוק זאת, Cloud Monitoring כולל מדד שעוקב אחרי השימוש ב-ACL. במקרה שהמדד הזה מצביע על כך שמשתמשים או שירותים מסתמכים על רשימות ACL לגישה לאובייקטים, עליכם להקצות לקטגוריה שווה ערך ב-IAM לפני שמפעילים גישה אחידה ברמת הקטגוריה. למדריך לבדיקת השימוש ב-ACL ב-Monitoring, ראו בדיקת השימוש ב-ACL.

תוכל להשתמש במדד הזה על מנת לקבוע אם הפעלת גישה אחידה ברמת הקטגוריה תפגע בתהליך העבודה:

מטרי תיאור
storage.googleapis.com/authz/acl_operations_count מספר פעולות ה-ACL שיושבתו לאחר הפעלת גישה אחידה ברמת הקטגוריה, בחלוקה לפי סוג פעולת ה-ACL והקטגוריה.

פעולת ACL חשובה שיש לבדוק היא OBJECT_ACCESS_REQUIRED_OBJECT_ACL:

  • במקרה שהמספר הוא אפס, לא נדרשו רשימות ACL ברמת האובייקט על מנת לגשת לאובייקטים ב 6 השבועות האחרונים. מדיניות IAM מתייחסת להרשאות הנדרשות ברמת הקטגוריה או הפרויקט.

  • במקרה שהמספר הזה גדול מאפס, ב 6 השבועות האחרונים היו בקשות גישה לאובייקטים שדרשו הרשאות ACL של אובייקטים. צריך להקצות מדיניות IAM מקבילה לפני שמפעילים גישה אחידה ברמת הקטגוריה.

מידע נוסף על מדדים זמין במאמר מדדים, פעולות על ציר הזמן ומשאבים.

בדיקת ה-ACL של אובייקט ברירת המחדל בקטגוריה

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

לדוגמה, בקטגוריות נעשה בדרך כלל שימוש ב-ACL המוגדר מראש projectPrivate בתור ה-ACL של אובייקט ברירת המחדל. projectPrivate מעניקה לאובייקט READER הרשאה לצופים בפרויקט שמשויכים לקטגוריה, וגם לאובייקט OWNER הרשאה לעורכים ולבעלים של הפרויקט שמשויך לקטגוריה.

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

הקצאת שווי ערך ב-IAM לרשימות ACL של אובייקטים

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

הרשאת ACL של אובייקט תפקיד IAM המקביל
READER קורא אובייקטים מדור קודם של Storage (roles/storage.legacyObjectReader)
OWNER בעלי אובייקט ב-Storage מדור קודם (roles/storage.legacyObjectOwner)

שיקולים לשימוש בתנאים ב-IAM

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

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