יצירת תיקיות

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

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

בדיאגרמה הבאה, למשאב הארגון Company יש תיקיות שמייצגות את Standard Workloads,‏ Regulated Workloads ו-Shared infrastructure. בקטע 'עומסי עבודה מפוקחים', התיקיות מאורגנות לפי סביבה, לתיקיות 'סביבה שאינה סביבת ייצור' ו'סביבת ייצור'. התיקייה Production Environment (סביבת ייצור) מאורגנת עוד יותר לתיקיות Customer-Facing (פונה ללקוחות) (מוגבלת) ו-Internal-Only (פנימית בלבד) (סטנדרטית) כדי לאכוף בקרות גישה מבוססות מדיניות. פרויקטים כמו Test project,‏ Development project ו-Production project מכילים את המשאבים שנדרשים לפרויקט. התכונה הזו מספקת גמישות רבה בהקצאת מדיניות הרשאה, מדיניות דחייה או מדיניות ארגונית ברמת הפירוט הנכונה.

היררכיית תיקיות עם עומסי עבודה, סביבות ופרויקטים.

אפשר להשתמש במדיניות הרשאות ומדיניות דחייה ברמת התיקייה כדי לשלוט בגישה למשאבים שהתיקייה מכילה. לדוגמה, אם למשתמש מסוים הוקצה התפקיד Compute Instance Admin בתיקייה, הוא מקבל את התפקיד Compute Instance Admin בכל הפרויקטים בתיקייה.

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

הפונקציונליות של תיקיות זמינה רק ללקוחות Google Workspace ו-Cloud Identity שיש להם משאב ארגון. מידע נוסף על קבלת משאב ארגון זמין במאמר קבלת משאב ארגון.

אם אתם רוצים לדעת איך הכי כדאי להשתמש בתיקיות, מומלץ:

  1. מומלץ לעיין במאמר בקרת גישה לתיקיות שמשתמשות ב-IAM. במאמר הזה מוסבר איך אפשר לקבוע למי תהיה גישה לתיקיות ולמשאבים שהן מכילות.
  2. איך מגדירים הרשאות לתיקיות תיקיות תומכות במספר תפקידים שונים ב-IAM (המערכת לניהול הזהויות והרשאות הגישה). אם רוצים להגדיר הרשאות באופן רחב כדי שהמשתמשים יוכלו לראות את המבנה של הפרויקטים שלהם, צריך להקצות לדומיין כולו את התפקידים צפייה בארגון וצפייה בתיקייה ברמת משאב הארגון. כדי להגביל את הגישה לענפים בהיררכיית התיקיות, צריך להקצות את התפקיד Folder Viewer לתיקייה או לתיקיות שרוצים שהמשתמשים יוכלו לראות.
  3. יצירת תיקיות כשמתכננים איך לארגן את משאבי Cloud, מומלץ להתחיל עם תיקייה אחת כארגז חול שבו אפשר להתנסות בהיררכיות שונות כדי להבין איזו היררכיה הכי מתאימה למשאב הארגוני. אפשר לחשוב על תיקיות במונחים של גבולות בידוד בין משאבים ונקודות חיבור למדיניות גישה והגדרות. אפשר ליצור תיקיות שיכילו משאבים ששייכים למחלקות שונות, ולהקצות תפקידי אדמין בתיקיות כדי להעניק הרשאות אדמין. אפשר גם להשתמש בתיקיות כדי לקבץ משאבים ששייכים לאפליקציות או לסביבות שונות, כמו פיתוח, ייצור ובדיקה. כדי לדמות את התרחישים השונים האלה, אפשר להשתמש בתיקיות מקוננות.

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

  • אפשר להציב תיקיות בתוך תיקיות עד 10 (עשר) רמות עומק.
  • תיקיית הורה לא יכולה להכיל יותר מ-300 תיקיות. הכוונה היא רק לתיקיות צאצא ישירות. תיקיות המשנה האלה יכולות להכיל תיקיות או פרויקטים נוספים.
  • השמות לתצוגה של התיקיות צריכים להיות ייחודיים באותה רמה בהיררכיה.

