הרשאות IAM לפקודות gsutil

הטבלה הבאה מפרטת את ההרשאות של ניהול זהויות והרשאות גישה (IAM) שנדרשות כדי להריץ כל פקודת gsutil של Cloud Storage על משאב נתון. הרשאות ה-IAM מקובצות יחד כדי ליצור תפקידים. אתם מעניקים תפקידים למשתמשים ולקבוצות.

בדף הזה אפשר למצוא גם מידע על הנושאים הבאים:

פקודה פקודת משנה הרשאות IAM נדרשות
autoclass get storage.buckets.get
autoclass set storage.buckets.update
cat storage.objects.get
compose storage.objects.get
storage.objects.create
storage.objects.delete1
config ללא
cors get storage.buckets.get
cors set storage.buckets.update
cp storage.objects.list2 (לקטגוריית היעד)
storage.objects.get (לאובייקטי המקור)
storage.objects.create (לקטגוריית היעד)
storage.objects.delete 3 (לקטגוריית היעד)
defstorageclass get storage.buckets.get
defstorageclass set storage.buckets.update
du storage.objects.get
hash storage.objects.get
help ללא
hmacKeys create storage.hmacKeys.create
hmacKeys delete storage.hmacKeys.delete
hmacKeys get storage.hmacKeys.get
hmacKeys list storage.hmacKeys.list
hmacKeys update storage.hmacKeys.update
iam get storage.buckets.get
storage.buckets.getIamPolicy
iam set או ch storage.buckets.get
storage.buckets.getIamPolicy
storage.buckets.setIamPolicy
storage.buckets.update
kms authorize resourceManager.projects.get
iam.serviceAccounts.create4
cloudkms.cryptoKeys.setIamPolicy (למפתח Cloud KMS שמקבל הרשאה)
kms encryption storage.buckets.get
kms encryption -d storage.buckets.get
storage.buckets.update
kms encryption -k storage.buckets.get
storage.buckets.update
resourceManager.projects.get5
cloudkms.cryptoKeys.setIamPolicy5
kms serviceaccount resourceManager.projects.get
label get storage.buckets.get
label set/ch storage.buckets.update
lifecycle get storage.buckets.get
lifecycle set/ch storage.buckets.update
logging get storage.buckets.get
logging set storage.buckets.update
ls (listing buckets) storage.buckets.list
storage.buckets.getIamPolicy6
ls (הצגת רשימה של אובייקטים) storage.objects.list
storage.objects.getIamPolicy7
ls -b storage.buckets.get
storage.buckets.getIamPolicy6
mb storage.buckets.create
mv storage.objects.list2 (לקטגוריית היעד)
storage.objects.get (לאובייקטי המקור)
storage.objects.create (לקטגוריית היעד)
storage.objects.delete (לקטגוריית המקור)
storage.objects.delete 3 (לקטגוריית היעד)
notification create storage.buckets.update
pubsub.topics.get (לפרויקט שמכיל את נושא ה-Pub/Sub)
pubsub.topics.create8 (לפרויקט שמכיל את נושא ה-Pub/Sub)
pubsub.topics.getIamPolicy (לנושא ה-Pub/Sub שמקבל התראות)
pubsub.topics.setIamPolicy8 (לנושא ה-Pub/Sub שמקבל התראות)
notification create -s storage.buckets.update
notification delete storage.buckets.get
storage.buckets.update
notification list storage.buckets.get
notification watchbucket storage.buckets.update
notification stopchannel storage.buckets.update
pap get storage.buckets.get
pap set storage.buckets.get
storage.buckets.update
storage.buckets.setIamPolicy10
perfdiag storage.buckets.get
storage.objects.create
storage.objects.delete
storage.objects.list
storage.objects.get
rb storage.buckets.delete
requesterpays get storage.buckets.get
requesterpays set on storage.buckets.update
requesterpays set off storage.buckets.update
resourcemanager.projects.createBillingAssignment9
retention clear, event-default, lock אוset storage.buckets.update
retention event או temp storage.objects.get
storage.objects.list
storage.objects.update
retention get storage.buckets.get
rewrite -k storage.objects.list
storage.objects.get
storage.objects.create
storage.objects.delete
rewrite -s storage.objects.list
storage.objects.get
storage.objects.create
storage.objects.delete
storage.objects.update
rm storage.objects.delete
rm -a storage.objects.delete
storage.objects.list
rm -r (מחיקת קטגוריה) storage.buckets.delete
storage.objects.delete
storage.objects.list
rpo get storage.buckets.get
rpo set storage.buckets.get
storage.buckets.update
rsync storage.objects.get (לאובייקטי המקור וקטגוריית היעד)
storage.objects.create (לקטגוריית היעד)
storage.objects.delete11 (לקטגוריית היעד)
storage.objects.list (לקטגוריות המקור והיעד)
rsync -n storage.objects.list (לקטגוריות המקור והיעד)
setmeta storage.objects.get
storage.objects.list
storage.objects.update
signurl אין; עם זאת, לחשבון השירות שהמפתח שלו משמש חלק מהפקודה הזו, חייבת להיות הרשאה לבצע את הבקשה המקודדת בכתובת URL החתומה.
stat storage.objects.get
test ללא
ubla set storage.buckets.get
storage.buckets.update
ubla get storage.buckets.get
update ללא
version ללא
versioning get storage.buckets.get
versioning set storage.buckets.update
web get storage.buckets.get
web set storage.buckets.update

