הגדרה וניהול של מדיניות IAM בתיקיות מנוהלות

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

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

התפקידים הנדרשים

כדי לקבל את ההרשאות שדרושות להגדרה ולניהול של כללי מדיניות IAM בתיקיות מנוהלות, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM 'אדמין לניהול תיקיות' (roles/storage.folderAdmin) בקטגוריה שמכילה את התיקיות המנוהלות.

התפקיד הזה מכיל את ההרשאות הבאות, שנדרשות להגדרה ולניהול של מדיניות IAM בתיקיות מנוהלות:

  • storage.managedFolders.getIamPolicy

  • storage.managedFolders.setIamPolicy

אפשר לקבל את ההרשאות האלה גם באמצעות תפקידים בהתאמה אישית.

במאמר הגדרה וניהול של מדיניות IAM בקטגוריות מוסבר איך מקצים תפקידים לקטגוריות.

הגדרת מדיניות IAM בתיקייה מנוהלת

המסוף

  1. במסוף Google Cloud , נכנסים לדף Buckets של Cloud Storage.

    כניסה לדף Buckets

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

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

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

  4. לוחצים על עריכת הגישה.

  5. בחלונית Permissions for MANAGED_FOLDER_NAME, לוחצים על Add principal .

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

  7. בקטע Assign roles, משתמשים בתפריט הנפתח Select a role כדי לציין את רמת הגישה שרוצים לתת לחשבון המשתמש.

  8. לוחצים על Save.

שורת הפקודה

  1. יוצרים קובץ JSON שמכיל את הפרטים הבאים:

    {
      "bindings":[
        {
          "role": "IAM_ROLE",
          "members":[
            "PRINCIPAL_IDENTIFIER"
          ]
        }
      ]
    }

    כאשר:

    • IAM_ROLE הוא תפקיד ה-IAM שמקצים. לדוגמה, roles/storage.objectViewer.

    • ‫PRINCIPAL_IDENTIFIER מזהה למי אתם מעניקים גישה לתיקייה המנוהלת. לדוגמה, user:jeffersonloveshiking@gmail.com. רשימת הפורמטים של מזהי חשבון המשתמש מופיעה במאמר מזהים של חשבונות משתמשים.

  2. משתמשים בפקודה gcloud storage managed-folders set-iam-policy:

    gcloud storage managed-folders set-iam-policy gs://BUCKET_NAME/MANAGED_FOLDER_NAME POLICY_FILE

    כאשר:

    • ‫BUCKET_NAME הוא שם הקטגוריה שמכילה את התיקייה המנוהלת שרוצים להחיל עליה את מדיניות ה-IAM. לדוגמה, my-bucket.

    • ‫MANAGED_FOLDER_NAME הוא שם התיקייה המנוהלת שעליה רוצים להחיל את מדיניות ה-IAM. לדוגמה, my-managed-folder/.

    • ‫POLICY_FILE הוא הנתיב לקובץ JSON שיצרתם בשלב 1.

ממשקי API בארכיטקטורת REST

JSON

  1. התקנה והפעלה של ה-CLI של gcloud, שמאפשרות ליצור אסימון גישה לכותרת Authorization.

  2. יוצרים קובץ JSON שמכיל את הפרטים הבאים:

    {
      "bindings":[
        {
          "role": "IAM_ROLE",
          "members":[
            "PRINCIPAL_IDENTIFIER"
          ]
        }
      ]
    }

    כאשר:

    • ‫IAM_ROLE הוא תפקיד ה-IAM שנותנים. לדוגמה: roles/storage.objectViewer.

    • ‫PRINCIPAL_IDENTIFIER מזהה למי אתם מעניקים גישה לתיקייה המנוהלת. לדוגמה, user:jeffersonloveshiking@gmail.com. רשימת הפורמטים של מזהי חשבון המשתמש מופיעה במאמר מזהים של חשבונות משתמשים.

  3. משתמשים ב-cURL כדי לשלוח קריאה ל-API בפורמט JSON באמצעות בקשת PUT setIamPolicy:

    curl -X PUT --data-binary @POLICY_FILE \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAME/iam"

    כאשר:

    • ‫POLICY_FILE הוא הנתיב לקובץ המדיניות בפורמט JSON שיצרתם בשלב הקודם.

    • ‫BUCKET_NAME הוא שם הקטגוריה שמכילה את התיקייה המנוהלת שעליה רוצים להחיל את מדיניות ה-IAM. לדוגמה, my-bucket.

    • ‫MANAGED_FOLDER_NAME הוא שם התיקייה המנוהלת שאליה אתם רוצים לתת גישה לחשבון המשתמש. לדוגמה, my-managed-folder/.

