בדף הזה מוסבר איך לנתח מדיניות של ניהול זהויות והרשאות גישה (IAM) באופן אסינכרוני ולכתוב את התוצאות ב-Cloud Storage. הפונקציונליות דומה ברובה לניתוח של מדיניות IAM, אבל תוצאת הניתוח נכתבת בקטגוריה של Cloud Storage.
לפני שמתחילים
מפעילים את Cloud Asset API.
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאה serviceusage.services.enable. איך מקצים תפקידים
צריך להפעיל את ה-API בפרויקט שבו ישמש לשליחת השאילתה. המשאב הזה לא חייב להיות זהה למשאב שאליו מצומצמת השאילתה.
תפקידים והרשאות נדרשים
כדי להריץ ניתוח מדיניות ולייצא את התוצאות ל-Cloud Storage, נדרשים התפקידים וההרשאות הבאים:
התפקידים שצריך ב-IAM
כדי לקבל את ההרשאות שדרושות לניתוח מדיניות ולייצוא התוצאות ל-BigQuery, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים בפרויקט, בתיקייה או בארגון שבהם תגדירו את היקף השאילתה:
- צפייה במאגר משאבי הענן (
roles/cloudasset.viewer) - יצירת אובייקטים באחסון (
roles/storage.objectCreator) -
כדי לנתח מדיניות עם תפקידי IAM בהתאמה אישית:
צפייה בתפקיד (
roles/iam.roleViewer) -
כדי להשתמש ב-Google Cloud CLI כדי לנתח מדיניות:
Service Usage Consumer (
roles/serviceusage.serviceUsageConsumer)
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
התפקידים המוגדרים מראש האלה כוללים את ההרשאות שנדרשות לניתוח מדיניות ולייצוא התוצאות ל-BigQuery. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
כדי לנתח מדיניות ולייצא את התוצאות ל-BigQuery, נדרשות ההרשאות הבאות:
-
cloudasset.assets.analyzeIamPolicy -
cloudasset.assets.searchAllResources -
cloudasset.assets.searchAllIamPolicies -
storage.objects.create -
כדי לנתח מדיניות עם תפקידים בהתאמה אישית ב-IAM:
iam.roles.get -
כדי להשתמש ב-Google Cloud CLI כדי לנתח מדיניות:
serviceusage.services.use
יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
ההרשאות הנדרשות ב-Google Workspace
כדי לראות אם לגורם יש תפקידים או הרשאות מסוימים כתוצאה מהחברות שלו בקבוצה ב-Google Workspace, צריך את ההרשאה groups.readGoogle Workspace. ההרשאה הזו כלולה בתפקיד אדמין עם גישת קריאה לקבוצות, ובתפקידים עם הרשאות נרחבות יותר כמו אדמין של קבוצות או סופר-אדמין. מידע נוסף זמין במאמר בנושא הקצאה של תפקידי אדמין ספציפיים.
ניתוח מדיניות וייצוא תוצאות
השיטה
AnalyzeIamPolicyLongrunning מאפשרת לשלוח בקשת ניתוח ולקבל תוצאות בקטגוריה של Cloud Storage שצוינה.
gcloud
לפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:
-
RESOURCE_TYPE: סוג המשאב שרוצים להגביל את החיפוש אליו. המערכת תנתח רק את מדיניות ההרשאות של IAM שמצורפת למשאב הזה ולצאצאים שלו. אפשר להשתמש בערךproject,folderאוorganization. -
RESOURCE_ID: המזהה שלGoogle Cloud הפרויקט, התיקייה או הארגון שרוצים להגביל את החיפוש אליהם. רק מדיניות הרשאות של IAM שמצורפת למשאב הזה ולצאצאים שלו תנותח. מזהי פרויקטים הם מחרוזות אלפאנומריות, כמוmy-project. מזהי תיקיות וארגונים מכילים רק ספרות, למשל123456789012. -
PRINCIPAL: החשבון הראשי שרוצים לנתח את הגישה שלו, בפורמטPRINCIPAL_TYPE:ID. לדוגמה,user:my-user@example.com. רשימה מלאה של סוגי החשבונות הראשיים מופיעה במאמר מזהים של חשבונות משתמשים. -
PERMISSIONS: רשימה מופרדת בפסיקים של ההרשאות שרוצים לבדוק, לדוגמה:compute.instances.get,compute.instances.start. אם מפרטים כמה הרשאות, כלי הניתוח למדיניות יבדוק אם יש הרשאה כלשהי מהרשימה. -
STORAGE_OBJECT_URI: המזהה הייחודי של משאב אובייקט Cloud Storage שאליו רוצים לייצא את תוצאות הניתוח, בפורמטgs://BUCKET_NAME/OBJECT_NAME– לדוגמה,gs://my-bucket/analysis.json.
מריצים את הפקודה gcloud asset analyze-iam-policy-longrunning:
Linux, macOS או Cloud Shell
gcloud asset analyze-iam-policy-longrunning --RESOURCE_TYPE=RESOURCE_ID \ --full-resource-name=FULL_RESOURCE_NAME \ --identity=PRINCIPAL \ --permissions='PERMISSIONS' \ --gcs-output-path=STORAGE_OBJECT_URI
Windows (PowerShell)
gcloud asset analyze-iam-policy-longrunning --RESOURCE_TYPE=RESOURCE_ID ` --full-resource-name=FULL_RESOURCE_NAME ` --identity=PRINCIPAL ` --permissions='PERMISSIONS' ` --gcs-output-path=STORAGE_OBJECT_URI
Windows (cmd.exe)
gcloud asset analyze-iam-policy-longrunning --RESOURCE_TYPE=RESOURCE_ID ^ --full-resource-name=FULL_RESOURCE_NAME ^ --identity=PRINCIPAL ^ --permissions='PERMISSIONS' ^ --gcs-output-path=STORAGE_OBJECT_URI
אמורים לקבל תגובה שדומה לזו:
Analyze IAM Policy in progress. Use [gcloud asset operations describe projects/my-project/operations/AnalyzeIamPolicyLongrunning/1195028485971902504711950280359719028666] to check the status of the operation.
REST
כדי לנתח מדיניות הרשאות של IAM ולייצא את התוצאות ל-Cloud Storage, משתמשים בשיטה analyzeIamPolicyLongrunning של מאגר משאבי ענן API.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
RESOURCE_TYPE: סוג המשאב שרוצים להגביל את החיפוש אליו. המערכת תנתח רק את מדיניות ההרשאות של IAM שמצורפת למשאב הזה ולצאצאים שלו. אפשר להשתמש בערךprojects,foldersאוorganizations. -
RESOURCE_ID: המזהה שלGoogle Cloud הפרויקט, התיקייה או הארגון שרוצים להגביל את החיפוש אליהם. רק מדיניות הרשאות של IAM שמצורפת למשאב הזה ולצאצאים שלו תנותח. מזהי פרויקטים הם מחרוזות אלפאנומריות, כמוmy-project. מזהי תיקיות וארגונים מכילים רק ספרות, למשל123456789012. -
FULL_RESOURCE_NAME: אופציונלי. השם המלא של המשאב שרוצים לנתח את הגישה אליו. רשימה של הפורמטים של שמות מלאים של משאבים זמינה במאמר בנושא פורמט השמות של המשאבים. -
PRINCIPAL: אופציונלי. החשבון הראשי שרוצים לנתח את הגישה שלו, בפורמטPRINCIPAL_TYPE:ID– לדוגמה,user:my-user@example.com. רשימה מלאה של סוגי החשבונות הראשיים מופיעה במאמר מזהים של חשבונות משתמשים. -
PERMISSION_1,PERMISSION_2...PERMISSION_N: אופציונלי. הרשאות שרוצים לבדוק – לדוגמה,compute.instances.get. אם תציינו כמה הרשאות, כלי הניתוח למדיניות יבדוק אם יש לכם אחת מההרשאות שציינתם. -
STORAGE_OBJECT_URI: המזהה הייחודי של משאב אובייקט Cloud Storage שאליו רוצים לייצא את תוצאות הניתוח, בפורמטgs://BUCKET_NAME/OBJECT_NAME– לדוגמה,gs://my-bucket/analysis.json.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://cloudasset.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID:analyzeIamPolicyLongrunning
תוכן בקשת JSON:
{
"analysisQuery": {
"resourceSelector": {
"fullResourceName": "FULL_RESOURCE_NAME"
},
"identitySelector": {
"identity": "PRINCIPAL"
},
"accessSelector": {
"permissions": [
"PERMISSION_1",
"PERMISSION_2",
"PERMISSION_N"
]
},
"outputConfig": {
"gcsDestination": {
"uri": "STORAGE_OBJECT_URI"
}
}
}
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"name": "projects/my-project/operations/AnalyzeIamPolicyLongrunning/1206385342502762515812063858425027606003",
"metadata": {
"@type": "type.googleapis.com/google.cloud.asset.v1.AnalyzeIamPolicyLongrunningMetadata",
"createTime": "2022-04-12T21:31:10.753173929Z"
}
}
הצגת תוצאות של ניתוח מדיניות IAM
כדי לראות את תוצאות הניתוח של מדיניות IAM:
נכנסים לדף Buckets במסוף Google Cloud .
פותחים את הקובץ החדש שבו כתבתם את הניתוח.
בתוצאות מופיעים טאפלים של {identity, role(s)/permission(s), resource} יחד עם מדיניות IAM שמייצרת את הטאפלים האלה.