1ההרשאה הזו נדרשת רק אם לאובייקט המורכב יש שם זהה לאובייקט שכבר קיים בקטגוריה.

2 ההרשאה הזו נדרשת רק כשהיעד בפקודה מכיל נתיב אובייקט.

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

4ההרשאה הזו נדרשת רק אם אין חשבון שירות קיים ב-Cloud Storage המשויך לפרויקט.

5אם משתמשים ב-gsutil kms encryption -k ולחשבון השירות של הפרויקט אין הרשאה לגשת למפתח Cloud KMS המבוקש, gsutil יריץ את הפקודה gsutil kms authorize כדי להעניק את השירות לחשבון את ההרשאה הנדרשת.

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

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

8ההרשאות האלה לא נדרשות אם הנושא כבר קיים ולחשבון השירות הרלוונטי יש גישה אליו.

9ההרשאה הזו נדרשת רק אם לא כוללים פרויקט חיוב בבקשה. למידע נוסף, ראו דרישות השימוש והגישה של 'מגיש הבקשה משלם'.

10ההרשאה הזו לא נדרשת אם הפקודה לא משנה את הגדרת הקטגוריה.

11ההרשאה הזו נדרשת רק אם משתמשים בדגל -d, או אם מוסיפים אובייקט יש לו שם זהה לזה, אך נתונים שונים מאלו, של אובייקט שכבר קיים בקטגוריה.

שיטות שקשורות ל-ACL

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

פקודה פקודת משנה המשאב שעליו פועלים הרשאות IAM נדרשות
acl get קטגוריות storage.buckets.get
storage.buckets.getIamPolicy
acl set או ch קטגוריות storage.buckets.get
storage.buckets.getIamPolicy
storage.buckets.setIamPolicy
storage.buckets.update
acl get אובייקטים storage.objects.get
storage.objects.getIamPolicy
acl set או ch אובייקטים storage.objects.get
storage.objects.getIamPolicy
storage.objects.setIamPolicy
storage.objects.update
cp -a או cp -p אובייקטים storage.objects.listא (לקטגוריית היעד)
storage.objects.get (לאובייקטי המקור)
storage.objects.create (לקטגוריית היעד)
storage.objects.deleteב (לקטגוריית היעד)
storage.objects.getIamPolicy (לאובייקטי המקור)
storage.objects.setIamPolicy (לקטגוריית היעד)
defacl get קטגוריות storage.buckets.get
storage.buckets.getIamPolicy
defacl set או ch קטגוריות storage.buckets.get
storage.buckets.getIamPolicy
storage.buckets.setIamPolicy
storage.buckets.update
iam get אובייקטים storage.objects.get
storage.objects.getIamPolicy
iam set או ch אובייקטים storage.objects.get
storage.objects.getIamPolicy
storage.objects.setIamPolicy
storage.objects.update
mv -a או mv -p אובייקטים storage.objects.listא (לקטגוריית היעד)
storage.objects.get (לאובייקטי המקור)
storage.objects.create (לקטגוריית היעד)
storage.objects.delete (לקטגוריית המקור)
storage.objects.deleteב (לקטגוריית היעד)
storage.objects.getIamPolicy (לאובייקטי המקור)
storage.objects.setIamPolicy (לקטגוריית היעד)
rsync -a או rsync -p אובייקטים storage.objects.get (לאובייקטי המקור ולקטגוריית היעד)
storage.objects.create (לקטגוריית היעד)
storage.objects.deleteג (לקטגוריית היעד)
storage.objects.list (לקטגוריות המקור והיעד)
storage.objects.getIamPolicy (לאובייקטי המקור)
storage.objects.setIamPolicy (לקטגוריית היעד)

א ההרשאה הזו נדרשת רק כשהיעד בפקודה מכיל נתיב אובייקט.

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

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

הדגל -u ברמה העליונה

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

תווים כלליים לחיפוש ודגלים רקורסיביים

אם משתמשים בתווים כלליים לחיפוש של URI כדי לבחור מספר אובייקטים בפקודה, אתם צריכים הרשאה storage.objects.list בקטגוריה שמכילה את האובייקטים. באופן דומה, אם משתמשים בתווים כלליים לחיפוש של URI כדי לבחור מספר קטגוריות בפקודה, אתם צריכים הרשאה storage.buckets.list בפרויקטים שמכילים את הקטגוריות.

אם משתמשים בדגלים הרקורסיביים (-r ו--R), אתם צריכים הרשאה storage.objects.list בקטגוריה הרלוונטית, בנוסף להרשאות הנדרשות בשביל הפקודה הספציפית שבה משתמשים.

הדגל -m ברמה העליונה

בדרך כלל, אם משתמשים בפקודת gsutil שפועלת על מספר אובייקטים או קטגוריות, הפקודה תיכשל בשגיאה הראשונה. עם זאת, כשמשתמשים בדגל הגלובלי -m, ‏ gsutil רושם את כל השגיאות שהוא נתקל בהן וממשיך בפעולה.

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

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