צפייה במדיניות ה-IAM של תיקייה מנוהלת

המסוף

  1. במסוף Google Cloud , נכנסים לדף Buckets של Cloud Storage.

    כניסה לדף Buckets

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

  3. בדף Bucket details, לוחצים על סמל האפשרויות הנוספות בחלונית Folder browser, ליד התיקייה המנוהלת שרוצים לראות את מדיניות ה-IAM שלה.

  4. לוחצים על עריכת הרשאות הגישה.

בחלונית Permissions for FOLDER_NAME מוצגות ההרשאות בתיקייה המנוהלת, כולל חשבון המשתמש, התפקיד, התפקידים שעברו בירושה ותנאי IAM.

שורת הפקודה

משתמשים בפקודה gcloud storage managed-folder get-iam-policy:

gcloud storage managed-folders get-iam-policy gs://BUCKET_NAME/MANAGED_FOLDER_NAME

כאשר:

  • ‫BUCKET_NAME הוא שם הקטגוריה שמכילה את התיקייה המנוהלת שאת מדיניות ה-IAM שלה רוצים לראות. לדוגמה, my-bucket.

  • ‫MANAGED_FOLDER_NAME הוא שם התיקייה המנוהלת שאת מדיניות ה-IAM שלה רוצים להציג. לדוגמה, my-managed-folder/.

ממשקי API בארכיטקטורת REST

JSON

  1. להתקין ולהפעיל את ה-CLI של gcloud, כדי שתוכלו ליצור אסימון גישה לכותרת Authorization.

  2. משתמשים ב-cURL כדי לשלוח קריאה ל-API בפורמט JSON באמצעות בקשת GET getIamPolicy:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAME/iam"

    כאשר:

    • ‫BUCKET_NAME הוא שם הקטגוריה שמכילה את התיקייה המנוהלת שרוצים לצפות במדיניות ה-IAM שלה. לדוגמה, my-bucket.

    • ‫MANAGED_FOLDER_NAME הוא שם התיקייה המנוהלת שרוצים לצפות במדיניות ה-IAM שלה. לדוגמה, my-managed-folder/.

הסרת חשבון משתמש ממדיניות של תיקייה מנוהלת

המסוף

  1. במסוף Google Cloud , נכנסים לדף Buckets של Cloud Storage.

    כניסה לדף Buckets

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

  3. בדף Bucket details, לוחצים על סמל האפשרויות הנוספות בחלונית Folder browser, לצד התיקייה המנוהלת שממנה רוצים להסיר את החשבון הראשי.

  4. לוחצים על עריכת הגישה.

  5. בחלונית Permissions for FOLDER_NAME, מזינים את שם הגורם המורשה בשדה Filter.

  6. לוחצים על סמל המחיקה כדי למחוק את חשבון המשתמש.

‫Cloud Storage מוחק את חשבון המשתמש מהתיקייה המנוהלת.

שורת הפקודה

משתמשים בפקודה gcloud storage managed-folder remove-iam-policy-binding:

gcloud storage managed-folders remove-iam-policy-binding  gs://BUCKET_NAME/MANAGED_FOLDER_NAME --member=PRINCIPAL_IDENTIFIER --role=IAM_ROLE

כאשר:

  • ‫BUCKET_NAME הוא שם הקטגוריה שמכילה את התיקייה המנוהלת שאליה רוצים לבטל את הגישה. לדוגמה, my-bucket.

  • ‫MANAGED_FOLDER_NAME הוא שם התיקייה המנוהלת שרוצים להסיר את מדיניות ה-IAM שלה. לדוגמה, my-managed-folder/.

  • ‫PRINCIPAL_IDENTIFIER מזהה למי אתם מבטלים את הגישה. לדוגמה, user:jeffersonloveshiking@gmail.com. רשימת הפורמטים של מזהי חשבון המשתמש מופיעה במאמר מזהים של חשבונות משתמשים.

  • ‫IAM_ROLE הוא תפקיד ה-IAM שרוצים לבטל. לדוגמה, roles/storage.objectViewer.

ממשקי API בארכיטקטורת REST