הגדרת הרשאות לניהול תיקיות

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

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

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

כדי להגדיר הרשאות לתיקייה:

המסוף

  1. במסוף Google Cloud , פותחים את הדף Manage resources.

    מעבר לניהול משאבים

  2. אם חלונית המידע לא פתוחה, לוחצים על Show info panel.
  3. בטבלה משאבים, מרחיבים את הארגון שמכיל את התיקייה.
  4. ברשימת המשאבים בקטע Organization, בוחרים את התיקייה שרוצים לנהל.
  5. בחלונית המידע, לוחצים על Add principal.
  6. בשדה Add principals, מזינים את כתובת האימייל שרוצים להעניק לה הרשאות.
  7. בתפריט Select a role (בחירת תפקיד), בוחרים בקטגוריה Resource Manager (מנהל המשאבים), ואז בוחרים את התפקיד שרוצים להקצות, כמו Folder Admin (אדמין של תיקייה).
  8. כדי להעניק את התפקיד החדש, לוחצים על Save.

gcloud

כדי להקצות את התפקיד 'אדמין תיקייה' לחשבון משתמש באמצעות Google Cloud CLI, מריצים את הפקודה הבאה:

    gcloud organizations add-iam-policy-binding ORGANIZATION_ID \
    --member=user:USER_ID \
    --role=roles/resourcemanager.folderAdmin

REST

קובץ ה-JSON של הבקשה:

request_json= '{ policy: { version: "1", bindings: [ { role: "roles/folderAdmin",
members: [ "user:admin@myorganization.com", ] }, { role: "roles/folderCreator",
members: [ "user:admin@myorganization.com", ] } , { role: "roles/folderMover",
members: [ "user:admin@myorganization.com", ] } , ] } }'

בקשת curl:

curl -X POST -H "Content-Type: application/json" \
-H "Authorization: Bearer ${bearer_token}" \
-d "$request_json" \
https://cloudresourcemanager.googleapis.com/v3/ORGANIZATION_NAME:setIamPolicy

מחליפים את ORGANIZATION_NAME בשם הארגון שמגדירים לו את מדיניות ההרשאות, לדוגמה organizations/123.

יצירת תיקיות

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

כשיוצרים תיקייה, צריך להקצות לה שם. שמות התיקיות צריכים לעמוד בדרישות הבאות:

  • השם יכול להכיל אותיות, ספרות, רווחים, מקפים וקווים תחתונים.
  • השם המוצג של התיקייה צריך להתחיל ולהסתיים באות או בספרה.
  • השם צריך לכלול בין 3 ל-30 תווים.
  • השם צריך להיות שונה מכל שאר התיקיות שמשותפות עם תיקיית ההורה.

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

המסוף

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

  1. נכנסים לדף Manage resources במסוף Google Cloud :

    פתיחת הדף Manage resources

  2. מוודאים ששם משאב הארגון נבחר ברשימה הנפתחת של הארגון בחלק העליון של הדף.

  3. לוחצים על Create folder ובוחרים באחת מהאפשרויות הבאות:

    • תיקייה רגילה: משאב תיקייה רגיל.
    • תיקייה תואמת: תיקייה ב-Assured Workloads, שמספקת אמצעי בקרה נוספים לצורך עמידה בדרישות רגולטוריות, אזוריות או לאומיות עבור משאבי Google Cloud . אם תבחרו באפשרות הזו, תועברו אל Assured Workloads כדי ליצור תיקייה.
  4. בתיבה שם התיקייה, מזינים את השם החדש של התיקייה.

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

    1. לוחצים על יצירה.

gcloud

אפשר ליצור תיקיות באופן פרוגרמטי באמצעות Google Cloud CLI.

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

gcloud resource-manager folders create \
   --display-name=DISPLAY_NAME \
   --organization=ORGANIZATION_ID

כדי ליצור תיקייה שהתיקייה הראשית שלה היא תיקייה אחרת:

