ביצוע ההעברה

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

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

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

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

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

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

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

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

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

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

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

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

כללי מדיניות נדרשים של הארגון

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

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

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

ביצוע ההעברה

אחרי שמעניקים את ההרשאות ואוכפים את כללי המדיניות, אפשר להעביר את הפרויקט באמצעות ה-CLI של Google Cloud או ה-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

באמצעות גרסה 1 של Resource Manager API, אתם יכולים להעביר פרויקט בין משאבי ארגון על ידי הגדרת השדה 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. ניקוי: מבטלים את התפקידים הזמניים של "העברת פרויקטים" ומסירים את האילוצים allowedExportDestinations ו-allowedImportSources."

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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