JSON

  1. להתקין ולהפעיל את ה-CLI של gcloud, כדי שתוכלו ליצור אסימון גישה לכותרת Authorization.

  2. מחילים את המדיניות הקיימת על התיקייה המנוהלת. כדי לעשות את זה, משתמשים ב-cURL כדי לשלוח קריאה ל-API בפורמט JSON באמצעות בקשת GET getIamPolicy:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAME/iam"

    כאשר:

    • ‫BUCKET_NAME הוא שם הקטגוריה שמכילה את התיקייה המנוהלת שאליה רוצים לבטל את הגישה. לדוגמה, my-bucket.

    • ‫MANAGED_FOLDER_NAME הוא שם התיקייה המנוהלת שרוצים להסיר את מדיניות ה-IAM שלה. לדוגמה, my-managed-folder/.

  3. יוצרים קובץ JSON שמכיל את המדיניות שאחזרתם בשלב הקודם.

  4. עורכים את קובץ ה-JSON כדי להסיר מהמדיניות את חשבון המשתמש.

  5. כדי לשלוח קריאה ל-API בפורמט JSON באמצעות בקשת PUT setIamPolicy, משתמשים ב-cURL:

    curl -X PUT --data-binary @JSON_FILE_NAME \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAME/iam"

    כאשר:

    • ‫JSON_FILE_NAME הוא הנתיב לקובץ שיצרתם בשלב 3.

    • ‫BUCKET_NAME הוא שם הקטגוריה שמכילה את התיקייה המנוהלת שאליה רוצים לבטל את הגישה. לדוגמה, my-bucket.

    • ‫MANAGED_FOLDER_NAME הוא שם התיקייה המנוהלת שרוצים להסיר את מדיניות ה-IAM שלה. לדוגמה, my-managed-folder/.

שימוש בתנאי IAM בתיקיות מנוהלות

בקטעים הבאים מוסבר איך להוסיף ולהסיר תנאי IAM בתיקיות מנוהלות. כדי לצפות בתנאי ה-IAM של תיקיות מנוהלות, היכנסו למאמר צפייה במדיניות ה-IAM של תיקייה מנוהלת. למידע נוסף על השימוש בתנאי IAM עם Cloud Storage, קראו את המאמר תנאים.

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

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

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

שורת הפקודה

  1. יוצרים קובץ JSON או YAML שמגדיר את התנאי, כולל: title הוא הכותרת של התנאי, expression הוא הביטוי הלוגי מבוסס-המאפיינים שלו, ואופציונלי, description הוא התיאור של התנאי.

    שימו לב שב-Cloud Storage יש תמיכה רק במאפיינים תאריך/שעה, סוג המשאב ושם המשאב של expression.

  2. משתמשים בפקודה gcloud storage managed-folders add-iam-policy-binding עם הדגל --condition-from-file:

gcloud storage managed-folders add-iam-policy-binding  gs://BUCKET_NAME/MANAGED_FOLDER_NAME --member=PRINCIPAL_IDENTIFIER --role=IAM_ROLE --condition-from-file=CONDITION_FILE

כאשר:

  • ‫BUCKET_NAME הוא שם הקטגוריה שמכילה את התיקייה המנוהלת שאליה אתם נותנים גישה לחשבון המשתמש. לדוגמה, my-bucket.

  • ‫MANAGED_FOLDER_NAME הוא שם התיקייה המנוהלת שאליה מעניקים גישה לחשבון המשתמש. לדוגמה, my-managed-folder/.

  • ‫PRINCIPAL_IDENTIFIER מזהה על מי חל התנאי. לדוגמה, user:jeffersonloveshiking@gmail.com. רשימת הפורמטים של מזהי חשבון המשתמש מופיעה במאמר מזהים של חשבונות משתמשים.

  • ‫IAM_ROLE הוא תפקיד ה-IAM שמעניקים לחשבון המשתמש. לדוגמה: roles/storage.objectViewer.

  • ‫CONDITION_FILE הוא הקובץ שיצרתם בשלב הקודם.

לחלופין, אפשר לכלול את התנאי ישירות בפקודה עם הדגל --condition במקום הדגל --condition-from-file.

ממשקי API בארכיטקטורת REST