gcloud resource-manager folders create \
   --display-name=DISPLAY_NAME \
   --folder=FOLDER_ID

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

  • DISPLAY_NAME: השם המוצג של התיקייה. לא יכולות להיות שתי תיקיות עם אותו שם לתצוגה באותה תיקיית אב. השם המוצג חייב להתחיל ולהסתיים באות או בספרה, יכול לכלול אותיות, ספרות, רווחים, מקפים וקווים תחתונים, ואורכו לא יכול להיות יותר מ-30 תווים.
  • ORGANIZATION_ID: המזהה של משאב הארגון ההורה, אם ההורה הוא משאב ארגון.
  • FOLDER_ID: המזהה של תיקיית ההורה, אם ההורה הוא תיקייה.

API

אפשר ליצור תיקיות באמצעות בקשת API.

קובץ ה-JSON של הבקשה:

request_json= '{
  display_name: DISPLAY_NAME,
  parent: ORGANIZATION_NAME
}'

בקשת ה-curl ליצירת תיקייה:

curl -X POST -H "Content-Type: application/json" \
-H "Authorization: Bearer ${bearer_token}" \
-d "$request_json" \
https://cloudresourcemanager.googleapis.com/v3/folders

כאשר:

  • DISPLAY_NAME: השם המוצג של התיקייה החדשה, לדוגמה My Awesome Folder.
  • ORGANIZATION_NAME: השם של משאב הארגון שמתחתיו אתם יוצרים את התיקייה, לדוגמה organizations/123.

התגובה של יצירת התיקייה:

אם קריאה רושמת פעולה בהצלחה, גוף התגובה מכיל מופע של Operation.

{
  "name": "operations/fc.123456789",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.resourcemanager.v3.FolderOperation",
    "displayName": "DISPLAY_NAME",
    "operationType": "CREATE"
  }
}

בקשת ה-curl של Get Operation:

curl -H "Authorization: Bearer ${bearer_token}" \
https://cloudresourcemanager.googleapis.com/v3/operations/fc.123456789

התגובה של Get Operation:

{
  "name": "operations/fc.123456789",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.resourcemanager.v3.FolderOperation",
    "displayName": "DISPLAY_NAME",
    "operationType": "CREATE"
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.resourcemanager.v3.Folder",
    "name": "folders/12345",
    "parent": "organizations/123",
    "displayName": "DISPLAY_NAME",
    "lifecycleState": "ACTIVE",
    "createTime": "2017-07-19T23:29:26.018Z",
    "updateTime": "2017-07-19T23:29:26.046Z"
  }
}

הוספת תגים במהלך יצירת תיקייה

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

gcloud

כדי להוסיף תגים במהלך יצירת תיקייה, מריצים את הפקודה הבאה:

  gcloud resource-manager folders create \
      --display-name=DISPLAY_NAME \
      --organization=ORGANIZATION_ID\
      --tags=KEY_VALUE_PAIRS

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

  • DISPLAY_NAME: השם המוצג של התיקייה.
  • ORGANIZATION_ID: המזהה הייחודי של משאב הארגון שמוגדר כהורה.
  • KEY_VALUE_PAIRS: רשימה מופרדת בפסיקים של זוגות של מפתח וערך שאפשר להקצות למשאב. דוגמה לצמדי מפתח/ערך שמופרדים בפסיקים: 123/environment=production, 456/create=testresource.

REST

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

  POST https://cloudresourcemanager.googleapis.com/v3/folders/
  Authorization: *************
  Content-Type: application/json

  {
    "display_name": "our-folder-456",
    "parent": "organizations/123",
    "tags": {
      "123/environment": "production",
      "123/costCenter": "marketing"
    }
  }

אחזור מזהה התיקייה

אפשר לאחזר את המזהה של תיקייה באמצעות מסוף Google Cloud או Google Cloud CLI. Google Cloud

המסוף

  1. במסוף Google Cloud , פותחים את הדף Manage resources.
  2. מאתרים את התיקייה ברשימת המשאבים. ה-folder ID מוצג בעמודה ID לצד השם המוצג של התיקייה.

gcloud

כדי למצוא את מזהה התיקייה, מריצים את הפקודה הבאה:

