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