JSON

  1. להתקין ולהפעיל את ה-CLI של gcloud, כדי שתוכלו ליצור אסימון גישה לכותרת Authorization.

  2. משתמשים בבקשה GET getIamPolicy כדי לשמור את מדיניות ה-IAM של התיקייה המנוהלת בקובץ JSON זמני:

    curl \
    'https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAMEiam' \
    --header 'Authorization: Bearer $(gcloud auth print-access-token)' > tmp-policy.json

    כאשר:

    • ‫BUCKET_NAME הוא שם הקטגוריה שמכילה את התיקייה המנוהלת שרוצים להגדיר לה תנאי IAM.

    • ‫MANAGED_FOLDER_NAME הוא שם התיקייה המנוהלת שרוצים להגדיר לה תנאי IAM.

  3. כדי להוסיף תנאים חדשים לקישור במדיניות IAM, עורכים את הקובץ tmp-policy.json בכלי לעריכת טקסט:

    {
        "version": VERSION,
        "bindings": [
          {
            "role": "IAM_ROLE",
            "members": [
              "PRINCIPAL_IDENTIFIER"
            ],
            "condition": {
              "title": "TITLE",
              "description": "DESCRIPTION",
              "expression": "EXPRESSION"
            }
          }
        ],
        "etag": "ETAG"
    }

    כאשר:

    אסור לבצע שינויים ב-ETAG.

  4. משתמשים בבקשה PUT setIamPolicy כדי להגדיר את מדיניות ה-IAM שהשתנתה בקטגוריה:

    curl -X PUT --data-binary @tmp-policy.json \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFoldersMANAGED_FOLDER_NAME/iam"

    כאשר:

    • ‫BUCKET_NAME הוא שם הקטגוריה שמכילה את התיקייה המנוהלת שרוצים להגדיר לה תנאי IAM.

    • ‫MANAGED_FOLDER_NAME הוא שם התיקייה המנוהלת שרוצים להגדיר לה תנאי IAM.

הסרת תנאי מתיקייה מנוהלת

שורת הפקודה

  1. משתמשים בפקודה gcloud storage managed-folders get-iam-policy כדי לשמור את מדיניות ה-IAM של התיקייה המנוהלת בקובץ JSON זמני.

    gcloud storage managed-folders get-iam-policy gs://BUCKET_NAME/MANAGED_FOLDER_NAME > tmp-policy.json
  2. עורכים את הקובץ tmp-policy.json בכלי לעריכת טקסט כדי להסיר תנאים ממדיניות ה-IAM.

  3. משתמשים בפקודה gcloud storage managed-folders set-iam-policy כדי להגדיר את מדיניות ה-IAM ששונתה בתיקייה המנוהלת.

    gcloud storage managed-folders set-iam-policy gs://BUCKET_NAME/MANAGED_FOLDER_NAME tmp-policy.json

ממשקי API בארכיטקטורת REST

JSON

  1. להתקין ולהפעיל את ה-CLI של gcloud, כדי שתוכלו ליצור אסימון גישה לכותרת Authorization.

  2. משתמשים בבקשה GET getIamPolicy כדי לשמור את מדיניות ה-IAM של התיקייה המנוהלת בקובץ JSON זמני:

    curl \
    'https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAMEiam' \
    --header 'Authorization: Bearer $(gcloud auth print-access-token)' > tmp-policy.json

    כאשר:

    • ‫BUCKET_NAME הוא שם הקטגוריה שמכילה את התיקייה המנוהלת שרוצים לשנות את הגישה אליה. לדוגמה, my-bucket.

    • ‫MANAGED_FOLDER_NAME הוא שם התיקייה המנוהלת שאתם משנים את הגישה אליה. לדוגמה, my-managed-folder/.

  3. עורכים את הקובץ tmp-policy.json בכלי לעריכת טקסט כדי להסיר תנאים ממדיניות ה-IAM.

  4. משתמשים בבקשה PUT setIamPolicy כדי להגדיר את מדיניות ה-IAM ששונתה בתיקייה המנוהלת:

    curl -X PUT --data-binary @tmp-policy.json \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAMEiam"

    כאשר:

    • ‫BUCKET_NAME הוא שם הקטגוריה שמכילה את התיקייה המנוהלת שרוצים לשנות את הגישה אליה. לדוגמה, my-bucket.

    • ‫MANAGED_FOLDER_NAME הוא שם התיקייה המנוהלת שרוצים לשנות את הגישה אליה. לדוגמה, my-managed-folder/.

שימוש ב-IAM עם פרויקטים

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

שיטות מומלצות

צריך להגדיר את התפקיד המינימלי הנדרש כדי לתת לחשבון המשתמש את רמת הגישה הנדרשת. לדוגמה, אם חבר צוות צריך רק לצפות בתיקיות המנוהלות בקטגוריה, נותנים לו את התפקיד "אדמין של אובייקטים באחסון" (roles/storage.objectAdmin) במקום את התפקיד "אדמין של תיקיות באחסון" (roles/storage.folderAdmin). באופן דומה, אם חברת הצוות צריכה שליטה מלאה בתיקיות המנוהלות בקטגוריה, צריך להעניק לה את התפקיד Storage Folder Admin (roles/storage.folderAdmin) במקום התפקיד Storage Admin (roles/storage.admin).

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