כתיבת ניתוח מדיניות ל-Cloud Storage

בדף הזה מוסבר איך לנתח מדיניות של ניהול זהויות והרשאות גישה (IAM) באופן אסינכרוני ולכתוב את התוצאות ב-Cloud Storage. הפונקציונליות דומה ברובה לניתוח של מדיניות IAM, אבל תוצאת הניתוח נכתבת בקטגוריה של Cloud Storage.

לפני שמתחילים

מפעילים את Cloud Asset API.

תפקידים שנדרשים להפעלת ממשקי API

כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאה serviceusage.services.enable. איך מקצים תפקידים

להפעלת ה-API

צריך להפעיל את ה-API בפרויקט שבו ישמש לשליחת השאילתה. המשאב הזה לא חייב להיות זהה למשאב שאליו מצומצמת השאילתה.

תפקידים והרשאות נדרשים

כדי להריץ ניתוח מדיניות ולייצא את התוצאות ל-Cloud Storage, נדרשים התפקידים וההרשאות הבאים:

התפקידים שצריך ב-IAM

כדי לקבל את ההרשאות שדרושות לניתוח מדיניות ולייצוא התוצאות ל-BigQuery, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים בפרויקט, בתיקייה או בארגון שבהם תגדירו את היקף השאילתה:

להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

התפקידים המוגדרים מראש האלה כוללים את ההרשאות שנדרשות לניתוח מדיניות ולייצוא התוצאות ל-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:

  1. נכנסים לדף Buckets במסוף Google Cloud .

    כניסה לדף Buckets

  2. פותחים את הקובץ החדש שבו כתבתם את הניתוח.

בתוצאות מופיעים טאפלים של {identity, role(s)/permission(s), resource} יחד עם מדיניות IAM שמייצרת את הטאפלים האלה.