ניתוח של העברת פרויקט

בעזרת Cloud Asset Inventory Analyze Move API, אתם יכולים ליצור דוח מפורט של אזהרות וחסימות במערכות מדיניות קריטיות לפני שאתם מעבירים פרויקט. הדוח הזה עוזר לזהות התנגשויות אפשריות במדיניות ולפתור בעיות לפני שמתחילים את ההעברה.

הפעלת ממשקי ה-API

בוחרים או יוצרים פרויקט שישמש כפרויקט צרכן ה-API, ומפעילים את Cloud Asset API.

פרויקט הצרכן הזה יכול להיות שונה מהפרויקט שאתם מתכננים לנתח ולהעביר. פרויקט הצרכן ישמש ליצירת פרטי כניסה כדי לשלוח בקשת API.

בקטע הבא מתוארים התפקידים וההרשאות שצריך להקצות בפרויקט המקור שרוצים לנתח.

ההרשאות הנדרשות

כדי לבצע ניתוח של העברת פרויקט, אתם צריכים תפקיד שכולל את ההרשאה cloudasset.assets.analyzeMove, כמו צפייה בנכסים ב-Cloud או צפייה. אפשר לתת את התפקיד הזה ברמת הפרויקט, או ברמת תיקיית ההורה או משאב הארגון.

כדי לקבל ניתוח של שירות, אתם צריכים גם תפקידים שקשורים לשירותים האלה. ההרשאות האלה כוללות:

  • כדי לראות את מדיניות ההרשאות שעוברת בירושה ממשאב הארגון ההורה של פרויקט המקור, צריך את ההרשאה resourcemanager.organizations.getIamPolicy במשאב הארגון ההורה של פרויקט המקור.

  • אם אתם רוצים לראות את מדיניות ההרשאות שהועברה בירושה מתיקיית ההורה של פרויקט המקור, אתם צריכים את ההרשאה resourcemanager.folders.getIamPolicy בתיקיית ההורה של פרויקט המקור.

  • כדי לראות את כללי מדיניות ההרשאות בפרויקט, צריך את ההרשאה resourcemanager.projects.getIamPolicy בפרויקט המקור.

  • כדי לראות את כללי מדיניות הדחייה שעוברים בירושה ממשאב הארגון ההורה של פרויקט המקור, צריך את ההרשאה iam.denypolicies.get במשאב הארגון ההורה של פרויקט המקור.

  • כדי לראות את כללי מדיניות הארגון שהפרויקט הזה ירש, צריך את ההרשאה orgpolicy.policy.get בפרויקט המקור.

  • כדי לראות את מדיניות חומת האש של Compute Engine שעוברים בירושה לפרויקט הזה, צריך את ההרשאה compute.organizations.setSecurityPolicy בתיקיית המקור או במשאב הארגון. למרות שההרשאה הזו מכילה את המילה set, היא נדרשת כדי לאחזר ולהציג את מדיניות האבטחה שעברה בירושה.

  • כדי לראות את התגים שהפרויקט הזה ירש, צריך את ההרשאה resourcemanager.hierarchyNodes.listEffectiveTags בפרויקט המקור או בצומתי האב שלו.

ביצוע הניתוח

אתם יכולים להשתמש ב-Google Cloud CLI או ב-API כדי לנתח את ההעברה של משאב מהמיקום הנוכחי שלו בהיררכיית המשאבים.

gcloud

כדי לנתח את ההשפעות של העברת פרויקט מהמיקום הנוכחי שלו בהיררכיית המשאבים, משתמשים בפקודה gcloud asset analyze-move:

gcloud asset analyze-move --project=PROJECT_ID \
  (--destination-folder=FOLDER_ID \
    | --destination-organization=ORGANIZATION_ID)

כדי לנתח את ההשפעות של העברת פרויקט לתיקייה אחרת, מריצים את הפקודה עם --destination-folder:

gcloud asset analyze-move --project=PROJECT_ID \
  --destination-folder=FOLDER_ID

כדי לנתח את ההשפעות של העברת פרויקט לארגון אחר, מריצים את הפקודה עם --destination-organization:

gcloud asset analyze-move --project=PROJECT_ID \
  --destination-organization=ORGANIZATION_ID

כאשר:

  • ‫PROJECT_ID הוא מזהה הפרויקט הייחודי של הפרויקט שאתם מעבירים. לדוגמה, --myProject123.

  • ‫FOLDER_ID הוא המזהה המספרי של תיקיית היעד שבה רוצים לבצע את הניתוח. לדוגמה, 45678901123.

  • ‫ORGANIZATION_ID הוא המזהה המספרי של הארגון שבו רוצים לבצע את הניתוח. לדוגמה, 78901123456.

