הגדרה וניהול של מדיניות 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. בדף Bucket details, לוחצים על סמל More options בחלונית Folder browser לצד התיקייה המנוהלת שרוצים להגדיר לה מדיניות IAM.

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

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

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

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

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

  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, לוחצים על סמל More options (אפשרויות נוספות) בחלונית 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, קראו את המאמר תנאים.

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

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

שורת הפקודה

  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).

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