יצירת תיקיות

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

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

בתרשים הבא, משאב הארגון, Company, כולל תיקיות שמייצגות שני מחלקות, Dept X ו-Dept Y, ותיקייה, Shared Infrastructure, לפריטים שעשויים להיות משותפים לשתי המחלקות. בקטע 'Dept Y', הם התארגנו בשני צוותים, ובתיקיות של הצוותים הם התארגנו לפי מוצרים. התיקייה של 'מוצר 1' מכילה שלושה פרויקטים, שלכל אחד מהם יש את המשאבים שנדרשים לו. כך הם יכולים להקצות מדיניות הרשאה, דחייה או מדיניות ארגונית ברמת הפירוט הנכונה.

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

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

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

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

המסוף

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

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

  2. אם חלונית המידע לא פתוחה, לוחצים על Show info panel.
  3. בטבלה משאבים, מרחיבים את הארגון שמכיל את התיקייה.
  4. ברשימת המשאבים שמתחת לארגון, בוחרים את התיקייה שרוצים לנהל.
  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 במסוף Cloud de Confiance :

    פתיחת הדף Manage resources

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

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

    • תיקייה רגילה: משאב תיקייה רגיל.
    • תיקייה תואמת: תיקייה ב-Assured Workloads, שמספקת אמצעי בקרה נוספים לצורך עמידה בדרישות רגולטוריות, אזוריות או לאומיות עבור משאבי Cloud de Confiance by S3NS . אם תבחרו באפשרות הזו, תועברו אל 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.

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

{
  "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/projects/
  Authorization: *************
  Content-Type: application/json

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

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

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

המסוף

  1. במסוף Cloud de Confiance , פותחים את הדף 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.

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

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

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