הדף הזה רלוונטי ל-Apigee ול-Apigee Hybrid.
לעיון במסמכי התיעוד של
Apigee Edge
בדף הזה מוסבר איך ליצור Apigee Spaces בארגון Apigee כדי לנהל מדיניות של ניהול זהויות והרשאות גישה (IAM) למשאבי Apigee API בהיקף גדול.
במדריך הזה מפורטים השלבים הנדרשים כדי:
- איך יוצרים מרחבים
- ניהול של חברים ותפקידים במרחב
- רשימה של כל המרחבים בארגון
- איך מקבלים את פרטי המרחב
- עדכון המרחב
- מחיקת מרחב
מידע נוסף על היתרונות של שימוש ב-Apigee Spaces לניהול משאבי ה-API זמין במאמר Apigee Spaces.
לפני שמתחילים
לפני שמתחילים להשתמש במרחבים:
- הקצאת הרשאות ל-Apigee. מוודאים שהארגון עם המינוי ל-Apigee או עם התשלום לפי שימוש שבו רוצים להשתמש הוקצה. מידע נוסף על השלבים הנדרשים להקצאת Apigee זמין במאמר מבוא להקצאת משאבים.
- איך מקבלים את פרטי הכניסה לאימות לפני שמריצים פקודות ליצירה ולניהול של מרחבים בשורת הפקודה, צריך לקבל את פרטי האימות של
gcloudבאמצעות הפקודה הבאה:export TOKEN=$(gcloud auth print-access-token)
תפקידים והרשאות נדרשים
Make sure that you have the following role or roles on the project: Apigee > Apigee Organization Admin
Check for the roles
-
In the Google Cloud console, go to the IAM page.
Go to IAM - Select the project.
-
In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.
- For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.
Grant the roles
-
In the Google Cloud console, go to the IAM page.
כניסה לדף IAM - בוחרים את הפרויקט.
- לוחצים על Grant access.
-
בשדה New principals, מזינים את מזהה המשתמש. בדרך כלל מזהה המשתמש הוא כתובת האימייל של חשבון Google.
- לוחצים על בחירת תפקיד ומחפשים את התפקיד.
- כדי לתת עוד תפקידים, לוחצים על Add another role ומוסיפים את כולם.
- לוחצים על Save.
- ORG_NAME הוא השם של הארגון שלכם ב-Apigee.
- SPACE_NAME הוא השם והמזהה של המרחב.
- DISPLAY_NAME הוא השם של הסביבה כמו שהוא אמור להופיע בממשק המשתמש של Apigee במסוף Cloud. אם לא תספקו שם לתצוגה, המערכת תשתמש בשם המרחב כשם לתצוגה.
- רשימת המשתמשים במרחב
- התפקיד או רשימת התפקידים שהוענקו לחברים
- ORG_NAME הוא שם הארגון ב-Apigee.
- SPACE_NAME הוא שם המרחב.
- USER_EMAIL היא כתובת האימייל של המשתמש שאתם מוסיפים למרחב.
- IAM_ROLE הוא השם של תפקיד ה-IAM שאתם מקצים למשתמש כחבר במרחב.
- ORG_NAME הוא שם הארגון ב-Apigee.
- SPACE_NAME הוא שם המרחב.
- GROUP_EMAIL היא כתובת האימייל של הקבוצה שאתם מוסיפים למרחב.
- IAM_ROLE הוא השם של תפקיד ה-IAM שאתם מקצים לצוות כחבר במרחב.
- ORG_NAME הוא שם הארגון ב-Apigee.
- SPACE_NAME הוא שם המרחב.
- ORG_NAME הוא שם הארגון ב-Apigee.
- SPACE_NAME הוא שם המרחב.
- ORG_NAME הוא שם הארגון ב-Apigee.
- SPACE_NAME הוא השם והמזהה של המרחב.
- DISPLAY_NAME הוא השם המוצג החדש של המרחב.
- מידע נוסף על Apigee Spaces
- איך מנהלים משאבי API באמצעות Apigee Spaces
- מעיינים בחומרי העזר בנושא ניהול זהויות והרשאות גישה (IAM).
יצירת מרחב
כדי לבצע את המשימה הזו נדרשת ההרשאה apigee.spaces.create.
ההרשאה הזו כלולה בתפקיד Apigee Organization Admin.
כדי ליצור מרחב בארגון Apigee, משתמשים בפקודה הבאה:
curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
"https://apigee.googleapis.com/v1/organizations/ORG_NAME/spaces" \
--data-raw '{
"name":"SPACE_NAME",
"displayName":"DISPLAY_NAME",
}'כאשר:
לדוגמה, הפקודה הבאה יוצרת מרחב בשם red בארגון acme:
curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
https://apigee.googleapis.com/v1/organizations/acme/spaces \
--data-raw '{
"name":"red",
"displayName":"Red",
}'אחרי שיוצרים מרחב בארגון, חברי הארגון שמשתמשים בממשק המשתמש של Apigee במסוף Cloud יכולים לראות את המרחב כפרמטר זמין כשהם יוצרים משאבי API בממשק המשתמש. בנוסף, כשמציגים רשימות של שרתי proxy ל-API, מוצרי API ורכיבי זרימה משותפים בממשק המשתמש, המרחב יופיע כמאפיין של משאבי API שהוקצו למרחב הזה.
מרחבים.ניהול המשתתפים והתפקידים במרחב
אחרי שיוצרים מרחב, אפשר להוסיף אליו חברי צוות ולהקצות להם את תפקידי ה-IAM שנדרשים כדי ליצור ולנהל משאבי API במרחב. משתמשי Apigee יכולים ליצור ולנהל משאבים רק במרחבים שבהם הם חברים בצוות וקיבלו את ההרשאות המתאימות. בגלל שבקרת הגישה ב-IAM ניתנת ברמת המרחבים, חברי הארגון לא יכולים לגשת למשאבי Apigee API ששייכים למרחב או לנהל אותם, אלא אם הם נוספו למרחב באופן ספציפי. במאמר יצירה וניהול של משאבים במרחב מופיעה סקירה כללית של התפקידים וההרשאות ב-IAM שנדרשים לניהול משאבים במרחב.
איך מצרפים אנשים מהארגון למרחבים
כשמוסיפים משתמש בארגון למרחב, נוצרת למרחב הזה קשירה של מדיניות IAM עם שני ארגומנטים:
כדי לבצע את המשימה הזו נדרשת ההרשאה apigee.spaces.setIamPolicy.
ההרשאה הזו כלולה בתפקיד Apigee Organization Admin.
כדי להוסיף חבר בארגון למרחב ולהקצות לו תפקיד IAM, משתמשים בפקודה הבאה:
curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-type: application/json" \ "https://apigee.googleapis.com/v1/organizations/ORG_NAME/spaces/SPACE_NAME:setIamPolicy" -d \ '{ "policy":{ "bindings":[ { "members": ["user:USER_EMAIL"], "role": "roles/IAM_ROLE" } ] } }'
כאשר:
לדוגמה, הפקודה הזו מוסיפה את המשתמש my-email@acme.com למרחב red בארגון acme, ומקצה את תפקיד ה-IAM apigee.spaceContentEditor:
curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-type: application/json" \ "https://apigee.googleapis.com/v1/organizations/acme/spaces/red:setIamPolicy" -d \ '{ "policy":{ "bindings":[ { "members": ["user:my-email@acme.com"], "role": "roles/apigee.spaceContentEditor" } ] } }'
אפשר להוסיף תפקידים והרשאות נוספים לחברי המרחב על ידי עדכון מדיניות IAM של המרחב. כדי לעדכן את מדיניות ה-IAM של מרחב, משתמשים ב-method setIamPolicy שמתוארת בקטע הזה, עם הרשימה המתוקנת של התפקידים וההרשאות הרצויים. פעולה זו תיצור מדיניות IAM חדשה למרחב, עם תפקידים והרשאות מותאמים.
איך מוסיפים צוות של אנשים למרחב
אפשר גם להוסיף צוות של משתמשים למרחב ולהקצות לו תפקיד או תפקידים ב-IAM. כדי להוסיף צוות של חברים למרחב ולהקצות תפקיד IAM, משתמשים בפקודה הבאה:
curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-type: application/json" \ "https://apigee.googleapis.com/v1/organizations/ORG_NAME/spaces/SPACE_NAME:setIamPolicy" -d \ '{ "policy":{ "bindings":[ { "members": ["group:GROUP_EMAIL"], "role": "roles/IAM_ROLE" } ] } }'
כאשר:
לדוגמה, הפקודה הזו מוסיפה את הקבוצה acme-team@acme.com למרחב red בארגון acme ומקצה לקבוצה את התפקיד apigee.spaceContentEditor:
curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-type: application/json" \ "https://apigee.googleapis.com/v1/organizations/acme/spaces/red:setIamPolicy" -d \ '{ "policy":{ "bindings":[ { "members": ["group:red-team@acme.com"], "role": "roles/apigee.spaceContentEditor" } ] } }'
כפי שצוין במאמר הוספת משתמשים בארגון למרחב, תפקיד ה-IAM apigee.spaceContentEditor כולל רבות מההרשאות שנדרשות לניהול משאבים במרחב.
עם זאת, יכול להיות שתצטרכו להעניק למשתמשים תפקידים נוספים כדי לבצע משימות ספציפיות.
אימות הקצאת מדיניות IAM של Spaces
כדי לבצע את המשימה הזו נדרשת ההרשאה apigee.spaces.getIamPolicy.
ההרשאה הזו כלולה בתפקיד Apigee Organization Admin.
כדי לוודא שמדיניות ה-IAM מוגדרת בצורה נכונה למרחב, משתמשים בפקודה הבאה:
curl -X GET -H "Authorization: Bearer $TOKEN" \
"https://apigee.googleapis.com/v1/organizations/ORG_NAME/spaces/SPACE_NAME:getIamPolicy"כאשר:
לדוגמה, הפקודה הבאה משמשת כדי לוודא שמדיניות ה-IAM מוגדרת בצורה נכונה למרחב red בארגון acme:
curl -X GET -H "Authorization: Bearer $TOKEN" \
"https://apigee.googleapis.com/v1/organizations/acme/spaces/red:getIamPolicy"הפלט של הפקודה מחזיר את מדיניות ה-IAM הנוכחית של המרחב, והוא אמור להיראות כך:
{ "version": "0", "bindings": [ { "role": "roles/apigee.spaceContentEditor", "members": [ "group:red-team@acme.com" ] } ] }
בדוגמה הזו, מדיניות ה-IAM של המרחב מעניקה את התפקיד apigee.spaceContentEditor לחברים במרחב, ובמקרה הזה, לחברים בקבוצה red-team@acme.com.
שימו לב שרק חברי צוות האדום הם חברים בארגון שקיבלו גישה למרחב האדום. כלומר, רק חברי הצוות האדום יכולים ליצור ולנהל משאבי API במרחב האדום. אם חברים בצוות אחר בארגון, כמו team-blue@acme.com, ינסו לגשת ל-proxy ל-API שנוצר במרחב red, תוצג להם השגיאה הבאה:
{
"error": {
"code": 403,
"message": "Permission denied on resource \"organizations\/acme\/apis\/proxy-1\" (or it may not exist).",
"status": "PERMISSION_DENIED"
}
}הסרת משתמשים ממרחב
כדי להסיר משתתפים או קבוצת משתתפים ממרחב, צריך להגדיר מדיניות IAM חדשה למרחב, עם רשימה מעודכנת של משתתפים או קבוצות. שימוש בשיטה setIamPolicy ייצור מדיניות IAM חדשה למרחב, עם תפקידים וחברים מותאמים בהתאם.
לדוגמה, כדי לעדכן את חברי המרחב של צוות blue, אפשר קודם לבדוק את מדיניות ה-IAM הנוכחית באמצעות הפקודה הבאה:
curl -X GET -H "Authorization: Bearer $TOKEN" \ "https://apigee.googleapis.com/v1/organizations/acme/spaces/blue:getIamPolicy"
הפלט של הפקודה מחזיר את מדיניות ה-IAM הנוכחית של המרחב, והוא אמור להיראות כך:
{ "version": "0", "bindings": [ { "role": "roles/apigee.spaceContentEditor", "members": [ "group: blue-team@acme.com", "users: user-a@acme.com, user-b@acme.com, user-c@acme.com" ] } ] }
כדי להסיר את user-b@acme.com מהמרחב, משתמשים בפקודה הבאה:
curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-type: application/json" \ "https://apigee.googleapis.com/v1/organizations/acme/spaces/blue:setIamPolicy" -d \ '{ "policy":{ "bindings":[ { "members": [ "group:blue-team@acme.com", "users: user-a@acme.com, user-c@acme.com" ] "role": "roles/apigee.spaceContentEditor" } ] } }'
מדיניות ה-IAM החדשה של המרחב לא תכלול יותר את user-b@acme.com.
כדי להסיר חבר מקבוצה שכלולה בחלל, קודם צריך להסיר את החבר מהקבוצה ואז להריץ מחדש את הפקודה setIamPolicy כדי לעדכן את מדיניות IAM של החלל עם החברות הנכונה של כתובת האימייל החלופית של הקבוצה.
הצגת רשימה של כל המרחבים בארגון
כדי לבצע את המשימה הזו נדרשת ההרשאה apigee.spaces.list.
ההרשאה הזו כלולה בתפקיד Apigee Organization Admin.
כדי לראות את כל הספייסים בארגון Apigee, משתמשים בפקודה הבאה:
curl -X GET -H "Authorization: Bearer $TOKEN" \
"https://apigee.googleapis.com/v1/organizations/ORG_NAME/spaces"כאשר ORG_NAME הוא שם הארגון ב-Apigee.
לדוגמה, הפקודה הבאה מפרטת את כל המרחבים בארגון acme:
curl -X GET -H "Authorization: Bearer $TOKEN" \
"https://apigee.googleapis.com/v1/organizations/acme/spaces"הפקודה מחזירה פלט שדומה לזה:
{
"spaces": [
{
"name": "red",
"createTime": "2024-08-02T23:26:03.001512Z",
"updateTime": "2024-08-02T23:26:03.001512Z"
},
{
"name": "blue",
"createTime": "2024-08-02T00:34:54.159331Z",
"updateTime": "2024-08-02T00:34:54.159331Z"
}
]
}קבלת פרטים על המרחב
כדי לבצע את המשימה הזו, נדרשת ההרשאה apigee.spaces.get.
ההרשאה הזו כלולה בתפקיד Apigee Organization Admin.
משתמשים בפקודה הבאה כדי לקבל פרטים על המרחב:
curl -X GET -H "Authorization: Bearer $TOKEN" \
"https://apigee.googleapis.com/v1/organizations/ORG_NAME/spaces/SPACE_NAME"כאשר:
לדוגמה, הפקודה הבאה מקבלת פרטים על המרחב red בארגון acme:
curl -X GET -H "Authorization: Bearer $TOKEN" \
"https://apigee.googleapis.com/v1/organizations/acme/spaces/red"הפקודה מחזירה פלט שדומה לזה:
{
"name": "red",
"createTime": "2024-08-02T23:26:03.001512Z",
"updateTime": "2024-08-02T23:26:03.001512Z"
}עדכון המרחב
כדי לבצע את המשימה הזו נדרשת ההרשאה apigee.spaces.update.
ההרשאה הזו כלולה בתפקיד Apigee Organization Admin.
כדי לעדכן מרחב בארגון Apigee, משתמשים בפקודה הבאה:
curl -X PATCH -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
"https://apigee.googleapis.com/v1/organizations/ORG_NAME/spaces/SPACE_NAME" \
--data-raw '{
"displayName":"DISPLAY_NAME"
}'כאשר:
לדוגמה, הפקודה הבאה מעדכנת את השם המוצג של המרחב red בארגון acme:
curl -X PATCH -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
"https://apigee.googleapis.com/v1/organizations/acme/spaces/red" -d \
'{
"displayName": "Red team space"
}'מחיקת מרחב
כדי לבצע את המשימה הזו נדרשת ההרשאה apigee.spaces.delete.
ההרשאה הזו כלולה בתפקיד Apigee Organization Admin. לפני שמוחקים מרחב, צריך לוודא שכל המשאבים במרחב נמחקו גם כן.
כדי למחוק מרחב בארגון Apigee, משתמשים בפקודה הבאה:
curl -X DELETE -H "Authorization: Bearer $TOKEN" \
"https://apigee.googleapis.com/v1/organizations/ORG_NAME/spaces/SPACE_NAME"לדוגמה, הפקודה הבאה מוחקת את המרחב red בארגון acme:
curl -X DELETE -H "Authorization: Bearer $TOKEN" \
"https://apigee.googleapis.com/v1/organizations/acme/spaces/red"אם תנסו למחוק מרחב עם משאבים פעילים שעדיין משויכים אליו, תופיע הודעת השגיאה הבאה:
{
"error": {
"code": 400,
"message": "Space \"red\" has resources associated with it. Please delete the resources before deleting the space.",
"status": "FAILED_PRECONDITION"
}
}כדי לפתור את השגיאה, צריך למחוק את המשאבים במרחב או להעביר אותם לפני שמנסים למחוק את המרחב.