בדף הזה מוסבר איך להגדיר כללי מדיניות של ניהול זהויות והרשאות גישה (IAM) בתיקיות מנוהלות, כדי לקבל בקרת גישה מפורטת על קבוצות ספציפיות של אובייקטים בתוך קטגוריה.
אם אתם מחפשים שיטות אחרות לבקרת גישה, אתם יכולים להיעזר במקורות המידע הבאים:
במאמר הגדרה וניהול של מדיניות IAM בקטגוריות מוסבר איך לקבוע את הגישה לקטגוריות שלמות ולאובייקטים בתוכן שלהן.
דרך נוספת לשליטה בגישה לאובייקטים ספציפיים בקטגוריות מופיעה במאמר רשימות של בקרת גישה.
מידע נוסף על בקרת גישה למשאבים ב-Cloud Storage זמין במאמר סקירה כללית על בקרת גישה.
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות להגדרה ולניהול של כללי מדיניות IAM בתיקיות מנוהלות, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM 'אדמין לניהול תיקיות' (roles/storage.folderAdmin) בקטגוריה שמכילה את התיקיות המנוהלות.
התפקיד הזה מכיל את ההרשאות הבאות, שנדרשות להגדרה ולניהול של מדיניות IAM בתיקיות מנוהלות:
storage.managedFolders.getIamPolicystorage.managedFolders.setIamPolicy
אפשר לקבל את ההרשאות האלה גם באמצעות תפקידים בהתאמה אישית.
במאמר הגדרה וניהול של מדיניות IAM בקטגוריות מוסבר איך מקצים תפקידים לקטגוריות.
הגדרת מדיניות IAM בתיקייה מנוהלת
המסוף
- במסוף Google Cloud , נכנסים לדף Buckets של Cloud Storage.
ברשימת הקטגוריות, לוחצים על שם הקטגוריה שמכילה את התיקייה המנוהלת שרוצים להגדיר לה מדיניות IAM.
בדף Bucket details, לוחצים על סמל More options בחלונית Folder browser לצד התיקייה המנוהלת שרוצים להגדיר לה מדיניות IAM.
אם רוצים לשלוט בגישה בתוך תיקייה או תיקייה מדומה, צריך לפעול לפי השלבים במאמר יצירת תיקייה מנוהלת כדי להפעיל ניהול בתיקייה או בתיקייה המדומה.
לוחצים על עריכת הגישה.
בחלונית Permissions for
MANAGED_FOLDER_NAMEלוחצים על Add principal .בשדה New principals, מזינים את חשבון המשתמש שרוצים להעניק לו גישה. מידע נוסף על ישויות מורשות שאפשר לכלול מופיע במאמר מזהים של חשבונות משתמשים.
בקטע הקצאת תפקידים, משתמשים בתפריט הנפתח בחירת תפקיד כדי לציין את רמת הגישה שרוצים להעניק לחשבון הראשי.
לוחצים על Save.
שורת הפקודה
יוצרים קובץ JSON שמכיל את הפרטים הבאים:
{ "bindings":[ { "role": "IAM_ROLE", "members":[ "PRINCIPAL_IDENTIFIER" ] } ] }
כאשר:
IAM_ROLEהוא תפקיד ה-IAM שמקצים. לדוגמה,roles/storage.objectViewer.
PRINCIPAL_IDENTIFIERמזהה למי אתם מעניקים גישה לתיקייה מנוהלת. לדוגמה,user:jeffersonloveshiking@gmail.com. רשימת הפורמטים של מזהי חשבון המשתמש מופיעה במאמר מזהים של חשבונות משתמשים.
משתמשים בפקודה
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
התקנה והפעלה של ה-CLI של gcloud, שמאפשרות ליצור אסימון גישה לכותרת
Authorization.יוצרים קובץ JSON שמכיל את הפרטים הבאים:
{ "bindings":[ { "role": "IAM_ROLE", "members":[ "PRINCIPAL_IDENTIFIER" ] } ] }
כאשר:
IAM_ROLEהוא תפקיד ה-IAM שרוצים להקצות. לדוגמה,roles/storage.objectViewer.
PRINCIPAL_IDENTIFIERמזהה למי אתם מעניקים גישה לתיקייה מנוהלת. לדוגמה,user:jeffersonloveshiking@gmail.com. רשימת הפורמטים של מזהי חשבון המשתמש מופיעה במאמר מזהים של חשבונות משתמשים.
משתמשים ב-
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 של תיקייה מנוהלת
המסוף
- במסוף Google Cloud , נכנסים לדף Buckets של Cloud Storage.
ברשימת הקטגוריות, לוחצים על שם הקטגוריה שמכילה את התיקייה המנוהלת שרוצים לראות את מדיניות ה-IAM שלה.
בדף Bucket details, לוחצים על סמל More options (אפשרויות נוספות) בחלונית Folder browser (דפדפן תיקיות) לצד התיקייה המנוהלת שרוצים לראות את מדיניות ה-IAM שלה.
לוחצים על עריכת הגישה.
בחלונית 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
התקנה והפעלה של ה-CLI של gcloud, שמאפשרות ליצור אסימון גישה לכותרת
Authorization.משתמשים ב-
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/.
הסרת חשבון משתמש ממדיניות של תיקייה מנוהלת
המסוף
- במסוף Google Cloud , נכנסים לדף Buckets של Cloud Storage.
ברשימת הקטגוריות, לוחצים על שם הקטגוריה שמכילה את התיקייה המנוהלת שרוצים לראות את מדיניות ה-IAM שלה.
בדף Bucket details, לוחצים על סמל האפשרויות הנוספות בחלונית Folder browser לצד התיקייה המנוהלת שרוצים להסיר ממנה את הגורם הראשי.
לוחצים על עריכת הגישה.
בחלונית Permissions for
FOLDER_NAME, מזינים את שם הגורם המקבל בשדה Filter.כדי למחוק את הגורם הראשי, לוחצים על סמל המחיקה .
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
התקנה והפעלה של ה-CLI של gcloud, שמאפשרות ליצור אסימון גישה לכותרת
Authorization.מחילים את המדיניות הקיימת על התיקייה המנוהלת. כדי לעשות את זה, משתמשים ב-
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/.
יוצרים קובץ JSON שמכיל את המדיניות שאחזרתם בשלב הקודם.
עורכים את קובץ ה-JSON כדי להסיר מהמדיניות את חשבון המשתמש.
כדי לשלוח קריאה ל-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, קראו את המאמר תנאים.
לפני שמוסיפים תנאים לתיקיות מנוהלות, צריך להפעיל גישה אחידה ברמת הקטגוריה.
הגדרת תנאי חדש בתיקייה מנוהלת
שורת הפקודה
יוצרים קובץ JSON או YAML שמגדיר את התנאי, כולל:
titleהוא הכותרת של התנאי,expressionהוא הביטוי הלוגי מבוסס-המאפיינים שלו, ואופציונלי,descriptionהוא התיאור של התנאי.שימו לב שב-Cloud Storage יש תמיכה רק במאפיינים תאריך/שעה, סוג המשאב ושם המשאב של
expression.משתמשים בפקודה
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
התקנה והפעלה של ה-CLI של gcloud, שמאפשרות ליצור אסימון גישה לכותרת
Authorization.משתמשים בבקשה
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.
כדי להוסיף תנאים חדשים לקישור במדיניות IAM, עורכים את הקובץ
tmp-policy.jsonבכלי לעריכת טקסט:{ "version": VERSION, "bindings": [ { "role": "IAM_ROLE", "members": [ "PRINCIPAL_IDENTIFIER" ], "condition": { "title": "TITLE", "description": "DESCRIPTION", "expression": "EXPRESSION" } } ], "etag": "ETAG" }כאשר:
VERSIONהיא הגרסה של מדיניות ה-IAM. בתיקיות מנוהלות עם תנאים ב-IAM הגרסה צריכה להיות 3.
IAM_ROLEהוא התפקיד שעליו חל התנאי. לדוגמה,roles/storage.objectViewer.
PRINCIPAL_IDENTIFIERמזהה על מי חל התנאי. לדוגמה,user:jeffersonloveshiking@gmail.com. רשימת הפורמטים של מזהי חשבון המשתמש מופיעה במאמר מזהים של חשבונות משתמשים.
TITLEהיא הכותרת של התנאי. לדוגמה,expires in 2019.
DESCRIPTIONהוא תיאור אופציונלי של התנאי. לדוגמה,Permission revoked on New Year's.
EXPRESSIONהוא ביטוי לוגי מבוסס-מאפיינים. לדוגמה,request.time < timestamp(\"2019-01-01T00:00:00Z\"). דוגמאות נוספות לביטויים מופיעות במאמרי העזרה של המאפיין 'תנאים'. ב-Cloud Storage יש תמיכה רק במאפיינים תאריך/שעה, סוג המשאב ושם המשאב.
אל תשנו את
ETAG.משתמשים בבקשה
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.
הסרת תנאי מתיקייה מנוהלת
שורת הפקודה
משתמשים בפקודה
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
עורכים את הקובץ
tmp-policy.jsonבכלי לעריכת טקסט כדי להסיר תנאים ממדיניות ה-IAM.משתמשים בפקודה
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
התקנה והפעלה של ה-CLI של gcloud, שמאפשרות ליצור אסימון גישה לכותרת
Authorization.משתמשים בבקשה
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/.
עורכים את הקובץ
tmp-policy.jsonבכלי לעריכת טקסט כדי להסיר תנאים ממדיניות ה-IAM.משתמשים בבקשה
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).
המאמרים הבאים
במאמר פתרון בעיות מוסבר איך לפתור בעיות שקשורות לתפקידים ולהרשאות ב-IAM.