API

כדי לנתח את ההשפעות של העברת פרויקט מהמיקום הנוכחי שלו בהיררכיית המשאבים בלי לבצע את ההעברה, משתמשים ב-method‏ cloudasset.analyzeMove:

GET https://cloudasset.googleapis.com/v1/{resource=*/*}: \
  analyzeMove?destinationParent=DESTINATION_NAME

כאשר:

  • ‫resource הוא שם המשאב שעליו רוצים לבצע את הניתוח. אפשר להשתמש רק במשאבים של פרויקטים, ולכן צריך להזין את מזהה הפרויקט או את מספר הפרויקט. לדוגמה, projects/my-project-id או projects/12345.

  • ‫DESTINATION_NAME הוא השם של התיקייה או של משאב הארגון שרוצים להגדיר כהורה החדש של משאב היעדGoogle Cloud . הניתוח יתבצע על ההשפעות של העברת המשאב להורה של היעד שצוין. היעד חייב להיות מספר תיקייה או מספר משאב ארגוני. לדוגמה: folders/123 או organizations/123.

העברת התשובות של הניתוח

התגובה שמתקבלת מ-Move Analysis API מקובצת לפי שם השירות. מתחת לכל שירות מופיעה רשימה של אזהרות וחסימות שרלוונטיות להעברת הפרויקט הזה. אם הניתוח הזה מחזיר חסימות, המשמעות היא שהעברת הפרויקט תיחסם בזמן הריצה אם תמשיכו בהעברה לפני שתפתרו אותן.

פתרון לשגיאות

אם ה-Move Analysis API מחזיר שגיאה, היא כוללת קוד gRPC סטנדרטי והודעה שמתארת את הסיבה לכך שה-Move Analysis API לא הצליח לנתח את הפרויקט.

בטבלה הבאה מתוארים קודי השגיאה שיכולים להיות מוחזרים על ידי Move Analysis API:

שם השגיאה קוד שגיאה תיאור
ארגומנט לא חוקי 3 מוחזרת אם קוראים ל-API בפרויקט עם ארגומנט לא חוקי, כמו שם משאב שגוי.
ההרשאה נדחתה 7 מוחזרת אם אין לכם את ההרשאות הנדרשות לביצוע הניתוח או אם פרויקט המקור לא קיים.
פנימי 13 מוחזרת אם יש בעיה בקריאה למערכת מדיניות, כמו ניהול זהויות והרשאות גישה (IAM) או מדיניות הארגון. זה לא אומר שאי אפשר לבצע את ההעברה, ואפשר לנסות שוב את הניתוח אחרי שבודקים אם יש הפסקה בשירות.
לא זמין 14 מוחזרת אם מערכת פנימית לא מסונכרנת. זה לא אומר שאי אפשר לבצע את ההעברה, ואתם יכולים לנסות שוב את הניתוח.
לא מאומתות 16 מוחזר אם לא סיפקתם את פרטי הכניסה הנכונים לביצוע הניתוח הזה.

הודעת שגיאה לדוגמה

בדוגמה הבאה מוצג קוד השגיאה שמוחזר למשתמש שאין לו את ההרשאה cloudasset.assets.analyzeMove בפרויקט שרוצים להעביר:

{
  "error": {
  "code": 403,
  "message": "Failed to fetch Project: projects/test-project-service-3 to perform
              move analysis.",
  "status": "PERMISSION_DENIED"}
}

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

{
  "moveAnalysis": [{
    "displayName": "name hidden",
    "analysis": {
      "warnings": [{
        "detail": "details hidden"
      }]
    }
  }, {
    "displayName": "name hidden",
    "analysis": {
      "warnings": [{
        "detail": "details hidden"
      }]
    }
  }, {
    "displayName": "Hierarchical Firewall",
    "error": {
      "code": 7,
      "message": "Failed to retrieve inherited security policies to perform
                  analysis. Required 'compute.organizations.setSecurityPolicy'
                  permission for {resource ID}"
     }}]
}

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

‫Move Analysis API מספק פרטים שעוזרים לפתור חסימות ובעיות אחרות כשמעבירים פרויקט ממשאב ארגוני אחד לאחר. למידע נוסף על העברת פרויקטים בין משאבי ארגון, קראו את המאמר העברת פרויקטים בין משאבי ארגון.