תיקיות ב-Google Cloud מאפשרות לקבץ ולארגן פרויקטים בהיררכיית משאבים. אתם יכולים להשתמש בתיקיות כדי להקצות תפקידי ניהול, לאכוף כללי מדיניות של הארגון שספציפיים לסביבה ולייעל את ניהול העלויות במחלקות השונות.
תיקיות הן צמתים בGoogle Cloud היררכיית המשאבים, והן יכולות להכיל פרויקטים, תיקיות אחרות או שילוב של שניהם, מתחת למשאב הארגון. הם גם מאפשרים לקבץ משאבים שיש להם תפקידים משותפים בניהול הזהויות והרשאות הגישה (IAM), כללי מדיניות דחייה או כללי מדיניות של הארגון. תיקייה יכולה להכיל כמה תיקיות או משאבים צאצאים, אבל לכל תיקייה או משאב יכול להיות רק הורה אחד.
דוגמה להיררכיית תיקיות
בתרשים הבא, למשאב הארגון "Company" יש תיקיות שמייצגות את "Standard Workloads", "Regulated Workloads" ו-"Shared infrastructure". בקטע Regulated Workloads, התיקיות מאורגנות לפי סביבה: Non-Prod Environment ו-Production Environment. התיקייה "סביבת ייצור" מחולקת לתיקיות "Customer-Facing (Restricted)" ו-"Internal-Only (Standard)" כדי לאכוף אמצעי בקרת גישה שמתמקדים במדיניות. פרויקטים כמו "פרויקט בדיקה", "פרויקט פיתוח" ו"פרויקט ייצור" מכילים את המשאבים שנדרשים לפרויקט. כך אפשר להקצות מדיניות הרשאה, מדיניות דחייה או מדיניות ארגון ברמת הפירוט המתאימה.
אתם יכולים להשתמש בכללי מדיניות של הרשאות ודחיות ברמת התיקייה כדי לשלוט בגישה למשאבים שבתיקייה. לדוגמה, אם למשתמש הוקצה התפקיד אדמין של מכונות Compute בתיקייה, יש לו את התפקיד אדמין של מכונות Compute בכל הפרויקטים שבתיקייה.
לפני שמתחילים
הפונקציונליות של תיקיות זמינה רק ללקוחות Google Workspace ו-Cloud Identity שיש להם משאב ארגון. למידע נוסף על קבלת משאב ארגון, ראו קבלת משאב ארגון.
אם אתם רוצים לדעת איך הכי כדאי להשתמש בתיקיות, אנחנו ממליצים:
- בקרת גישה לתיקיות שמשתמשות ב-IAM הנושא מתאר איך אתם יכולים לקבוע למי תהיה גישה לתיקיות ולמשאבים שהן מכילות, ואיזו גישה תהיה לו.
- איך מגדירים הרשאות ברמת התיקייה בתיקיות יש תמיכה בכמה תפקידים שונים ב-IAM. אם אתם רוצים להגדיר הרשאות באופן נרחב כדי שהמשתמשים יוכלו לראות את מבנה הפרויקטים שלהם, אתם יכולים להקצות לכל הדומיין את התפקידים צפייה בארגון וצפייה בתיקיות ברמת משאב הארגון. כדי להגביל את החשיפה לענפים בהיררכיית התיקיות, מקצים את התפקיד צפייה בתיקיות בתיקייה או בתיקיות שרוצים שהמשתמשים יראו.
- יצירת תיקיות. כשאתם מתכננים איך לארגן את המשאבים ב-Cloud, מומלץ להתחיל עם תיקייה אחת כארגז חול (sandbox) שבו תוכלו להתנסות בהיררכיות שונות, כדי להבין איזו היררכיה הכי מתאימה למשאב הארגוני שלכם. אפשר לחשוב על תיקיות כגבולות בידוד בין משאבים ונקודות חיבור למדיניות גישה והגדרות. אתם יכולים ליצור תיקיות שיכילו משאבים ששייכים למחלקות שונות, ולהקצות תפקידי אדמין בתיקיות כדי להעניק הרשאות אדמין. אפשר גם להשתמש בתיקיות כדי לקבץ משאבים ששייכים לאפליקציות או לסביבות שונות, כמו פיתוח, ייצור ובדיקה. אפשר להשתמש בתיקיות בתצוגת עץ כדי ליצור מודלים של התרחישים השונים האלה.
מצב נפוץ הוא ליצור תיקיות שמכילות תיקיות או פרויקטים נוספים, כמו שמוצג בהיררכיית המשאבים למעלה. המבנה הזה נקרא היררכיית תיקיות. כשיוצרים היררכיית תיקיות, חשוב לזכור את הדברים הבאים:
- אפשר להציב תיקיות בתוך תיקיות עד 10 (עשר) רמות.
- תיקיית אם לא יכולה להכיל יותר מ-300 תיקיות. הכוונה היא רק לתיקיות צאצא ישירות. תיקיות הצאצא האלה יכולות להכיל תיקיות או פרויקטים נוספים.
- השמות המוצגים של התיקיות חייבים להיות ייחודיים באותה רמה בהיררכיה.
הגדרת הרשאות לניהול תיקיות
כדי לגשת לתיקיות ולנהל אותן, מקצים תפקידי IAM ספציפיים לתיקיות לקבוצות ספציפיות של משתמשים. מידע נוסף על התפקידים האלה מופיע במאמר בקרת גישה לתיקיות באמצעות IAM. אנחנו גם ממליצים לעיין בשיטות המומלצות שלנו כדי לזהות את ההגדרה האופטימלית להרשאות התיקיות.
כדי לנהל תיקיות בכל משאב הארגון, צריך את התפקיד אדמין תיקיות. התפקיד הזה נותן למשתמש הרשאה ליצור, לערוך, למחוק, להעביר ולשנות הרשאות IAM בתיקיות, וגם הרשאה להעביר פרויקטים בין תיקיות.
בהתחלה, רק אדמין ארגוני יכול להקצות את התפקיד Folder Admin למשאב הארגון. חשבונות נוספים שיוקצה להם התפקיד הזה יוכלו להקצות אותו לחשבונות אחרים.
כדי להגדיר הרשאות ברמת התיקייה:
המסוף
- פותחים את הדף Manage resources במסוף Google Cloud .
- אם חלונית המידע לא פתוחה, לוחצים על Show info panel.
- בטבלה Resources, מרחיבים את הארגון שמכיל את התיקייה.
- ברשימת המשאבים של הארגון, בוחרים את התיקייה שרוצים לנהל.
- בחלונית המידע, לוחצים על Add principal.
- בשדה Add principals, מזינים את כתובת האימייל שרוצים לתת לה הרשאות.
- בתפריט Select a role, בוחרים בקטגוריה Resource Manager ואז בוחרים את התפקיד שרוצים להקצות, למשל Folder Admin.
- כדי להקצות את התפקיד החדש, לוחצים על Save.
gcloud
כדי להקצות את התפקיד Folder Admin לישות מורשית באמצעות 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 תווים.
- השם צריך להיות שונה מכל התיקיות האחרות שמשותפות לאותה תיקיית הורה.
כדי ליצור תיקייה:
המסוף
כדי ליצור תיקיות, מבצעים את הפעולות הבאות:
נכנסים לדף Manage resources במסוף Google Cloud :
לוחצים על יצירת תיקייה ובוחרים באחת מהאפשרויות הבאות:
- תיקייה רגילה ב-Google Cloud: משאב תיקייה רגיל.
- תיקייה תואמת: תיקיית Assured Workloads, שמספקת אמצעי בקרה נוספים על משאבי Google Cloud בהתאם לרגולציה, לאזור או לריבונות. אם תבחרו באפשרות הזו, תועברו אל Assured Workloads כדי ליצור תיקייה.
בתיבה שם התיקייה, מזינים את השם של התיקייה החדשה.
בקטע Parent resource, לוחצים על Browse ובוחרים את משאב הארגון או התיקייה שבהם רוצים ליצור את התיקייה החדשה.
- לוחצים על יצירה.
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.
התגובה של Create Folder:
אם קריאה רושמת פעולה בהצלחה, גוף התגובה מכיל מופע של 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"
}
}
הוספת תגים במהלך יצירת תיקייה
תגים מאפשרים ליצור הערות למשאבים. אפשר להוסיף תגים כשיוצרים תיקיות. כדי לעשות את זה, צריך להקצות את התפקיד משתמש בתג. למידע נוסף על ההרשאות שכלולות בתפקיד הזה, קראו את המאמר יצירה וניהול של תגים. אפשר להוסיף את מרחב השמות של צמדי המפתח/ערך של התגים רק באחת מהדרכים הבאות:
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.
המסוף
- פותחים את הדף Manage resources במסוף Google Cloud .
- מאתרים את התיקייה ברשימת המשאבים. מזהה התיקייה מוצג בעמודה ID לצד השם המוצג של התיקייה.
gcloud
כדי לאתר את מזהה התיקייה, מריצים את הפקודה הבאה:
gcloud resource-manager folders list --organization=ORGANIZATION_ID
עיכוב בהפצה
כשיוצרים תיקייה חדשה, יכול להיות שיעבור קצת זמן עד שהיא תופץ במערכות הגלובליות שלנו ותופיע במסוף Google Cloud .
בדרך כלל העיכוב בהפצה נמשך כמה דקות, אבל במקרים נדירים הוא יכול להימשך יותר זמן. אתם יכולים לאמת את יצירת התיקייה באופן מיידי באמצעות כלי שורת הפקודה gcloud או ה-API.
מחיקת תיקיות
כדי למחוק תיקייה, צריך להיות לכם את התפקיד "Folder Admin" (roles/resourcemanager.folderAdmin) או "עריכת תיקיות" (roles/resourcemanager.folderEditor). התיקייה צריכה להיות ריקה כדי שתוכלו למחוק אותה. הוראות מפורטות זמינות במאמר מחיקת תיקיות.
הגדרת הגישה לתיקיות
כדי להגדיר גישה לתיקיות, צריך להיות לכם התפקיד אדמין IAM של תיקיות או אדמין תיקיות ברמת ההורה.
המסוף
במסוף Google Cloud , פותחים את הדף Manage Resources.
לוחצים על הרשימה הנפתחת Organization בפינה השמאלית העליונה ובוחרים את המשאב הארגוני.
מסמנים את התיבה לצד הפרויקט שרוצים לשנות את ההרשאות שלו.
ב-Info panel שבצד ימין, בקטע Permissions, מזינים את כתובות האימייל של החברים שרוצים להוסיף.
ברשימה הנפתחת Select a role, בוחרים את התפקיד שרוצים להקצות לחברים האלה.
לוחצים על הוספה. מופיעה הודעה שמאשרת את ההוספה או העדכון של התפקיד החדש של החברים.
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.
כדי להשתמש בדגל, פועלים לפי השלבים הבאים:
התחלת משימה אסינכרונית. הנה דוגמה לפקודה:
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בודקים את סטטוס הפעולה. כדי לוודא שהמשימה הסתיימה, משתמשים בפקודה
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'