הטבלה הבאה מפרטת את ההרשאות של ניהול זהויות והרשאות גישה (IAM) שנדרשות כדי להריץ כל פקודת gsutil של Cloud Storage על משאב נתון. הרשאות ה-IAM מקובצות יחד כדי ליצור תפקידים. אתם מעניקים תפקידים למשתמשים ולקבוצות.
בדף הזה אפשר למצוא גם מידע על הנושאים הבאים:
שימוש בפקודות נוספות שחלות רק על קטגוריות שבהן הגישה האחידה ברמת הקטגוריה מושבתת
שימוש בדגל
-uכדי לציין פרויקטים לחיובשימוש בדגל
-mלהרצת פעולות במקביל
| פקודה | פקודת משנה | הרשאות IAM נדרשות |
|---|---|---|
autoclass |
get |
storage.buckets.get |
autoclass |
set |
storage.buckets.update |
cat |
storage.objects.get |
|
compose |
storage.objects.getstorage.objects.createstorage.objects.delete1 |
|
config |
ללא | |
cors |
get |
storage.buckets.get |
cors |
set |
storage.buckets.update |
cp |
storage.objects.list2storage.objects.getstorage.objects.createstorage.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.getstorage.buckets.getIamPolicy |
iam |
set או ch |
storage.buckets.getstorage.buckets.getIamPolicystorage.buckets.setIamPolicystorage.buckets.update |
kms |
authorize |
resourceManager.projects.getiam.serviceAccounts.create4cloudkms.cryptoKeys.setIamPolicy |
kms |
encryption |
storage.buckets.get |
kms |
encryption -d |
storage.buckets.getstorage.buckets.update |
kms |
encryption -k |
storage.buckets.getstorage.buckets.updateresourceManager.projects.get5cloudkms.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.liststorage.buckets.getIamPolicy6 |
|
ls (הצגת רשימה של אובייקטים) |
storage.objects.liststorage.objects.getIamPolicy7 |
|
ls -b |
storage.buckets.getstorage.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.updatepubsub.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.getstorage.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.getstorage.buckets.updatestorage.buckets.setIamPolicy |
perfdiag |
storage.buckets.getstorage.objects.createstorage.objects.deletestorage.objects.liststorage.objects.get |
|
rb |
storage.buckets.delete |
|
requesterpays |
get |
storage.buckets.get |
requesterpays |
set on |
storage.buckets.update |
requesterpays |
set off |
storage.buckets.updateresourcemanager.projects.createBillingAssignment9 |
retention |
clear, event-default, lock אוset |
storage.buckets.update |
retention |
event או temp |
storage.objects.getstorage.objects.liststorage.objects.update |
retention |
get |
storage.buckets.get |
rewrite -k |
storage.objects.liststorage.objects.getstorage.objects.createstorage.objects.delete |
|
rewrite -s |
storage.objects.liststorage.objects.getstorage.objects.createstorage.objects.deletestorage.objects.update |
|
rm |
storage.objects.delete |
|
rm -a |
storage.objects.deletestorage.objects.list |
|
rm -r (מחיקת קטגוריה) |
storage.buckets.deletestorage.objects.deletestorage.objects.list |
|
rpo |
get |
storage.buckets.get |
rpo |
set |
storage.buckets.getstorage.buckets.update |
rsync |
storage.objects.getstorage.objects.createstorage.objects.delete11storage.objects.list |
|
rsync -n |
storage.objects.list (לקטגוריות המקור והיעד) |
|
setmeta |
storage.objects.getstorage.objects.liststorage.objects.update |
|
signurl |
אין; עם זאת, לחשבון השירות שהמפתח שלו משמש חלק מהפקודה הזו, חייבת להיות הרשאה לבצע את הבקשה המקודדת בכתובת URL החתומה. | |
stat |
storage.objects.get |
|
test |
ללא | |
ubla |
set |
storage.buckets.getstorage.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.getstorage.buckets.getIamPolicy |
acl |
set או ch |
קטגוריות | storage.buckets.getstorage.buckets.getIamPolicystorage.buckets.setIamPolicystorage.buckets.update |
acl |
get |
אובייקטים | storage.objects.getstorage.objects.getIamPolicy |
acl |
set או ch |
אובייקטים | storage.objects.getstorage.objects.getIamPolicystorage.objects.setIamPolicystorage.objects.update |
cp -a או cp -p |
אובייקטים | storage.objects.listאstorage.objects.getstorage.objects.createstorage.objects.deleteבstorage.objects.getIamPolicystorage.objects.setIamPolicy |
|
defacl |
get |
קטגוריות | storage.buckets.getstorage.buckets.getIamPolicy |
defacl |
set או ch |
קטגוריות | storage.buckets.getstorage.buckets.getIamPolicystorage.buckets.setIamPolicystorage.buckets.update |
iam |
get |
אובייקטים | storage.objects.getstorage.objects.getIamPolicy |
iam |
set או ch |
אובייקטים | storage.objects.getstorage.objects.getIamPolicystorage.objects.setIamPolicystorage.objects.update |
mv -a או mv -p |
אובייקטים | storage.objects.listאstorage.objects.getstorage.objects.createstorage.objects.deletestorage.objects.deleteבstorage.objects.getIamPolicystorage.objects.setIamPolicy |
|
rsync -arsync -p |
אובייקטים | storage.objects.getstorage.objects.createstorage.objects.deleteגstorage.objects.liststorage.objects.getIamPolicystorage.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 על אובייקט שאין הרשאה עבורו, אבל בכל זאת ממשיך בפעולה.
המאמרים הבאים
- הקצאת תפקידי IAM ברמת הפרויקט וברמת הקטגוריה.
- מידע על תפקידי IAM שכוללים הרשאות ל-Cloud Storage.