בדף הזה מוסבר באופן כללי איך ליצור רמות גישה בסיסיות. כדי ליצור רמות גישה בהתאמה אישית ולהשתמש במצב מתקדם במסוף Google Cloud , קראו את המאמר יצירת רמת גישה בהתאמה אישית.
בדף הזה מפורטות הטמעות ממוקדות יותר של רמות גישה. לדוגמה:
לפני שמתחילים
יצירת רמת גישה בסיסית
המסוף
כדי ליצור רמת גישה בסיסית:
פותחים את הדף Access Context Manager במסוף Google Cloud .
אם מוצגת בקשה, בוחרים את הארגון.
בחלק העליון של הדף Access Context Manager, לוחצים על New.
בחלונית New Access Level:
בשדה Access level title, מזינים שם לרמת הגישה. הכותרת חייבת להיות באורך של עד 50 תווים, להתחיל באות ויכולה להכיל רק מספרים, אותיות, קווים תחתונים ורווחים.
בקטע Conditions, לוחצים על הלחצן add של סוג המאפיין שרוצים להוסיף, ואז מזינים את הערכים שרוצים להחיל על המאפיין הזה.
רשימה מלאה של המאפיינים שאפשר להוסיף מופיעה במאמר בנושא מאפיינים של רמות גישה.
לדוגמה, אם רוצים שרמת הגישה תתחשב במקום שממנו מגיעה הבקשה בתוך הרשת, צריך לבחור במאפיין רשתות משנה של IP.
חוזרים על השלב הזה כדי להוסיף כמה מאפיינים לאותו תנאי. כשתנאי כולל כמה מאפיינים, בקשת הגישה צריכה לעמוד בכל המאפיינים.
תנאי של רמת גישה יכול לכלול מאפיין אחד מכל סוג. חלק מהמאפיינים כוללים אפשרויות נוספות, כמו המאפיין מדיניות המכשיר.
רמות הגישה תומכות בתנאים שמבוססים על זהות המשתמש. עם זאת, כדי להוסיף זהויות לתנאי, צריך ליצור או לעדכן את רמת הגישה באמצעות ה-CLI של gcloud או ה-API.
משתמשים באפשרות When condition is met, return כדי לציין אם התנאי מוערך כפעולת AND, שבה הבקשה צריכה לעמוד בכל המאפיינים שצוינו (TRUE), או כפעולת שלילה (NAND), שבה התנאי מתקיים אם הבקשה לא עומדת לפחות במאפיין אחד שצוין (FALSE).
לדוגמה, אם רוצים לדחות בקשות מטווח מסוים של כתובות IP ברשת, מציינים את טווח כתובות ה-IP באמצעות המאפיין רשתות משנה של IP ואז מגדירים את התנאי כ-FALSE.
אם רוצים להוסיף עוד תנאי לרמת הגישה, לוחצים על Add another condition וחוזרים על שני השלבים הקודמים.
לדוגמה, אם רוצים למנוע גישה לקבוצת משנה של כתובות IP בטווח רחב יותר של כתובות IP, יוצרים תנאי חדש, מציינים את טווח כתובות ה-IP של קבוצת המשנה במאפיין רשתות משנה של IP ומגדירים שהתנאי יחזיר את הערך FALSE.
חוזרים על השלב הזה כדי להוסיף כמה תנאים לאותה רמת גישה.
אם יצרתם יותר מתנאי אחד, השתמשו באפשרות Combine condition with כדי לציין אם אתם רוצים שרמת הגישה תדרוש בקשה שתעמוד לפחות באחד מהתנאים (OR), או בכל התנאים (AND).
לוחצים על Save.
gcloud
לפני שמתחילים
- אם עדיין לא קיימת מדיניות גישה, יוצרים מדיניות גישה לארגון.
כדי ליצור רמת גישה באמצעות כלי שורת הפקודה gcloud, משתמשים בפקודה gcloud access-context-manager levels create.
gcloud access-context-manager levels create LEVEL_NAME OPTIONS \ --policy=POLICY
כאשר:
LEVEL_NAME הוא השם הייחודי של רמת הגישה. הוא חייב להתחיל באות ולכלול רק אותיות, מספרים וקווים תחתונים. השם יכול להכיל עד 50 תווים.
OPTIONS הן האפשרויות הנדרשות מהטבלה הבאה.
אפשרויות basic-level-specקובץ YAML שמציין תנאי אחד או יותר לרמת הגישה.
titleשם קצר לרמת הגישה. השם של רמת הגישה מוצג במסוף Google Cloud .
combine-function(אופציונלי) קובע איך התנאים משולבים.
ערכים תקינים:
AND, ORdescription(אופציונלי) תיאור ארוך של רמת הגישה.
POLICY הוא המזהה של מדיניות הגישה של הארגון. אם הגדרתם מדיניות ברירת מחדל, הפרמטר הזה הוא אופציונלי.
אפשר גם לכלול כל אחד מהדגלים הרחבים של gcloud.
קובץ YAML מסוג basic-level-spec
כשמשתמשים בכלי שורת הפקודה gcloud כדי ליצור רמת גישה, צריך לספק קובץ YAML לאפשרות basic-level-spec. קובץ ה-YAML מגדיר תנאי אחד או יותר לרמת הגישה. התנאים חייבים להכיל לפחות מאפיין אחד. כשתנאי מכיל יותר ממאפיין אחד, המאפיינים משולבים כפעולת AND (כולם חייבים להיות נכונים) או כפעולת NAND (לפחות אחד חייב להיות שקרי), בהתאם להגדרה של המאפיין negate בתנאי (נכון או לא נכון).
רשימה מלאה של המאפיינים שאפשר לכלול בקובץ ה-YAML מופיעה במאמר מאפיינים של רמות גישה.
למידע נוסף על רמות גישה ו-YAML, קראו את דוגמת YAML לרמת גישה.
פקודה לדוגמה
gcloud access-context-manager levels create Device_Trust \
--basic-level-spec=corpdevspec.yaml \
--combine-function=AND \
--description='Access level that conforms to corporate spec.' \
--title='Device_Trust Extended' \
--policy=1521580097614100
API
לפני שמתחילים
- אם עדיין לא קיימת מדיניות גישה, יוצרים מדיניות גישה לארגון.
כדי ליצור רמת גישה, צריך להפעיל את accessLevels.create.
POST https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY/accessLevels
כאשר:
- POLICY הוא המזהה של מדיניות הגישה של הארגון.
גוף הבקשה
גוף הבקשה חייב לכלול משאב AccessLevel שמציין את התנאים שאתם רוצים להגדיר לרמת הגישה החדשה.
לכל Condition יש מאפיין אחד או יותר שמוערכים כפעולת AND (כולם צריכים להיות נכונים) או כפעולת NAND (לפחות אחד מהם צריך להיות שקרי), בהתאם להגדרה של השדה negate כ-true. התוצאה של הערכת הביטוי קובעת אם התנאי מתקיים או לא.
גוף התשובה
אם הפעולה בוצעה ללא שגיאות, גוף התגובה לקריאה מכיל משאב Operation שמספק פרטים על הפעולה POST.
הטמעות לדוגמה
הדוגמאות הבאות כוללות כמה מהדרכים המעשיות שבהן הארגון שלכם יכול להטמיע רמות גישה. בדוגמאות האלה אנחנו מניחים שבארגון שלכם כבר יש מדיניות גישה.
הגבלת הגישה ברשת ארגונית
בדוגמה הזו מוסבר איך ליצור תנאי לרמת גישה שמאפשר גישה רק מטווח מסוים של כתובות IP (לדוגמה, כתובות בתוך רשת ארגונית).
הגבלת הטווח של כתובות ה-IP שמקבלות גישה מקשה על תוקפים מתוך הארגון או מחוצה לו לגנוב נתונים.
בדוגמה הזו, נניח שאתם רוצים ליצור רמת גישה שתאפשר לקבוצה של מבקרים פנימיים לגשת לשירות Cloud Logging בפרויקט בשם sensitive-data. לכל המכשירים של מבקרי החשבונות מוקצות כתובות IP ברשת משנה בטווח שבין 203.0.113.0 ל-203.0.113.127. אתם יודעים שלא יוקצו לרשת המשנה הזו מכשירים אחרים, מלבד אלה שמשמשים את מבקרי החשבונות.
אם אתם רוצים להשתמש בטווח כתובות IP פרטיות (לדוגמה, 192.168.0.0/16 או 172.16.0.0/12), קראו את המאמר מתן גישה למשאבים מוגנים מכתובת IP פנימית כדי לקבל מידע נוסף ודוגמה להטמעה באמצעות VPC Service Controls.
המסוף
פותחים את הדף Access Context Manager במסוף Google Cloud .
אם מוצגת בקשה, בוחרים את הארגון.
בחלק העליון של הדף Access Context Manager, לוחצים על New.
בחלונית New Access Level, בקטע Conditions, לוחצים על Add attribute ואז על IP Subnetworks.
בתיבה IP Subnetworks, בוחרים באפשרות Public IP או Private IP.
אם בוחרים באפשרות Public IP, מזינים טווח אחד או יותר של כתובות IPv4 או IPv6 בפורמט של בלוקים של CIDR.
בדוגמה הזו, כדי להגביל את הגישה רק למבקרים, מזינים
203.0.113.0/25בתיבה רשתות משנה של IP.אם בוחרים באפשרות Private IP, לוחצים על בחירת רשתות VPC. אפשר לציין רשתות VPC באמצעות אחת משלוש האפשרויות שזמינות ברשימה Import options.
אפשרות 1:
בוחרים באפשרות Browse for VPC networks in your organization ובוחרים את רשתות ה-VPC.
לוחצים על Add selected VPC networks.
לוחצים על בחירת רשתות משנה של IP ובוחרים את רשתות המשנה.
לוחצים על הוספת רשתות משנה של כתובות IP.
אפשרות שנייה:
בוחרים באפשרות Manually enter VPC network address ומזינים רשת VPC אחת או יותר.
לוחצים על Add VPC network.
לוחצים על בחירת רשתות משנה של IP ובוחרים את רשתות המשנה.
לוחצים על הוספת רשתות משנה של כתובות IP.
אפשרות 3:
בוחרים באפשרות העלאת קובץ CSV (החלפת רשתות קיימות).
אם משתמשים בקובץ CSV כדי להוסיף רשתות VPC ותת-רשתות לרמת גישה, Access Context Manager מחליף את רשתות ה-VPC ותת-הרשתות שנבחרו קודם.
לוחצים על עיון ומעלים את קובץ ה-CSV. בקובץ ה-CSV, צריך לציין את רשתות ה-VPC ואת רשתות המשנה בפורמט הבא:
VPC_NETWORK_NAME_1 | IP_RANGE_1 | IP_RANGE_2 | ... VPC_NETWORK_NAME_2 | . | . | ... . | . | . | ... . | . | . | ...
לוחצים על ייבוא רשתות.
באמצעות קובץ ה-CSV, הכלי Access Context Manager מאכלס את שמות רשתות ה-VPC ואת פרטי רשתות המשנה בתיבות VPC network address ו-IP subnetworks, בהתאמה.
למידע על הפורמט של שם רשת ה-VPC וכתובת ה-IP הפרטית, קראו את המאמר שימוש בכתובת IP פנימית ברמות גישה.
לוחצים על Save.
gcloud
יוצרים קובץ YAML לרמת גישה שכוללת טווח אחד או יותר של כתובות IPv4 או IPv6 בפורמט של בלוקים של CIDR.
בדוגמה הזו, כדי להגביל את הגישה רק למבקרים, צריך להזין את הפרטים הבאים בקובץ ה-YAML:
- ipSubnetworks: - 203.0.113.0/25אם רוצים להשתמש בכתובת IP פרטית, צריך להזין את הפרטים הבאים בקובץ ה-YAML:
- vpcNetworkSources: - vpcSubnetwork: network: VPC_NETWORK_NAME vpcIpSubnetworks: - IP_RANGEמחליפים את VPC_NETWORK_NAME ו-IP_RANGE בערכים שמתוארים בקטע שימוש בכתובת IP פנימית ברמות גישה.
שומרים את הקובץ. בדוגמה הזו, שם הקובץ הוא CONDITIONS.yaml.
יוצרים את רמת הגישה.
gcloud access-context-manager levels create NAME \ --title TITLE \ --basic-level-spec CONDITIONS.yaml \ --policy=POLICY
כאשר:
NAME הוא השם הייחודי של רמת הגישה. הוא חייב להתחיל באות ולכלול רק אותיות, מספרים וקווים תחתונים.
TITLE הוא כותרת קריאה לאנשים. הוא חייב להיות ייחודי למדיניות.
POLICY הוא המזהה של מדיניות הגישה של הארגון. אם הגדרתם מדיניות ברירת מחדל, הפרמטר הזה אופציונלי.
הפלט אמור להיראות כך:
Create request issued for: NAME Waiting for operation [accessPolicies/POLICY/accessLevels/NAME/create/1521594488380943] to complete...done. Created level NAME.
API
יוצרים גוף בקשה ליצירת משאב
AccessLevelשכולל טווח אחד או יותר של כתובות IPv4 או IPv6 בפורמט של בלוקים של CIDR.בדוגמה הזו, כדי להגביל את הגישה רק למבקרים, צריך להזין את הפרטים הבאים בגוף הבקשה:
{ "name": "NAME", "title": "TITLE", "basic": { "conditions": [ { "ipSubnetworks": [ "203.0.113.0/25" ] } ] } }
כאשר:
NAME הוא השם הייחודי של רמת הגישה. הוא חייב להתחיל באות ולכלול רק אותיות, מספרים וקווים תחתונים.
TITLE הוא כותרת קריאה לאנשים. הוא חייב להיות ייחודי למדיניות.
אם רוצים להשתמש בכתובת IP פרטית, צריך להזין את הפרטים הבאים בגוף הבקשה:
{ "name": "NAME", "title": "TITLE", "basic": { "conditions": [ { "vpcNetworkSources": [ { "vpcSubnetwork": { "network": VPC_NETWORK_NAME, "vpcIpSubnetworks": [ IP_RANGE ] } } ] } ] } }
מחליפים את VPC_NETWORK_NAME ו-IP_RANGE בערכים שמתוארים בקטע שימוש בכתובת IP פנימית ברמות גישה.
יוצרים את רמת הגישה באמצעות קריאה ל-
accessLevels.create.POST https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY/accessLevels
כאשר:
- POLICY הוא המזהה של מדיניות הגישה של הארגון.
הגבלת הגישה לפי מאפייני המכשיר
בדוגמה הזו נסביר איך ליצור רמת גישה שנותנת גישה רק למכשירים שעומדים בדרישות מסוימות, כמו גרסה מסוימת של מערכת ההפעלה.
המידע על המכשירים מועבר ל-Access Context Manager באמצעות אימות של נקודות קצה (endpoint). כדי לקבוע אם להעניק גישה, אפשר לבדוק את הקריטריונים הבאים:
- נעילת המסך מופעלת
- הצפנת האחסון מופעלת
- במכשיר פועלת מערכת הפעלה מסוג ובגרסה שצוינו
בדוגמה הזו, נניח שבארגון שלכם משתמשים רק במחשבים שמותקנת בהם מערכת ההפעלה ChromeOS או Windows. כדי להוסיף שכבת אבטחה, אתם רוצים ליצור רמת גישה שתמנע גישה לכל מי שמשתמש במערכות הפעלה אחרות. בנוסף, כדי לנהל את הסיכונים, אתם רוצים לוודא שרק גרסאות מסוימות של מערכות ההפעלה יכולות לקבל גישה.
המסוף
פותחים את הדף Access Context Manager במסוף Google Cloud .
אם מוצגת בקשה, בוחרים את הארגון.
בחלק העליון של הדף Access Context Manager, לוחצים על New.
בחלונית New Access Level, בקטע Conditions, לוחצים על Add attribute ואז על Device Policy.
מוסיפים את מאפייני מדיניות המכשיר:
לוחצים על הוספת מדיניות של מערכת ההפעלה ואז על מדיניות של ChromeOS.
בתיבה גרסה מינימלית, מזינים את הגרסה המינימלית של ChromeOS שרוצים לאפשר.
חוזרים על שלבים 1 ו-2 עבור מדיניות מערכת ההפעלה Windows.
לוחצים על Save.
gcloud
יוצרים קובץ YAML לרמת גישה שכוללת מדיניות מכשירים עם אילוצים של מערכת ההפעלה.
בדוגמה הזו, כדי לאפשר רק למכשירים עם גרסה מינימלית מקובלת של ChromeOS ו-Windows, צריך להזין את הפרטים הבאים בקובץ ה-YAML:
- devicePolicy: osConstraints: - osType: DESKTOP_CHROME_OS minimumVersion: 11316.165.0 - osType: DESKTOP_WINDOWS minimumVersion: 10.0.1809שומרים את הקובץ. בדוגמה הזו, שם הקובץ הוא CONDITIONS.yaml.
יוצרים את רמת הגישה.
gcloud access-context-manager levels create NAME \ --title TITLE \ --basic-level-spec CONDITIONS.yaml \ --policy=POLICY
כאשר:
NAME הוא השם הייחודי של רמת הגישה. הוא חייב להתחיל באות ולכלול רק אותיות, מספרים וקווים תחתונים.
TITLE הוא כותרת קריאה לאנשים. הוא חייב להיות ייחודי למדיניות.
POLICY הוא המזהה של מדיניות הגישה של הארגון. אם הגדרתם מדיניות ברירת מחדל, הפרמטר הזה אופציונלי.
הפלט אמור להיראות כך:
Create request issued for: NAME Waiting for operation [accessPolicies/POLICY/accessLevels/NAME/create/1521594488380943] to complete...done. Created level NAME.
API
יוצרים גוף בקשה ליצירת משאב
AccessLevelשכולל מדיניות מכשיר עם אילוצי מערכת הפעלה.בדוגמה הזו, כדי לאפשר רק מכשירים עם גרסה מינימלית קבילה של ChromeOS ו-Windows, צריך להזין את הפרטים הבאים בגוף הבקשה:
{ "name": "NAME", "title": "TITLE", "basic": { "conditions": [ { "devicePolicy": { "osConstraints": [ { "osType": "DESKTOP_CHROME_OS", "minimumVersion": "11316.165.0" }, { "osType": "DESKTOP_WINDOWS", "minimumVersion": "10.0.1809" } ] } } ] } }
כאשר:
NAME הוא השם הייחודי של רמת הגישה. הוא חייב להתחיל באות ולכלול רק אותיות, מספרים וקווים תחתונים.
TITLE הוא כותרת קריאה לאנשים. הוא חייב להיות ייחודי למדיניות.
יוצרים את רמת הגישה באמצעות קריאה ל-
accessLevels.create.POST https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY/accessLevels
כאשר:
- POLICY הוא המזהה של מדיניות הגישה של הארגון.
מתן גישה לפי משתמש או חשבון שירות
רמות הגישה של משתמשים אנושיים משלבות לעיתים קרובות זהות עם הקשרים אחרים, כמו כתובות IP. לעומת זאת, רמות הגישה של חשבונות שירות מוגדרות על סמך הזהות הספציפית של חשבון השירות. לדוגמה, כדי ליצור אינטראקציה עם שירותי Google Cloud אחרים, צריך זהות ב-Cloud Functions.
במידע הבא מוסבר איך להעניק גישה למשתמשים ולחשבונות שירות ספציפיים, תוך הכללת רמות גישה קיימות כדי להציג דוגמה לרמות גישה בתצוגת עץ. במקרה כזה, המשתמשים שצוינו נכללים ברמת הגישה הזו, גם אם הם לא עומדים בתנאים שצוינו ברמות הגישה הקיימות. רמת הגישה החדשה הזו יכולה להיחשב כרמה פחות מגבילה מרמות הגישה הקיימות.
המסוף
בשלב הזה, אי אפשר להוסיף חשבונות משתמשים לרמות גישה במסוף Google Cloud . כדי להוסיף חשבונות משתמשים לרמות גישה, צריך להשתמש בכלי שורת הפקודה gcloud או ב-API.
gcloud
יוצרים קובץ YAML שמכיל תנאי עם רשימה של חשבונות המשתמשים שרוצים לתת להם גישה.
מוסיפים אדמין מערכת (
sysadmin@example.com) וחשבון שירות (service@project.iam.gserviceaccount.com).- members: - user:sysadmin@example.com - serviceAccount:service@project.iam.gserviceaccount.comמוסיפים תנאי שמפרט את רמות הגישה הקיימות שרוצים לכלול ברמת הגישה הזו.
בדוגמה הזו, נניח שרמות הגישה נקראות
Device_Trustו-IP_Trust, ו-247332951433הוא השם של מדיניות בקרת הגישה.- members: - user:sysadmin@example.com - serviceAccount:service@project.iam.gserviceaccount.com - requiredAccessLevels: - accessPolicies/247332951433/accessLevels/Device_Trust - accessPolicies/247332951433/accessLevels/IP_Trustשומרים את הקובץ. בדוגמה הזו, שם הקובץ הוא CONDITIONS.yaml.
יוצרים את רמת הגישה באמצעות הפקודה
create.gcloud access-context-manager levels create NAME \ --title TITLE \ --basic-level-spec CONDITIONS.yaml \ --combine-function=OR \ --policy=POLICY
כאשר:
NAME הוא השם הייחודי של רמת הגישה. הוא חייב להתחיל באות ולכלול רק אותיות, מספרים וקווים תחתונים.
TITLE הוא כותרת קריאה לאנשים. הוא חייב להיות ייחודי למדיניות.
POLICY הוא המזהה של מדיניות הגישה של הארגון. אם הגדרתם מדיניות ברירת מחדל, הפרמטר הזה הוא אופציונלי.
הערך של
combine-functionהואOR. ערך ברירת המחדל,AND, דורש שכל התנאים יתקיימו לפני שרמת הגישה תוענק. הערךORייתן לחשבונות המשתמשים גישה גם אם לא מתקיימים תנאים אחרים.
הפלט אמור להיראות כך:
Create request issued for: NAME Waiting for operation [accessPolicies/POLICY/accessLevels/NAME/create/1521594488380943] to complete...done. Created level NAME.
API
יוצרים גוף בקשה ליצירת משאב
AccessLevelשכולל תנאי עם רשימת חשבונות המשתמשים שרוצים לתת להם גישה.בדוגמה הזו, אתם רוצים להוסיף את מנהל המערכת (
sysadmin@example.com) וחשבון שירות (service@project.iam.gserviceaccount.com).{ "name": "NAME", "title": "TITLE", "basic": { "conditions": [ { "members": [ "user:sysadmin@example.com", "serviceAccount:service@project.iam.gserviceaccount.com" ] } ] } }
כאשר:
NAME הוא השם הייחודי של רמת הגישה. הוא חייב להתחיל באות ולכלול רק אותיות, מספרים וקווים תחתונים.
TITLE הוא כותרת קריאה לאנשים. הוא חייב להיות ייחודי למדיניות.
מוסיפים תנאי שמפרט את רמות הגישה הקיימות שרוצים לכלול ברמת הגישה הזו.
בדוגמה הזו, נניח שרמות הגישה נקראות
Device_Trustו-IP_Trust, ושהשם של מדיניות בקרת הגישה הוא247332951433.{ "name": "NAME", "title": "TITLE", "basic": { "conditions": [ { "members": [ "user:sysadmin@example.com", "serviceAccount:service@project.iam.gserviceaccount.com" ] }, { "requiredAccessLevels": [ "accessPolicies/247332951433/accessLevels/Device_Trust", "accessPolicies/247332951433/accessLevels/IP_Trust" ] } ] } }
מגדירים את
combiningFunctionלהיותOR.ערך ברירת המחדל של
combiningFunction,AND, דורש שכל התנאים יתקיימו לפני שתינתן רמת גישה. הערךORייתן לחשבונות המשתמשים גישה גם אם תנאים אחרים, כמו כתובת IP או תנאים שעוברים בירושה מרמות גישה נדרשות אחרות, לא מתקיימים.{ "name": "NAME", "title": "TITLE", "basic": { "conditions": [ { "members": [ "user:sysadmin@example.com", "serviceAccount:service@project.iam.gserviceaccount.com" ] }, { "requiredAccessLevels": [ "accessPolicies/247332951433/accessLevels/Device_Trust", "accessPolicies/247332951433/accessLevels/IP_Trust" ] } ], "combiningFunction": "OR" } }
יוצרים את רמת הגישה באמצעות קריאה ל-
accessLevels.create.POST https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY/accessLevels
כאשר:
- POLICY הוא המזהה של מדיניות הגישה של הארגון.