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

במדריך הזה מוסבר איך להשתמש ב-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 במשאב התיקייה או הארגון של המקור.

  • כדי להציג את התגים שהועברו בירושה בפרויקט הזה, צריך לקבל את ההרשאה 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

כדי לנתח את ההשפעות של העברת פרויקט מהמיקום הנוכחי שלו בהיררכיית המשאבים בלי לבצע את ההעברה, משתמשים בשיטה 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 הקוד הזה מוחזר אם יש בעיה בקריאה למערכת מדיניות, כמו ניהול זהויות והרשאות גישה או מדיניות ארגונית. ההודעה הזו לא מציינת שלא ניתן לבצע את ההעברה, ואפשר לנסות שוב את הניתוח אחרי שבודקים אם יש הפסקת שירות.
לא זמין 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 מספק פרטים שעוזרים לצמצם את הבעיות שמונעות את ההעברה של פרויקט ממשאב ארגון אחד למשאב ארגון אחר. מידע נוסף על העברת פרויקטים בין משאבי ארגון זמין במאמר העברת פרויקטים בין משאבי ארגון.