בדף הזה מוסבר איך ליצור תיקיות כדי לקבץ ולארגן פרויקטים בהיררכיית משאבים. 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 שיש להם משאב ארגון. מידע נוסף על קבלת משאב ארגון זמין במאמר קבלת משאב ארגון.
אם אתם רוצים לדעת איך הכי כדאי להשתמש בתיקיות, מומלץ:
- מומלץ לעיין במאמר בקרת גישה לתיקיות שמשתמשות ב-IAM. במאמר הזה מוסבר איך לקבוע למי תהיה גישה לתיקיות ולמשאבים שהן מכילות.
- איך מגדירים הרשאות לתיקיות תיקיות תומכות במספר תפקידים שונים ב-IAM (המערכת לניהול הזהויות והרשאות הגישה). אם רוצים להגדיר הרשאות באופן רחב כדי שהמשתמשים יוכלו לראות את המבנה של הפרויקטים שלהם, צריך להקצות לדומיין כולו את התפקידים צפייה בארגון וצפייה בתיקייה ברמת משאב הארגון. כדי להגביל את הגישה לענפים בהיררכיית התיקיות, צריך להקצות את התפקיד Folder Viewer לתיקייה או לתיקיות שרוצים שהמשתמשים יוכלו לראות.
- יצירת תיקיות כשמתכננים איך לארגן את משאבי Cloud, מומלץ להתחיל עם תיקייה אחת כארגז חול שבו אפשר להתנסות בהיררכיות שונות כדי להבין איזו היררכיה הכי מתאימה למשאב הארגוני. אפשר לחשוב על תיקיות במונחים של גבולות בידוד בין משאבים ונקודות חיבור למדיניות גישה והגדרות. אפשר ליצור תיקיות שיכילו משאבים ששייכים למחלקות שונות, ולהקצות תפקידי אדמין בתיקיות כדי להעניק הרשאות אדמין. אפשר גם להשתמש בתיקיות כדי לקבץ משאבים ששייכים לאפליקציות או לסביבות שונות, כמו פיתוח, ייצור ובדיקה. כדי לדמות את התרחישים השונים האלה, אפשר להשתמש בתיקיות מקוננות.
מצב נפוץ הוא יצירה של תיקיות שמכילות תיקיות או פרויקטים נוספים, כמו שמוצג בהיררכיית המשאבים שצוינה קודם. המבנה הזה נקרא היררכיית תיקיות. כשיוצרים היררכיית תיקיות, חשוב לזכור את הנקודות הבאות:
- אפשר להציב תיקיות בתוך תיקיות עד 10 (עשר) רמות עומק.
- תיקיית הורה לא יכולה להכיל יותר מ-300 תיקיות. הכוונה היא רק לתיקיות צאצא ישירות. תיקיות המשנה האלה יכולות להכיל תיקיות או פרויקטים נוספים.
- השמות לתצוגה של התיקיות צריכים להיות ייחודיים באותה רמה בהיררכיה.
הגדרת הרשאות לניהול תיקיות
כדי לגשת לתיקיות ולנהל אותן, צריך להקצות תפקידי IAM ספציפיים לתיקיות לקבוצות משתמשים ספציפיות. מידע נוסף על התפקידים האלה מופיע במאמר בקרת גישה לתיקיות באמצעות IAM. מומלץ גם לעיין בשיטות המומלצות שלנו כדי לזהות את ההגדרה האופטימלית להרשאות התיקיות.
כדי לנהל תיקיות עבור משאב הארגון כולו, צריך את התפקיד Folder Admin (אדמין תיקיות). התפקיד הזה מעניק למשתמש הרשאה ליצור, לערוך, למחוק, להעביר ולשנות הרשאות IAM בתיקיות, וגם הרשאה להעביר פרויקטים בין תיקיות.
בהתחלה, רק אדמינים ארגוניים יכולים להקצות את התפקיד 'Folder Admin' למשאב הארגון. חשבונות נוספים שמוקצה להם התפקיד הזה יכולים להעניק אותו לחשבונות אחרים.
כדי להגדיר הרשאות לתיקייה:
המסוף
- במסוף Cloud de Confiance , פותחים את הדף Manage resources.
- אם חלונית המידע לא פתוחה, לוחצים על Show info panel.
- בטבלה משאבים, מרחיבים את הארגון שמכיל את התיקייה.
- ברשימת המשאבים שמתחת לארגון, בוחרים את התיקייה שרוצים לנהל.
- בחלונית המידע, לוחצים על Add principal.
- בשדה Add principals, מזינים את כתובת האימייל שרוצים להעניק לה הרשאות.
- בתפריט Select a role (בחירת תפקיד), בוחרים בקטגוריה Resource Manager (מנהל המשאבים), ואז בוחרים את התפקיד שרוצים להקצות, כמו Folder Admin (אדמין של תיקייה).
- כדי להעניק את התפקיד החדש, לוחצים על 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 תווים.
- השם צריך להיות שונה מכל שאר התיקיות שמשותפות עם תיקיית ההורה.
כדי ליצור תיקייה, פועלים לפי השלבים הבאים:
המסוף
אפשר ליצור תיקיות בממשק המשתמש באמצעות הקטע 'ניהול פרויקטים ותיקיות'.
נכנסים לדף Manage resources במסוף Cloud de Confiance :
מוודאים ששם משאב הארגון נבחר ברשימה הנפתחת של הארגון בחלק העליון של הדף.
לוחצים על Create folder ובוחרים באחת מהאפשרויות הבאות:
- תיקייה רגילה: משאב תיקייה רגיל.
- תיקייה תואמת: תיקייה ב-Assured Workloads, שמספקת אמצעי בקרה נוספים לצורך עמידה בדרישות רגולטוריות, אזוריות או לאומיות עבור משאבי Cloud de Confiance by S3NS . אם תבחרו באפשרות הזו, תועברו אל Assured Workloads כדי ליצור תיקייה.
בתיבה שם התיקייה, מזינים את השם החדש של התיקייה.
בקטע יעד, לוחצים על עיון, ואז בוחרים את משאב הארגון או התיקייה שרוצים ליצור בתוכם את התיקייה החדשה.
- לוחצים על יצירה.
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 של תיקייה או אדמין תיקייה ברמת ההורה.
המסוף
במסוף Cloud de Confiance , פותחים את הדף Manage Resources.
לוחצים על הרשימה הנפתחת ארגון בפינה הימנית העליונה ובוחרים את המשאב הארגוני.
מסמנים את התיבה לצד הפרויקט שרוצים לשנות את ההרשאות שלו.
בצד שמאל, בחלונית המידע, בקטע הרשאות, מזינים את כתובות האימייל של החברים שרוצים להוסיף.
ברשימה הנפתחת 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.
טיפול בפעולות ממושכות
פעולות מסוימות בתיקיות, כמו יצירה או העברה, מעובדות באופן אסינכרוני על ידי Cloud de Confiance by S3NS כי הן דורשות הפצה גלובלית. כדי למנוע חסימה של הטרמינל או של סקריפטים לאוטומציה, אפשר להשתמש בדגל --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'