בדף הזה מוסבר איך למנוע מחשבונות משתמשים להשתמש בהרשאות ספציפיות של ניהול זהויות והרשאות גישה (IAM) כדי לדחות גישה שלהם.
ב-IAM, אפשר לדחות את הגישה באמצעות כללי מדיניות הדחייה. כל מדיניות דחייה מצורפת לארגון, לתיקייה או לפרויקט. Cloud de Confiance by S3NS מדיניות דחייה <x0A>כוללת כללי דחייה, שבהם מזוהים חשבונות המשתמשים ורשומים ההרשאות <x0A>שהם לא יכולים להשתמש בהן.
כללי מדיניות הדחייה אינם קשורים לכללי מדיניות ההרשאה, שנקראים גם כללי מדיניות IAM. מדיניות הרשאה מאפשרת גישה למשאבים באמצעות הקצאת תפקידי IAM לחשבונות המשתמשים.
אפשר לנהל את כללי מדיניות הדחייה באמצעות מסוף Cloud de Confiance , Google Cloud CLI או API בארכיטקטורת REST של IAM v2.
לפני שמתחילים
מפעילים את IAM API.
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (
roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאהserviceusage.services.enable. איך מקצים תפקידיםמגדירים אימות.
צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:
המסוף
כשמשתמשים במסוף Cloud de Confiance כדי לגשת לשירותים ולממשקי ה-API, לא צריך להגדיר אימות. Cloud de Confiance by S3NS
gcloud
התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם. אחרי שנכנסתם לחשבון, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:
gcloud initTerraform
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של Terraform שבדף הזה, מתקינים ומפעילים את ה-CLI של gcloud, ואז מגדירים את Application Default Credentials באמצעות פרטי הכניסה של המשתמש.
-
התקינו את ה-CLI של Google Cloud.
-
הגדירו שה-CLI של gcloud ישתמש בזהות המאוחדת שלכם.
-
יוצרים פרטי כניסה לאימות מקומי עבור חשבון המשתמש:
gcloud auth application-default login
אם מוחזרת שגיאת אימות ואתם משתמשים בספק זהויות חיצוני (IdP), ודאו ש נכנסתם ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
למידע נוסף, ראו הגדרת ADC לסביבת פיתוח מקומית במאמרי העזרה בנושא אימות Cloud de Confiance .
המשך
כדי להשתמש בדוגמאות של Go שבדף הזה בסביבת פיתוח מקומית, מתקינים ומפעילים את ה-CLI של gcloud, ואז מגדירים את Application Default Credentials באמצעות פרטי הכניסה של המשתמש.
-
התקינו את ה-CLI של Google Cloud.
-
הגדירו שה-CLI של gcloud ישתמש בזהות המאוחדת שלכם.
-
יוצרים פרטי כניסה לאימות מקומי עבור חשבון המשתמש:
gcloud auth application-default login
אם מוחזרת שגיאת אימות ואתם משתמשים בספק זהויות חיצוני (IdP), ודאו ש נכנסתם ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
למידע נוסף, ראו הגדרת ADC לסביבת פיתוח מקומית במאמרי העזרה בנושא אימות Cloud de Confiance .
Java
כדי להשתמש בדוגמאות של Java שבדף הזה בסביבת פיתוח מקומית, מתקינים ומפעילים את ה-CLI של gcloud, ואז מגדירים את Application Default Credentials באמצעות פרטי הכניסה של המשתמש.
-
התקינו את ה-CLI של Google Cloud.
-
הגדירו שה-CLI של gcloud ישתמש בזהות המאוחדת שלכם.
-
יוצרים פרטי כניסה לאימות מקומי עבור חשבון המשתמש:
gcloud auth application-default login
אם מוחזרת שגיאת אימות ואתם משתמשים בספק זהויות חיצוני (IdP), ודאו ש נכנסתם ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
למידע נוסף, ראו הגדרת ADC לסביבת פיתוח מקומית במאמרי העזרה בנושא אימות Cloud de Confiance .
Node.js
כדי להשתמש בדוגמאות של Node.js שבדף הזה בסביבת פיתוח מקומית, מתקינים ומפעילים את ה-CLI של gcloud, ואז מגדירים את Application Default Credentials באמצעות פרטי הכניסה של המשתמש.
-
התקינו את ה-CLI של Google Cloud.
-
הגדירו שה-CLI של gcloud ישתמש בזהות המאוחדת שלכם.
-
יוצרים פרטי כניסה לאימות מקומי עבור חשבון המשתמש:
gcloud auth application-default login
אם מוחזרת שגיאת אימות ואתם משתמשים בספק זהויות חיצוני (IdP), ודאו ש נכנסתם ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
למידע נוסף, ראו הגדרת ADC לסביבת פיתוח מקומית במאמרי העזרה בנושא אימות Cloud de Confiance .
Python
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של Python שבדף הזה, מתקינים ומפעילים את ה-CLI של gcloud, ואז מגדירים את Application Default Credentials באמצעות פרטי הכניסה של המשתמש.
-
התקינו את ה-CLI של Google Cloud.
-
הגדירו שה-CLI של gcloud ישתמש בזהות המאוחדת שלכם.
-
יוצרים פרטי כניסה לאימות מקומי עבור חשבון המשתמש:
gcloud auth application-default login
אם מוחזרת שגיאת אימות ואתם משתמשים בספק זהויות חיצוני (IdP), ודאו ש נכנסתם ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
למידע נוסף, ראו הגדרת ADC לסביבת פיתוח מקומית במאמרי העזרה בנושא אימות Cloud de Confiance .
REST
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.
התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם.
מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Cloud de Confiance .
-
כדאי לקרוא את הסקירה הכללית של כללי מדיניות הדחייה.
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות לניהול כללי מדיניות הדחייה, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים בארגון:
-
כדי לצפות בכללי מדיניות הדחייה:
דחיית סוקר (
roles/iam.denyReviewer) -
כדי להציג, ליצור, לעדכן ולמחוק כללי מדיניות דחייה:
דחיית אדמין (
roles/iam.denyAdmin)
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
התפקידים המוגדרים מראש האלה כוללים את ההרשאות שנדרשות לניהול כללי מדיניות הדחייה. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
הרשאות נדרשות
כדי לנהל את כללי מדיניות הדחייה נדרשות ההרשאות הבאות:
-
כדי להציג את כללי מדיניות הדחייה:
-
iam.denypolicies.get -
iam.denypolicies.list
-
-
כדי ליצור, לעדכן ולמחוק כללי מדיניות דחייה:
-
iam.denypolicies.create -
iam.denypolicies.delete -
iam.denypolicies.get -
iam.denypolicies.update
-
יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
זיהוי ההרשאות לדחייה
לפני שיוצרים מדיניות דחייה, צריך להחליט אילו הרשאות רוצים לדחות, ובאילו חשבונות המשתמשים יידחו ההרשאות האלה.
אפשר לדחות רק חלק מההרשאות. רשימת ההרשאות שאפשר לדחות מופיעה במאמר ההרשאות שנתמכות בכללי מדיניות הדחייה.
במקרים מסוימים, אפשר גם להשתמש בקבוצות הרשאות כדי לדחות סטים של הרשאות. מידע נוסף מופיע במאמר בנושא קבוצות הרשאות.
כללי מדיניות הדחייה מנוהלים באמצעות ה-v2 של API בארכיטקטורת REST, שדורש פורמט מיוחד
עבור שמות הרשאות. לדוגמה, ההרשאה ליצירת
תפקיד ב-IAM בהתאמה אישית ל-IAM נקראת כך:
v1API:iam.roles.createv2API:iam.googleapis.com/roles.create
יצירה של מדיניות דחייה
אפשר להוסיף כללי מדיניות דחייה לארגונים, לתיקיות ולפרויקטים. לכל משאב יכולים להיות עד 500 כללי מדיניות דחייה.
כללי מדיניות הדחייה כוללים כללי דחייה שבהם מפורטים:
- ההרשאות לדחייה.
- חשבונות המשתמשים שעבורם נדחו ההרשאות האלה.
אופציונלי: החרגת חשבונות משתמשים מדחיית הרשאות.
לדוגמה, אפשר לדחות הרשאה לקבוצה, אבל להחריג משתמשים מסוימים ששייכים לקבוצה הזו.
אופציונלי: ביטוי תנאי שמציין את הזמן שבו חשבונות המשתמשים לא יכולים להשתמש בהרשאות. בכללי מדיניות דחייה אפשר להשתמש בביטויי תנאי רק בפונקציות של תגי משאבים – אין תמיכה בפונקציות ובאופרטורים אחרים.
לכל משאב יכולים להיות עד 500 כללי דחייה בכל כללי מדיניות הדחייה שמצורפים אליו.
כללי מדיניות הדחייה עוברים בירושה דרך היררכיית המשאבים. לדוגמה, אם דוחים הרשאה ברמת הארגון, ההרשאה הזו תידחה גם בתיקיות ובפרויקטים שבארגון, ובמשאבים הספציפיים לשירות בתוך כל פרויקט.
כללי מדיניות הדחייה מבטלים את כללי מדיניות ההרשאה. אם מקצים לחשבון המשתמש תפקיד שמכיל הרשאה מסוימת, אבל במדיניות הדחייה מצויין שלחשבון המשתמש אין אפשרות להשתמש בהרשאה הזו, הוא לא יכול להשתמש בהרשאה.
המסוף
במסוף Cloud de Confiance , עוברים לכרטיסייה Deny בדף IAM.
בוחרים פרויקט, תיקייה או ארגון.
לוחצים על יצירה של מדיניות דחייה.
בקטע Policy name, מגדירים את מזהה המדיניות באחת מהדרכים הבאות:
- בשדה שם לתצוגה, מזינים שם לתצוגה של המדיניות. מילוי השדה הזה גורם למילוי אוטומטי של השדה מזהה. אם רוצים לשנות את המזהה של המדיניות, מעדכנים את הטקסט בשדה מזהה.
- בשדה ID, מזינים מזהה למדיניות.
בקטע Deny rules (כללי דחייה), מגדירים את כללי הדחייה של המדיניות. כל מדיניות דחייה חייבת לכלול לפחות כלל דחייה אחד. כדי להוסיף עוד כללי דחייה, לוחצים על הוספת כלל דחייה.
לכל כלל דחייה, מבצעים את הפעולות הבאות:
- בשדה Denied principals, מוסיפים חשבון משתמש אחד או יותר שרוצים למנוע ממנו להשתמש בהרשאות שצוינו. החשבון הראשי יכול להיות כל אחד מסוגי החשבונות שמופיעים במזהים של חשבונות משתמשים בכללי מדיניות הדחייה, למעט חשבונות משתמשים שהמזהים שלהם מתחילים ב-
deleted:. אופציונלי: בשדה Exception principals, מוסיפים את חשבונות המשתמשים שרוצים לאפשר להם להשתמש בהרשאות שצוינו, גם אם החשבונות האלה כלולים בקטע Denied principals. לדוגמה, אפשר להשתמש בשדה הזה כדי להחריג משתמשים ספציפיים ששייכים לקבוצה שנדחתה.
בקטעים Denied permissions, מוסיפים את ההרשאות שרוצים לדחות. ההרשאות חייבות להיות נתמכות בכללי מדיניות הדחייה.
במקרים מסוימים, אפשר גם להשתמש בקבוצות הרשאות כדי לדחות סטים של הרשאות. מידע נוסף זמין במאמר בנושא קבוצות הרשאות.
אופציונלי: מוסיפים הרשאות חריגות. הרשאות חריגות הן הרשאות שלא רוצים שהכלל הזה ידחה, גם אם הן כלולות ברשימת ההרשאות שנדחות. לדוגמה, אפשר להשתמש בשדה הזה כדי להחריג הרשאות ספציפיות בקבוצת הרשאות.
כדי להוסיף הרשאות חריגות, לוחצים על הרשאות חריגות, לוחצים על הוספת הרשאה נוספת ומזינים את ההרשאה בשדה הרשאה 1. ממשיכים להוסיף הרשאות עד שמוסיפים את כל ההרשאות שרוצים להחריג ממדיניות הדחייה.
אופציונלי: מוסיפים תנאי דחייה כדי לציין מתי חשבונות המשתמשים לא יכולים להשתמש בהרשאה. כדי להוסיף תנאי דחייה, לוחצים על הוספת תנאי דחייה ואז מגדירים את השדות הבאים:
- כותרת: אופציונלי. סיכום קצר של מטרת התנאי.
- תיאור: אופציונלי. תיאור ארוך יותר של התנאי.
ביטוי תנאי: אפשר להוסיף ביטוי תנאי באמצעות הכלי להגדרת תנאים או עורך התנאים. הכלי להגדרת תנאים הוא ממשק אינטראקטיבי שבו בוחרים את סוג התנאי, האופרטור ופרטים רלוונטיים אחרים של הביטוי. עורך התנאים הוא ממשק מבוסס-טקסט שבו מזינים ידנית ביטוי בתחביר Common Expression Language (CEL).
תנאי הדחייה חייבים להתבסס על תגי משאבים. אין תמיכה בפונקציות ובאופרטורים אחרים.
- בשדה Denied principals, מוסיפים חשבון משתמש אחד או יותר שרוצים למנוע ממנו להשתמש בהרשאות שצוינו. החשבון הראשי יכול להיות כל אחד מסוגי החשבונות שמופיעים במזהים של חשבונות משתמשים בכללי מדיניות הדחייה, למעט חשבונות משתמשים שהמזהים שלהם מתחילים ב-
לוחצים על יצירה.
gcloud
כדי ליצור מדיניות דחייה למשאב, קודם יוצרים קובץ JSON שמכיל את המדיניות. אפשר להשתמש בפורמט הבא בשביל מדיניות דחייה:
{ "displayName": "POLICY_NAME", "rules": [ { "denyRule": DENY_RULE_1 }, { "denyRule": DENY_RULE_2 }, { "denyRule": DENY_RULE_N } ] }
מציינים את הערכים הבאים:
POLICY_NAME: השם המוצג של מדיניות הדחייה.-
DENY_RULE_1,DENY_RULE_2,...DENY_RULE_N: כללי הדחייה במדיניות. כל כלל דחייה יכול להכיל את השדות הבאים:-
deniedPermissions: רשימה של הרשאות שחשבונות המשתמשים שצוינו לא יכולים להשתמש בהן. ההרשאות חייבות להיות בתמיכה של כללי מדיניות הדחייה.במקרים מסוימים, אפשר גם להשתמש בקבוצות הרשאות כדי לדחות סטים של הרשאות. מידע נוסף מופיע במאמר בנושא קבוצות הרשאות.
-
exceptionPermissions: רשימה של הרשאות שחשבונות המשתמשים שצוינו יכולים להשתמש בהן, גם אם ההרשאות האלה כלולות ב-deniedPermissions. לדוגמה, אפשר להשתמש בשדה הזה כדי להחריג הרשאות ספציפיות בקבוצת הרשאות. -
deniedPrincipals: רשימה של חשבונות משתמשים שלא יכולים להשתמש בהרשאות שצוינו. מידע על הפורמט של מזהי חשבונות משתמשים מופיע במאמר מזהים של חשבונות משתמשים בכללי מדיניות הדחייה. -
exceptionPrincipals: אופציונלי. רשימה של חשבונות משתמשים שיכולים להשתמש בהרשאות שצוינו, גם אם החשבונות האלה כלולים ב-deniedPrincipals. לדוגמה, ניתן להשתמש בשדה הזה כדי להחריג משתמשים ספציפיים ששייכים לקבוצה שנדחתה. מידע על הפורמט של מזהי חשבונות משתמשים מופיע במאמר מזהים של חשבונות משתמשים בכללי מדיניות הדחייה. -
denialCondition: אופציונלי. ביטוי תנאי שמציין את הזמן שבו חשבונות המשתמשים לא יכולים להשתמש בהרשאות. מכיל את השדות הבאים:-
expression: ביטוי תנאי שמשתמש בתחביר של Common Expression Language (CEL). הביטוי צריך לכלול את הפונקציות של CEL כדי להעריך תגי משאבים. אין תמיכה בפונקציות ובאופרטורים אחרים. -
title: אופציונלי. סיכום קצר של מטרת התנאי. -
description: אופציונלי. תיאור ארוך יותר של התנאי.
-
דוגמאות של כללי דחייה מופיעים במאמר תרחישים נפוצים לדוגמה.
-
לדוגמה, מדיניות הדחייה הבאה מכילה כלל דחייה אחד שדוחה הרשאה אחת ללוסיאן:
{
"displayName": "My deny policy.",
"rules": [
{
"denyRule": {
"deniedPrincipals": [
"principal://iam.googleapis.com/locations/global/workforcePools/example-pool/subject/lucian@example.com"
],
"deniedPermissions": [
"iam.googleapis.com/roles.create"
]
}
}
]
}
לאחר מכן, מריצים את הפקודה gcloud iam policies create:
gcloud iam policies create POLICY_ID \ --attachment-point=ATTACHMENT_POINT \ --kind=denypolicies \ --policy-file=POLICY_FILE
מציינים את הערכים הבאים:
-
POLICY_ID: המזהה של מדיניות הדחייה. -
ATTACHMENT_POINT: מזהה של המשאב שאליו מצורפת מדיניות הדחייה. אפשר לקרוא מידע על הפורמט של הערך הזה בקטע נקודת הצירוף. -
POLICY_FILE: הנתיב של קובץ ה-JSON שמכיל את מדיניות הדחייה.
כברירת מחדל, אם הפקודה הזו מצליחה, היא לא מדפיסה פלט. כדי להדפיס
תגובה מפורטת, מוסיפים את הדגל --format=json לפקודה.
לדוגמה, אפשר להשתמש בפקודה הבאה כדי ליצור מדיניות דחייה בשם my-deny-policy
לפרויקט my-project באמצעות הקובץ policy.json:
gcloud iam policies create my-deny-policy \
--attachment-point=cloudresourcemanager.googleapis.com/projects/my-project \
--kind=denypolicies \
--policy-file=policy.json
Terraform
במאמר פקודות בסיסיות ב-Terraform אפשר לקרוא הסבר על החלה של הגדרות Terraform ועל הסרה שלהן. למידע נוסף, ראו את מאמרי העזרה לספקים של Terraform.
Go
במאמר ספריות הלקוח של IAM מוסבר איך להתקין את ספריית הלקוח ולהשתמש בה ב-IAM. למידע נוסף, קראו את מאמרי העזרה של IAM Go API.
כדי לבצע אימות ב-IAM, צריך להגדיר את Application Default Credentials. מידע נוסף מופיע במאמר לפני שמתחילים.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
Java
במאמר ספריות הלקוח של IAM מוסבר איך להתקין את ספריית הלקוח ולהשתמש בה ב-IAM. למידע נוסף, קראו את מאמרי העזרה של IAM Java API.
כדי לבצע אימות ב-IAM, צריך להגדיר את Application Default Credentials. מידע נוסף מופיע במאמר לפני שמתחילים.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
Node.js
במאמר ספריות הלקוח של IAM מוסבר איך להתקין את ספריית הלקוח ולהשתמש בה ב-IAM. למידע נוסף, קראו את מאמרי העזרה של IAM Node.js API.
כדי לבצע אימות ב-IAM, צריך להגדיר את Application Default Credentials. מידע נוסף מופיע במאמר לפני שמתחילים.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
Python
במאמר ספריות הלקוח של IAM מוסבר איך להתקין את ספריית הלקוח ולהשתמש בה ב-IAM. למידע נוסף, קראו את מאמרי העזרה של IAM Python API.
כדי לבצע אימות ב-IAM, צריך להגדיר את Application Default Credentials. מידע נוסף מופיע במאמר לפני שמתחילים.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
REST
השיטה
policies.createPolicy
יוצרת מדיניות דחייה למשאב.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
ENCODED_ATTACHMENT_POINT: מזהה בקידוד כתובת URL של המשאב שאליו מצורפת מדיניות הדחייה. אפשר לקרוא מידע על הפורמט של הערך הזה בקטע נקודת הצירוף. POLICY_ID: מזהה של מדיניות הדחייה.POLICY_NAME: השם המוצג של מדיניות הדחייה.-
DENY_RULE_1,DENY_RULE_2,...DENY_RULE_N: כללי הדחייה במדיניות. כל כלל דחייה יכול להכיל את השדות הבאים:-
deniedPermissions: רשימה של הרשאות שחשבונות המשתמשים שצוינו לא יכולים להשתמש בהן. ההרשאות חייבות להיות בתמיכה של כללי מדיניות הדחייה.במקרים מסוימים, אפשר גם להשתמש בקבוצות הרשאות כדי לדחות סטים של הרשאות. מידע נוסף מופיע במאמר בנושא קבוצות הרשאות.
-
exceptionPermissions: רשימה של הרשאות שחשבונות המשתמשים שצוינו יכולים להשתמש בהן, גם אם ההרשאות האלה כלולות ב-deniedPermissions. לדוגמה, אפשר להשתמש בשדה הזה כדי להחריג הרשאות ספציפיות בקבוצת הרשאות. -
deniedPrincipals: רשימה של חשבונות משתמשים שלא יכולים להשתמש בהרשאות שצוינו. מידע על הפורמט של מזהי חשבונות משתמשים מופיע במאמר מזהים של חשבונות משתמשים בכללי מדיניות הדחייה. -
exceptionPrincipals: אופציונלי. רשימה של חשבונות משתמשים שיכולים להשתמש בהרשאות שצוינו, גם אם החשבונות האלה כלולים ב-deniedPrincipals. לדוגמה, ניתן להשתמש בשדה הזה כדי להחריג משתמשים ספציפיים ששייכים לקבוצה שנדחתה. מידע על הפורמט של מזהי חשבונות משתמשים מופיע במאמר מזהים של חשבונות משתמשים בכללי מדיניות הדחייה. -
denialCondition: אופציונלי. ביטוי תנאי שמציין את הזמן שבו חשבונות המשתמשים לא יכולים להשתמש בהרשאות. מכיל את השדות הבאים:-
expression: ביטוי תנאי שמשתמש בתחביר של Common Expression Language (CEL). הביטוי צריך לכלול את הפונקציות של CEL כדי להעריך תגי משאבים. אין תמיכה בפונקציות ובאופרטורים אחרים. -
title: אופציונלי. סיכום קצר של מטרת התנאי. -
description: אופציונלי. תיאור ארוך יותר של התנאי.
-
דוגמאות של כללי דחייה מופיעים במאמר תרחישים נפוצים לדוגמה.
-
שיטת ה-HTTP וכתובת ה-URL:
POST https://iam.googleapis.com/v2/policies/ENCODED_ATTACHMENT_POINT/denypolicies?policyId=POLICY_ID
תוכן בקשת JSON:
{
"displayName": "POLICY_NAME",
"rules": [
{
"denyRule": DENY_RULE_1
},
{
"denyRule": DENY_RULE_2
},
{
"denyRule": DENY_RULE_N
}
]
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אמורה להתקבל תגובת JSON שדומה לזו:
{
"name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1234567890123/denypolicies/my-policy/operations/89cb3e508bf1ff01",
"metadata": {
"@type": "type.googleapis.com/google.iam.v2.PolicyOperationMetadata",
"createTime": "2022-06-28T19:06:12.455151Z"
},
"response": {
"@type": "type.googleapis.com/google.iam.v2.Policy",
"name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1234567890123/denypolicies/my-policy",
"uid": "6665c437-a3b2-a018-6934-54dd16d3426e",
"kind": "DenyPolicy",
"displayName": "My deny policy.",
"etag": "MTc3NDU4MjM4OTY0MzU5MjQ5OTI=",
"createTime": "2022-06-28T19:06:12.455151Z",
"updateTime": "2022-06-28T22:26:21.968687Z"
"rules": [
{
"denyRule": {
"deniedPrincipals": [
"principal://iam.googleapis.com/locations/global/workforcePools/example-pool/subject/lucian@example.com"
],
"deniedPermissions": [
"iam.googleapis.com/roles.create"
]
}
}
]
}
}
התגובה מזהה פעולה ממושכת. אפשר לעקוב אחר הסטטוס של פעולה ממושכת כדי לדעת מתי היא מסתיימת. אפשר למצוא פרטים נוספים בקטע בדיקת הסטטוס של פעולה ממושכת שבדף הזה.
הצגה של רשימת הכללים של מדיניות הדחייה
משאב יכול לכלול כמה כללי מדיניות דחייה. אפשר לכלול ברשימה את כל כללי מדיניות הדחייה שמצורפים למשאב, ואז להציג כל מדיניות בנפרד כדי לראות את כללי הדחייה בכל מדיניות.
המסוף
במסוף Cloud de Confiance , עוברים לכרטיסייה Deny בדף IAM.
בוחרים פרויקט, תיקייה או ארגון.
במסוף Cloud de Confiance מפורטות כל מדיניות הדחייה שחלה על הפרויקט, התיקייה או הארגון. זה כולל כללי מדיניות דחייה שהועברו בירושה ממשאבים אחרים. מידע נוסף על ירושה של מדיניות דחייה
gcloud
כדי לכלול ברשימה את כללי מדיניות הדחייה למשאב, מריצים
את הפקודה gcloud iam policies list:
gcloud iam policies list \ --attachment-point=ATTACHMENT_POINT \ --kind=denypolicies \ --format=json
מציינים את הערך הבא:
-
ATTACHMENT_POINT: מזהה של המשאב שאליו מצורפת מדיניות הדחייה. אפשר לקרוא מידע על הפורמט של הערך הזה בקטע נקודת הצירוף.
לדוגמה, הפקודה הבאה מציגה ברשימה כללי מדיניות דחייה שמצורפים
לארגון שהמזהה המספרי שלו הוא 123456789012:
gcloud iam policies list \
--attachment-point=cloudresourcemanager.googleapis.com/organizations/123456789012 \
--kind=denypolicies \
--format=json
Go
במאמר ספריות הלקוח של IAM מוסבר איך להתקין את ספריית הלקוח ולהשתמש בה ב-IAM. למידע נוסף, קראו את מאמרי העזרה של IAM Go API.
כדי לבצע אימות ב-IAM, צריך להגדיר את Application Default Credentials. מידע נוסף מופיע במאמר לפני שמתחילים.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
Java
במאמר ספריות הלקוח של IAM מוסבר איך להתקין את ספריית הלקוח ולהשתמש בה ב-IAM. למידע נוסף, קראו את מאמרי העזרה של IAM Java API.
כדי לבצע אימות ב-IAM, צריך להגדיר את Application Default Credentials. מידע נוסף מופיע במאמר לפני שמתחילים.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
Node.js
במאמר ספריות הלקוח של IAM מוסבר איך להתקין את ספריית הלקוח ולהשתמש בה ב-IAM. למידע נוסף, קראו את מאמרי העזרה של IAM Node.js API.
כדי לבצע אימות ב-IAM, צריך להגדיר את Application Default Credentials. מידע נוסף מופיע במאמר לפני שמתחילים.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
Python
במאמר ספריות הלקוח של IAM מוסבר איך להתקין את ספריית הלקוח ולהשתמש בה ב-IAM. למידע נוסף, קראו את מאמרי העזרה של IAM Python API.
כדי לבצע אימות ב-IAM, צריך להגדיר את Application Default Credentials. מידע נוסף מופיע במאמר לפני שמתחילים.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
REST
השיטה
policies.listPolicies
מציגה ברשימה את כללי מדיניות הדחייה של משאב.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
ENCODED_ATTACHMENT_POINT: מזהה בקידוד כתובת URL של המשאב שאליו מצורפת מדיניות הדחייה. אפשר לקרוא מידע על הפורמט של הערך הזה בקטע נקודת הצירוף.
ה-method של ה-HTTP וכתובת ה-URL:
GET https://iam.googleapis.com/v2/policies/ENCODED_ATTACHMENT_POINT/denypolicies
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"policies": [
{
"name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1067607927478/denypolicies/test-policy",
"uid": "6665c437-a3b2-a018-6934-54dd16d3426e",
"kind": "DenyPolicy",
"displayName": "My deny policy.",
"createTime": "2022-06-28T19:06:12.455151Z",
"updateTime": "2022-06-28T22:26:21.968687Z"
},
{
"name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1067607927478/denypolicies/test-policy-2",
"uid": "8465d710-ea20-0a08-d92c-b2a3ebf766ab",
"kind": "DenyPolicy",
"displayName": "My second deny policy.",
"createTime": "2022-06-05T19:21:53.595455Z",
"updateTime": "2022-06-05T19:21:53.595455Z"
},
{
"name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1067607927478/denypolicies/test-policy-3",
"uid": "ee9f7c2f-7e8c-b05c-d4e5-e03bfb2954e0",
"kind": "DenyPolicy",
"displayName": "My third deny policy.",
"createTime": "2022-06-05T19:22:26.770543Z",
"updateTime": "2022-06-05T19:22:26.770543Z"
}
]
}
הצגת מדיניות הדחייה
אפשר להציג את מדיניות הדחייה כדי לראות את כללי הדחייה שלה. הם כוללים את ההרשאות שנדחו ואת חשבונות המשתמשים שלא יכולים להשתמש בהרשאות האלה.
המסוף
במסוף Cloud de Confiance , עוברים לכרטיסייה Deny בדף IAM.
בוחרים פרויקט, תיקייה או ארגון.
בעמודה מזהה המדיניות, לוחצים על המזהה של המדיניות שרוצים לראות.
במסוף Cloud de Confiance מוצגים הפרטים של מדיניות הדחייה, כולל מזהה המדיניות, המועד שבו נוצרה המדיניות וכללי הדחייה במדיניות הדחייה.
gcloud
כדי לקבל את מדיניות הדחייה של משאב, מריצים את הפקודה
gcloud iam policies get:
gcloud iam policies get POLICY_ID \ --attachment-point=ATTACHMENT_POINT \ --kind=denypolicies \ --format=json
מציינים את הערכים הבאים:
-
POLICY_ID: המזהה של מדיניות הדחייה. -
ATTACHMENT_POINT: מזהה של המשאב שאליו מצורפת מדיניות הדחייה. אפשר לקרוא מידע על הפורמט של הערך הזה בקטע נקודת הצירוף.
לדוגמה, הפקודה הבאה מקבלת את מדיניות הדחייה my-deny-policy
של הפרויקט my-project ושומרת אותה בקובץ policy.json.
gcloud iam policies get my-deny-policy \
--attachment-point=cloudresourcemanager.googleapis.com/projects/my-project \
--kind=denypolicies \
--format=json \
> ./policy.json
Go
במאמר ספריות הלקוח של IAM מוסבר איך להתקין את ספריית הלקוח ולהשתמש בה ב-IAM. למידע נוסף, קראו את מאמרי העזרה של IAM Go API.
כדי לבצע אימות ב-IAM, צריך להגדיר את Application Default Credentials. מידע נוסף מופיע במאמר לפני שמתחילים.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
Java
במאמר ספריות הלקוח של IAM מוסבר איך להתקין את ספריית הלקוח ולהשתמש בה ב-IAM. למידע נוסף, קראו את מאמרי העזרה של IAM Java API.
כדי לבצע אימות ב-IAM, צריך להגדיר את Application Default Credentials. מידע נוסף מופיע במאמר לפני שמתחילים.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
Node.js
במאמר ספריות הלקוח של IAM מוסבר איך להתקין את ספריית הלקוח ולהשתמש בה ב-IAM. למידע נוסף, קראו את מאמרי העזרה של IAM Node.js API.
כדי לבצע אימות ב-IAM, צריך להגדיר את Application Default Credentials. מידע נוסף מופיע במאמר לפני שמתחילים.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
Python
במאמר ספריות הלקוח של IAM מוסבר איך להתקין את ספריית הלקוח ולהשתמש בה ב-IAM. למידע נוסף, קראו את מאמרי העזרה של IAM Python API.
כדי לבצע אימות ב-IAM, צריך להגדיר את Application Default Credentials. מידע נוסף מופיע במאמר לפני שמתחילים.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
REST
השיטה
policies.get
מקבלת מדיניות דחייה למשאב.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
ENCODED_ATTACHMENT_POINT: מזהה בקידוד כתובת URL של המשאב שאליו מצורפת מדיניות הדחייה. אפשר לקרוא מידע על הפורמט של הערך הזה בקטע נקודת הצירוף. POLICY_ID: מזהה של מדיניות הדחייה.
שיטת ה-HTTP וכתובת ה-URL:
GET https://iam.googleapis.com/v2/policies/ENCODED_ATTACHMENT_POINT/denypolicies/POLICY_ID
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1234567890123/denypolicies/my-policy",
"uid": "6665c437-a3b2-a018-6934-54dd16d3426e",
"kind": "DenyPolicy",
"displayName": "My deny policy.",
"etag": "MTc3NDU4MjM4OTY0MzU5MjQ5OTI=",
"createTime": "2022-06-05T19:22:26.770543Z",
"updateTime": "2022-06-05T19:22:26.770543Z",
"rules": [
{
"denyRule": {
"deniedPrincipals": [
"principal://iam.googleapis.com/locations/global/workforcePools/example-pool/subject/lucian@example.com"
],
"deniedPermissions": [
"iam.googleapis.com/roles.create"
]
}
}
]
}
עדכון של מדיניות הדחייה
אחרי יצירת מדיניות דחייה, אפשר לעדכן את כללי הדחייה שהיא כוללת ואת השם המוצג שלה.
אפשר לעדכן מדיניות דחייה באמצעות מסוף Cloud de Confiance או באמצעות אחת מהשיטות הבאות:
- ה-CLI של gcloud
- API בארכיטקטורת REST
- ספריות הלקוח של IAM
עדכון של מדיניות הדחייה באמצעות Cloud de Confiance המסוף
במסוף Cloud de Confiance , עוברים לכרטיסייה Deny בדף IAM.
בוחרים פרויקט, תיקייה או ארגון.
בעמודה מזהה המדיניות, לוחצים על מזהה המדיניות שרוצים לערוך.
לוחצים על עריכה.
מעדכנים את מדיניות הדחייה:
- כדי לשנות את השם המוצג של המדיניות, עורכים את השדה Display name.
- כדי לערוך כלל דחייה קיים, לוחצים על כלל הדחייה ואז משנים את חשבונות המשתמש העיקריים של הכלל, חשבונות המשתמש העיקריים של החריג, ההרשאות שנדחו, הרשאות החריג או תנאי הדחייה.
- כדי להסיר כלל דחייה, מוצאים את כלל הדחייה שרוצים למחוק ולוחצים על מחיקה באותה שורה.
- כדי להוסיף כלל דחייה, לוחצים על הוספת כלל דחייה ויוצרים כלל דחייה כמו שיוצרים מדיניות דחייה.
כשמסיימים לעדכן את מדיניות הדחייה, לוחצים על שמירה.
עדכון של מדיניות הדחייה באופן פרוגרמטי
כדי לעדכן מדיניות דחייה באמצעות ה-CLI של gcloud, ה-API ל-REST או ספריות הלקוח של IAM, צריך להשתמש בתבנית קריאה-תיקון-כתיבה:
- קוראים את הגרסה הנוכחית של המדיניות.
- מתקנים את המידע במדיניות בהתאם לצורך.
- כותבים את המדיניות העדכנית.
קריאת מדיניות הדחייה
gcloud
כדי לקבל את מדיניות הדחייה של משאב, מריצים את הפקודה
gcloud iam policies get:
gcloud iam policies get POLICY_ID \ --attachment-point=ATTACHMENT_POINT \ --kind=denypolicies \ --format=json
מציינים את הערכים הבאים:
-
POLICY_ID: המזהה של מדיניות הדחייה. -
ATTACHMENT_POINT: מזהה של המשאב שאליו מצורפת מדיניות הדחייה. אפשר לקרוא מידע על הפורמט של הערך הזה בקטע נקודת הצירוף.
לדוגמה, הפקודה הבאה מקבלת את מדיניות הדחייה my-deny-policy
של הפרויקט my-project ושומרת אותה בקובץ policy.json.
gcloud iam policies get my-deny-policy \
--attachment-point=cloudresourcemanager.googleapis.com/projects/my-project \
--kind=denypolicies \
--format=json \
> ./policy.json
Go
במאמר ספריות הלקוח של IAM מוסבר איך להתקין את ספריית הלקוח ולהשתמש בה ב-IAM. למידע נוסף, קראו את מאמרי העזרה של IAM Go API.
כדי לבצע אימות ב-IAM, צריך להגדיר את Application Default Credentials. מידע נוסף מופיע במאמר לפני שמתחילים.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
Java
במאמר ספריות הלקוח של IAM מוסבר איך להתקין את ספריית הלקוח ולהשתמש בה ב-IAM. למידע נוסף, קראו את מאמרי העזרה של IAM Java API.
כדי לבצע אימות ב-IAM, צריך להגדיר את Application Default Credentials. מידע נוסף מופיע במאמר לפני שמתחילים.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
Node.js
במאמר ספריות הלקוח של IAM מוסבר איך להתקין את ספריית הלקוח ולהשתמש בה ב-IAM. למידע נוסף, קראו את מאמרי העזרה של IAM Node.js API.
כדי לבצע אימות ב-IAM, צריך להגדיר את Application Default Credentials. מידע נוסף מופיע במאמר לפני שמתחילים.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
Python
במאמר ספריות הלקוח של IAM מוסבר איך להתקין את ספריית הלקוח ולהשתמש בה ב-IAM. למידע נוסף, קראו את מאמרי העזרה של IAM Python API.
כדי לבצע אימות ב-IAM, צריך להגדיר את Application Default Credentials. מידע נוסף מופיע במאמר לפני שמתחילים.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
REST
השיטה
policies.get
מקבלת מדיניות דחייה למשאב.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
ENCODED_ATTACHMENT_POINT: מזהה בקידוד כתובת URL של המשאב שאליו מצורפת מדיניות הדחייה. אפשר לקרוא מידע על הפורמט של הערך הזה בקטע נקודת הצירוף. POLICY_ID: מזהה של מדיניות הדחייה.
שיטת ה-HTTP וכתובת ה-URL:
GET https://iam.googleapis.com/v2/policies/ENCODED_ATTACHMENT_POINT/denypolicies/POLICY_ID
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1234567890123/denypolicies/my-policy",
"uid": "6665c437-a3b2-a018-6934-54dd16d3426e",
"kind": "DenyPolicy",
"displayName": "My deny policy.",
"etag": "MTc3NDU4MjM4OTY0MzU5MjQ5OTI=",
"createTime": "2022-06-05T19:22:26.770543Z",
"updateTime": "2022-06-05T19:22:26.770543Z",
"rules": [
{
"denyRule": {
"deniedPrincipals": [
"principal://iam.googleapis.com/locations/global/workforcePools/example-pool/subject/lucian@example.com"
],
"deniedPermissions": [
"iam.googleapis.com/roles.create"
]
}
}
]
}
תיקון מדיניות הדחייה
כדי לתקן את מדיניות הדחייה, צריך לערוך שינויים בעותק של המדיניות שקראת בעבר מ-IAM. אפשר לעדכן את השם המוצג, או להוסיף, לשנות או להסיר כללי דחייה. השינויים לא ייכנסו לתוקף עד לכתיבת המדיניות העדכנית.
לדוגמה, אפשר להוסיף הרשאה לכלל דחייה שכבר קיים:
{ "name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1234567890123/denypolicies/my-policy", "uid": "6665c437-a3b2-a018-6934-54dd16d3426e", "kind": "DenyPolicy", "displayName": "My deny policy.", "etag": "MTc3NDU4MjM4OTY0MzU5MjQ5OTI=", "createTime": "2021-10-05T19:22:26.770543Z", "updateTime": "2021-10-05T19:22:26.770543Z", "rules": [ { "denyRule": { "deniedPrincipals": [ "principal://iam.googleapis.com/locations/global/workforcePools/example-pool/subject/lucian@example.com" ], "deniedPermissions": [ "iam.googleapis.com/roles.create", "iam.googleapis.com/roles.delete" ] } } ] }
כתיבה של מדיניות הדחייה העדכנית
אחרי התיקון של מדיניות הדחייה באופן מקומי, צריך לכתוב את מדיניות הדחייה העדכנית ב-IAM.
כל מדיניות דחייה מכילה שדה etag שמזהה את גרסת המדיניות.
השדה etag משתנה בכל פעם שמעדכנים את המדיניות. כשכותבים את המדיניות
העדכנית, הערך של etag בבקשה צריך להיות זהה לערך בשדה etagהנוכחי ששמור
ב-IAM. אם הערכים יהיו שונים, הבקשה תיכשל. התכונה הזו
עוזרת למנוע משינויים שקורים בו זמנית להחליף אחד את השני.
gcloud
כדי לעדכן את מדיניות הדחייה של משאב, מריצים את הפקודה
gcloud iam policies update:
gcloud iam policies update POLICY_ID \ --attachment-point=ATTACHMENT_POINT \ --kind=denypolicies \ --policy-file=POLICY_FILE
מציינים את הערכים הבאים:
-
POLICY_ID: המזהה של מדיניות הדחייה. -
ATTACHMENT_POINT: מזהה של המשאב שאליו מצורפת מדיניות הדחייה. אפשר לקרוא מידע על הפורמט של הערך הזה בקטע נקודת הצירוף. -
POLICY_FILE: הנתיב של קובץ ה-JSON שמכיל את מדיניות הדחייה.
כברירת מחדל, אם הפקודה הזו מצליחה, היא לא מדפיסה פלט. כדי להדפיס
תגובה מפורטת, מוסיפים את הדגל --format=json לפקודה.
לדוגמה, אפשר להשתמש בפקודה הבאה כדי לעדכן מדיניות דחייה בשם my-deny-policy
של הפרויקט my-project, באמצעות הקובץ policy.json:
gcloud iam policies update my-deny-policy \
--attachment-point=cloudresourcemanager.googleapis.com/projects/my-project \
--kind=denypolicies \
--policy-file=policy.json
Go
במאמר ספריות הלקוח של IAM מוסבר איך להתקין את ספריית הלקוח ולהשתמש בה ב-IAM. למידע נוסף, קראו את מאמרי העזרה של IAM Go API.
כדי לבצע אימות ב-IAM, צריך להגדיר את Application Default Credentials. מידע נוסף מופיע במאמר לפני שמתחילים.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
Java
במאמר ספריות הלקוח של IAM מוסבר איך להתקין את ספריית הלקוח ולהשתמש בה ב-IAM. למידע נוסף, קראו את מאמרי העזרה של IAM Java API.
כדי לבצע אימות ב-IAM, צריך להגדיר את Application Default Credentials. מידע נוסף מופיע במאמר לפני שמתחילים.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
Node.js
במאמר ספריות הלקוח של IAM מוסבר איך להתקין את ספריית הלקוח ולהשתמש בה ב-IAM. למידע נוסף, קראו את מאמרי העזרה של IAM Node.js API.
כדי לבצע אימות ב-IAM, צריך להגדיר את Application Default Credentials. מידע נוסף מופיע במאמר לפני שמתחילים.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
Python
במאמר ספריות הלקוח של IAM מוסבר איך להתקין את ספריית הלקוח ולהשתמש בה ב-IAM. למידע נוסף, קראו את מאמרי העזרה של IAM Python API.
כדי לבצע אימות ב-IAM, צריך להגדיר את Application Default Credentials. מידע נוסף מופיע במאמר לפני שמתחילים.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
REST
השיטה
policies.update
מעדכנת מדיניות דחייה.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
ENCODED_ATTACHMENT_POINT: מזהה בקידוד כתובת URL של המשאב שאליו מצורפת מדיניות הדחייה. אפשר לקרוא מידע על הפורמט של הערך הזה בקטע נקודת הצירוף. POLICY_ID: מזהה של מדיניות הדחייה.-
POLICY: מדיניות הדחייה העדכנית.לדוגמה, כדי להוסיף הרשאה למדיניות שצוינה בשלב הקודם, מחליפים את
POLICYבערך הבא:{ "name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1234567890123/denypolicies/my-policy", "uid": "6665c437-a3b2-a018-6934-54dd16d3426e", "kind": "DenyPolicy", "displayName": "My deny policy.", "etag": "MTc3NDU4MjM4OTY0MzU5MjQ5OTI=", "createTime": "2022-06-05T19:22:26.770543Z", "updateTime": "2022-06-05T19:22:26.770543Z", "rules": [ { "denyRule": { "deniedPrincipals": [ "principal://iam.googleapis.com/locations/global/workforcePools/example-pool/subject/lucian@example.com" ], "deniedPermissions": [ "iam.googleapis.com/roles.create", "iam.googleapis.com/roles.delete" ] } } ] }
שיטת ה-HTTP וכתובת ה-URL:
PUT https://iam.googleapis.com/v2/policies/ENCODED_ATTACHMENT_POINT/denypolicies/POLICY_ID
תוכן בקשת JSON:
POLICY
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אמורה להתקבל תגובת JSON שדומה לזו:
{
"name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1234567890123/denypolicies/my-policy/operations/8b2d0ab2daf1ff01",
"metadata": {
"@type": "type.googleapis.com/google.iam.v2.PolicyOperationMetadata",
"createTime": "2021-10-05T22:26:21.968687Z"
},
"response": {
"@type": "type.googleapis.com/google.iam.v2.Policy",
"name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1234567890123/denypolicies/my-policy",
"uid": "6665c437-a3b2-a018-6934-54dd16d3426e",
"kind": "DenyPolicy",
"displayName": "My deny policy.",
"etag": "MTgxNTIxNDE3NTYxNjQxODYxMTI=",
"createTime": "2022-06-05T19:22:26.770543Z",
"updateTime": "2022-06-05T22:26:21.968687Z",
"rules": [
{
"denyRule": {
"deniedPrincipals": [
"principal://iam.googleapis.com/locations/global/workforcePools/example-pool/subject/lucian@example.com"
],
"deniedPermissions": [
"iam.googleapis.com/roles.create",
"iam.googleapis.com/roles.delete"
]
}
}
]
}
}
התגובה מזהה פעולה ממושכת. אפשר לעקוב אחר הסטטוס של פעולה ממושכת כדי לדעת מתי היא מסתיימת. אפשר למצוא פרטים נוספים בקטע בדיקת הסטטוס של פעולה ממושכת שבדף הזה.
מחיקת מדיניות דחייה
אם לא רוצים יותר לאכוף את הכללים במדיניות דחייה, אפשר למחוק אותה.
לחלופין, אפשר לציין את השדה etag של גרסת המדיניות שרוצים
למחוק. אם מציינים את הערך של השדה etag, הוא צריך להתאים לערך בשדה etag הנוכחי ששמור
ב-IAM. אם הערכים יהיו שונים, הבקשה תיכשל. כך תוכלו לוודא שאתם מוחקים את המדיניות שרציתם, ולא גרסה עדכנית של המדיניות הזו.
אם משמיטים את השדה etag מהבקשה, תתבצע מחיקה מוחלטת של המדיניות
מ-IAM.
המסוף
במסוף Cloud de Confiance , עוברים לכרטיסייה Deny בדף IAM.
בוחרים פרויקט, תיקייה או ארגון.
בעמודה מזהה המדיניות, לוחצים על המזהה של המדיניות שרוצים למחוק.
לוחצים על מחיקה. בתיבת הדו-שיח לאישור, לוחצים על אישור.
gcloud
כדי למחוק מדיניות דחייה ממשאב, מריצים את הפקודה
gcloud iam policies delete:
gcloud iam policies delete POLICY_ID \ --attachment-point=ATTACHMENT_POINT \ --kind=denypolicies
מציינים את הערכים הבאים:
-
POLICY_ID: המזהה של מדיניות הדחייה. -
ATTACHMENT_POINT: מזהה של המשאב שאליו מצורפת מדיניות הדחייה. אפשר לקרוא מידע על הפורמט של הערך הזה בקטע נקודת הצירוף.
אפשר גם להוסיף את הדגל --etag=ETAG. מחליפים
את הערך בשדה ETAG בערך שבשדה etag הנוכחי של מדיניות הדחייה.
כברירת מחדל, אם הפקודה הזו מצליחה, היא לא מדפיסה פלט. כדי להדפיס
תגובה מפורטת, מוסיפים את הדגל --format=json לפקודה.
לדוגמה, באמצעות הפקודה הבאה אפשר למחוק מדיניות דחייה בשם my-deny-policy
מהפרויקט my-project:
gcloud iam policies delete my-deny-policy \
--attachment-point=cloudresourcemanager.googleapis.com/projects/my-project \
--kind=denypolicies
Go
במאמר ספריות הלקוח של IAM מוסבר איך להתקין את ספריית הלקוח ולהשתמש בה ב-IAM. למידע נוסף, קראו את מאמרי העזרה של IAM Go API.
כדי לבצע אימות ב-IAM, צריך להגדיר את Application Default Credentials. מידע נוסף מופיע במאמר לפני שמתחילים.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
Java
במאמר ספריות הלקוח של IAM מוסבר איך להתקין את ספריית הלקוח ולהשתמש בה ב-IAM. למידע נוסף, קראו את מאמרי העזרה של IAM Java API.
כדי לבצע אימות ב-IAM, צריך להגדיר את Application Default Credentials. מידע נוסף מופיע במאמר לפני שמתחילים.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
Node.js
במאמר ספריות הלקוח של IAM מוסבר איך להתקין את ספריית הלקוח ולהשתמש בה ב-IAM. למידע נוסף, קראו את מאמרי העזרה של IAM Node.js API.
כדי לבצע אימות ב-IAM, צריך להגדיר את Application Default Credentials. מידע נוסף מופיע במאמר לפני שמתחילים.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
Python
במאמר ספריות הלקוח של IAM מוסבר איך להתקין את ספריית הלקוח ולהשתמש בה ב-IAM. למידע נוסף, קראו את מאמרי העזרה של IAM Python API.
כדי לבצע אימות ב-IAM, צריך להגדיר את Application Default Credentials. מידע נוסף מופיע במאמר לפני שמתחילים.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
REST
השיטה
policies.delete
מוחקת מדיניות דחייה ממשאב.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
ENCODED_ATTACHMENT_POINT: מזהה בקידוד כתובת URL של המשאב שאליו מצורפת מדיניות הדחייה. אפשר לקרוא מידע על הפורמט של הערך הזה בקטע נקודת הצירוף. POLICY_ID: מזהה של מדיניות הדחייה.-
ETAG: אופציונלי. מזהה של גרסת המדיניות. אם הוא קיים, הערך הזה צריך להתאים לערך הנוכחי בשדהetagשל המדיניות.
שיטת ה-HTTP וכתובת ה-URL:
DELETE https://iam.googleapis.com/v2/policies/ENCODED_ATTACHMENT_POINT/denypolicies/POLICY_ID?etag=ETAG
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אמורה להתקבל תגובת JSON שדומה לזו:
{
"name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1234567890123/denypolicies/my-policy/operations/8223fe308bf1ff01",
"metadata": {
"@type": "type.googleapis.com/google.iam.v2.PolicyOperationMetadata",
"createTime": "2021-10-05T19:45:00.133311Z"
},
"response": {
"@type": "type.googleapis.com/google.iam.v2.Policy",
"name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1234567890123/denypolicies/my-policy",
"kind": "DenyPolicy",
"displayName": "My deny policy.",
"etag": "MTc3NDU4MjM4OTY0MzU5MjQ5OTI=",
"createTime": "2022-06-28T19:06:12.455151Z",
"updateTime": "2022-07-05T19:45:00.133311Z",
"deleteTime": "2022-07-05T19:45:00.133311Z",
"rules": [
{
"denyRule": {
"deniedPrincipals": [
"principal://iam.googleapis.com/locations/global/workforcePools/example-pool/subject/lucian@example.com"
],
"deniedPermissions": [
"iam.googleapis.com/roles.create"
]
}
}
]
}
}
התגובה מזהה פעולה ממושכת. אפשר לעקוב אחר הסטטוס של פעולה ממושכת כדי לדעת מתי היא מסתיימת. אפשר למצוא פרטים נוספים בקטע בדיקת הסטטוס של פעולה ממושכת שבדף הזה.
בדיקת הסטטוס של פעולה ממושכת
כשמשתמשים ב-API בארכיטקטורת REST או בספריות הלקוח, כל שיטה שמשנה מדיניות דחייה מחזירה פעולה ממושכת או LRO. הפעולה הממושכת עוקבת אחרי הסטטוס של הבקשה ומציינת אם השינוי במדיניות מושלם.
Go
בדוגמאות הקוד שבדף הזה אפשר ללמוד איך לחכות שפעולה ממושכת תסתיים, ואז לגשת לתוצאה שלה.
Java
בדוגמאות הקוד שבדף הזה אפשר ללמוד איך לחכות שפעולה ממושכת תסתיים, ואז לגשת לתוצאה שלה.
Node.js
בדוגמאות הקוד שבדף הזה אפשר ללמוד איך לחכות שפעולה ממושכת תסתיים, ואז לגשת לתוצאה שלה.
Python
בדוגמאות הקוד שבדף הזה אפשר ללמוד איך לחכות שפעולה ממושכת תסתיים, ואז לגשת לתוצאה שלה.
REST
השיטה
policies.operations.get
מחזירה את הסטטוס של פעולה ממושכת.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
ENCODED_ATTACHMENT_POINT: מזהה בקידוד כתובת URL של המשאב שאליו מצורפת מדיניות הדחייה. אפשר לקרוא מידע על הפורמט של הערך הזה בקטע נקודת הצירוף. -
OPERATION_ID: המזהה של הפעולה. המזהה הזה מופיע בתגובה לבקשה המקורית, כחלק משם הפעולה. צריך להשתמש בערך ההקסדצימלי בסוף שם הפעולה. לדוגמה:89cb3e508bf1ff01.
שיטת ה-HTTP וכתובת ה-URL:
GET https://iam.googleapis.com/v2/policies/ENCODED_ATTACHMENT_POINT/operations/OPERATION_ID
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אמורה להתקבל תגובת JSON שדומה לזו:
{
"name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1234567890123/denypolicies/my-policy/operations/89cb3e508bf1ff01",
"done": true
}
אם השדה done של הפעולה לא מופיע, אפשר לבצע את הפעולה שוב ושוב
כדי להמשיך לעקוב אחר הסטטוס שלה. צריך להשתמש
בהשהיה מעריכית (exponential backoff) קטועה לפני ניסיון חוזר כדי ליצור עיכוב בין
כל בקשה. כשהערך של השדה done מוגדר בתור true, הפעולה הושלמה
ואפשר להפסיק לבצע אותה.
המאמרים הבאים
- מזהים את ההרשאות שנתמכות בכללי מדיניות הדחייה.
- מוצאים את הפורמט של מזהים של חשבונות משתמשים בכללי מדיניות הדחייה.
- לומדים איך לפתור בעיות בנושא הגישה באמצעות כללי מדיניות הדחייה.
- מקבלים מידע נוסף על דחיית הגישה לחשבונות המשתמשים.