ביצוע ההעברה

בדף הזה מוסבר איך להעביר פרויקט Google Cloud ממשאב ארגון אחד למשאב ארגון אחר, או מפרויקט שלא משויך למשאב ארגון למשאב ארגון.

כדי להעביר פרויקט, צריך לוודא שיש לכם את ההרשאות הנכונות (ניהול זהויות והרשאות גישה (IAM)) ושהגדרתם את מדיניות הארגון הספציפית במשאבי המקור והיעד.

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

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

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

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

  • אדמין IAM של פרויקט (roles/resourcemanager.projectIamAdmin) בפרויקט שרוצים להעביר בין משאבי הארגון
  • Project Mover (roles/resourcemanager.projectMover) on on the project's parent resource (folder or organization resource)
  • אם משאב היעד הוא תיקייה: Project Mover (roles/resourcemanager.projectMover) on on the destination resource
  • אם משאב היעד הוא ארגון: Project Creator (roles/resourcemanager.projectCreator) במשאב היעד

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

יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.

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

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

כדי להעביר פרויקטים, נדרשות ההרשאות הבאות:

  • resourcemanager.projects.getIamPolicy בפרויקט שרוצים להעביר בין משאבים ארגוניים
  • resourcemanager.projects.update בפרויקט שרוצים להעביר בין משאבי ארגון
  • resourcemanager.projects.move במשאב האב של הפרויקט (תיקייה או משאב ארגון)
  • אם משאב היעד הוא תיקייה: resourcemanager.projects.move במשאב היעד
  • אם משאב היעד הוא משאב ארגון: resourcemanager.projects.create במשאב היעד
  • אם רוצים להעביר פרויקט שלא משויך לארגון: לוחצים על resourcemanager.projects.setIamPolicy בפרויקט שרוצים להעביר.

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

מדיניות ארגונית נדרשת

כברירת מחדל, העברת פרויקטים מוגבלת. צריך לאפשר באופן מפורש את הייצוא והייבוא על ידי הגדרת מדיניות ארגונית בבסיס של שני הארגונים. כדי להגדיר את מדיניות הארגון שנדרשת להעברה, צריך להיות לכם תפקיד roles/orgPolicy.policyAdmin בארגון האב ובארגון היעד.

  • במשאב הארגון של המקור: מגדירים את המדיניות constraints/resourcemanager.allowedExportDestinations. מוסיפים את המזהה של הארגון שממנו מגיעים כערך מותר.

  • במשאב של ארגון היעד: מגדירים את המדיניות constraints/resourcemanager.allowedImportSources. מוסיפים את המזהה של הארגון המקורי כערך מותר.

ביצוע ההעברה

אחרי שההרשאות מוענקות והמדיניות נאכפת, אפשר להעביר את הפרויקט באמצעות Google Cloud CLI או Resource Manager API.

gcloud

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

gcloud beta projects move PROJECT_ID \
    --organization ORGANIZATION_ID

אפשר גם לציין תיקייה כמשאב היעד באמצעות הפקודה הבאה:

gcloud beta projects move PROJECT_ID \
    --folder FOLDER_ID

מחליפים את השדות הבאים:

  • PROJECT_ID: המזהה או המספר של הפרויקט שרוצים להעביר.
  • ORGANIZATION_ID: המזהה של משאב הארגון שאליו מעבירים את הפרויקט.
  • FOLDER_ID: המזהה של התיקייה שאליה מעבירים את הפרויקט.

אפשר לציין רק יעד אחד, תיקייה או משאב ארגוני.

API

באמצעות Resource Manager API בגרסה v1, אפשר להעביר פרויקט בין משאבי ארגון על ידי הגדרת השדה parent למזהה של משאב היעד.

כדי להעביר פרויקט:

  • מקבלים את האובייקט project באמצעות ה-method‏ projects.get().
  • מעדכנים את השדה parent למזהה משאב היעד.
  • מפעילים את השיטה projects.update().

בקטע הקוד הבא אפשר לראות את השלבים האלה:

    project = crm.projects().get(projectId=flags.projectId).execute()
    project['parent'] = {
        'type': 'organization',
        'id': flags.organizationId
    }

    project = crm.projects().update(
    projectId=flags.projectId, body=project).execute()

משימות אחרי ההעברה

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

אלה כמה פעולות שאפשר לבצע אחרי ההעברה:

  1. אימות המדיניות: מוודאים שהפרויקט יורש את כללי המדיניות הארגונית הצפויים מההורה החדש שלו.

  2. בקרת גישה: כדאי לבדוק את התפקידים ב-IAM כדי לוודא שלמשתמשים בארגון החדש יש את הגישה הנדרשת.

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

  4. ניקוי: ביטול התפקידים הזמניים של Project Mover והסרת האילוצים allowedExportDestinations ו-allowedImportSources."

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

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

כדי לשנות את החשבון לחיוב:

  1. עוברים אל דף החיוב במסוף Google Cloud .
    כניסה לדף Billing
  2. לוחצים על השם של החשבון לחיוב שרוצים לשנות.
  3. בקטע Projects linked to this billing account, מחפשים את שם הפרויקט שרוצים להעביר ולוחצים על לחצן התפריט משמאל.
  4. לוחצים על שינוי פרטי החיוב ובוחרים את חשבון החיוב החדש.
  5. לוחצים על Set account.

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

העברה של חשבון לחיוב בין משאבי ארגון

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

אם לחשבון לחיוב חדש לא משויך משאב ארגוני, אתם צריכים לקבל את התפקיד roles/billing.admin בחשבון לחיוב ואת התפקידים roles/billing.admin ו-roles/billing.creator במשאב הארגוני שאתם רוצים לשייך לחשבון לחיוב.

אם אתם צריכים להעביר חשבון לחיוב קיים:

  1. נכנסים לדף Billing במסוף Google Cloud .
    כניסה לדף Billing
  2. לוחצים על השם של החשבון לחיוב שרוצים להעביר.
  3. בחלק העליון של הדף ניהול חשבון, לוחצים על שינוי הארגון.
  4. בוחרים את משאב היעד בארגון ולוחצים על אישור.

החשבון לחיוב משויך עכשיו למשאב הארגון שצוין.

החזרה של העברה למצב קודם

Google Cloud העברות בין ארגונים לא מבוטלות אוטומטית אם מתרחשת בעיה במהלך ההעברה או אחריה. אם אתם צריכים לבטל את המיגרציה, תצטרכו לבצע החזרה ידנית.

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

כדי לבטל העברה:

  1. מחליפים את מזהי המקור והיעד במדיניות הארגון (allowedExportDestinations ו-allowedImportSources).
  2. מריצים שוב את פקודת ההעברה, ומעבירים את הפרויקט בחזרה למזהה המקור המקורי.

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