gcloud resource-manager folders list --organization=ORGANIZATION_ID

זמן הפצה

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

מחיקת תיקיות

כדי למחוק תיקייה, צריך להיות בעלי תפקיד Folder Admin (roles/resourcemanager.folderAdmin) או תפקיד עריכה בתיקייה (roles/resourcemanager.folderEditor). התיקייה צריכה להיות ריקה כדי שאפשר יהיה למחוק אותה. הוראות מפורטות מופיעות במאמר בנושא מחיקת תיקיות.

הגדרת הגישה לתיקיות

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

המסוף

  1. במסוף Google Cloud , פותחים את הדף Manage Resources.

    פתיחת הדף 'ניהול משאבים'

  2. לוחצים על הרשימה הנפתחת ארגון בפינה הימנית העליונה ובוחרים את המשאב הארגוני.

  3. מסמנים את התיבה לצד הפרויקט שרוצים לשנות את ההרשאות שלו.

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

    2. ברשימה הנפתחת Select a role, בוחרים את התפקיד שרוצים להקצות לחברים האלה.

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

gcloud

אפשר להגדיר גישה לתיקיות באופן פרוגרמטי באמצעות Google Cloud CLI או API בארכיטקטורת REST.

gcloud resource-manager folders \
    add-iam-policy-binding FOLDER_ID \
    --member=user:email1@example.com \
    --role=roles/resourcemanager.folderEditor
gcloud resource-manager folders \
    add-iam-policy-binding FOLDER_ID \
    --member=user:email1@example.com \
    --role=roles/resourcemanager.folderViewer

אפשרות אחרת:

gcloud resource-manager folders \
    set-iam-policy FOLDER_ID POLICY_FILE

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

  • FOLDER_ID: המזהה של התיקייה החדשה
  • POLICY_FILE: הנתיב לקובץ מדיניות של התיקייה

API

השיטה setIamPolicy מגדירה את מדיניות בקרת הגישה בתיקייה, ומחליפה כל מדיניות קיימת. השדה resource צריך להיות שם המשאב של התיקייה, למשל folders/1234.

 request_json= '{
   policy: {
     version: "1",
     bindings: [
       {
         role: "roles/resourcemanager.folderEditor",
         members: [
           "user:email1@example.com",
           "user:email2@example.com",
         ]
       }
     ]
   }
 }'

בקשת curl:

   curl -X POST -H "Content-Type: application/json" \
   -H "Authorization: Bearer ${bearer_token}" \
   -d "$request_json" \
   https://cloudresourcemanager.googleapis.com/v3/FOLDER_ID:setIamPolicy

מחליפים את FOLDER_ID בשם התיקייה שמגדירים את מדיניות ה-IAM שלה, לדוגמה folders/123.

טיפול בפעולות ממושכות

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

כשמשתמשים בדגל הזה, הפקודה מחזירה מיד אובייקט פעולה ממושכת (LRO). אחר כך תוכלו להשתמש ב-operation_id כדי לבדוק את סטטוס ההשלמה בזמן שנוח לכם. הסימון הבוליאני --async נתמך רק בפקודות folders create ו-folders move.

כדי להשתמש בדגל, פועלים לפי השלבים הבאים:

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

    gcloud resource-manager folders create \
        --display-name="Test Async Folder" \
        --organization=2518 \
        --async
    

    הפלט מספק שם פעולה (למשל, fc.8572) ומציג done: false.

    דוגמה לתשובה:

    name: operations/fc.8572
    metadata:
    operation_type: CREATE
    display_name: Awe-Inspiring Async Folder
    destination_parent: organizations/2518
    done: false
    
  2. בודקים את סטטוס הפעולה. כדי לבדוק אם המשימה הסתיימה, משתמשים בפקודה operations describe עם המזהה שסופק בשלב הקודם.

    gcloud beta resource-manager operations describe fc.8572
    

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

    name: operations/fc.8572
    done: true
    response:
      name: folders/6428
      display_name: Awe-Inspiring Async Folder
      lifecycle_state: ACTIVE
      create_time: '2024-03-20T10:00:00Z'
    

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