בדף הזה מוסבר איך ליצור מאגר עם כללי סינון לפי כתובת IP. יצירת קטגוריה עם סינון לפי כתובת IP מאפשרת לשלוט בגישה לקטגוריות על ידי בדיקת בקשות נכנסות מול כתובות ה-IP שצוינו בכללי הסינון לפי כתובת IP של הקטגוריה. פרטים נוספים זמינים במאמר בנושא סינון כתובות IP של קטגוריות.
מידע על יצירה או עדכון של כללי סינון לפי כתובת IP בדלי קיים זמין במאמר עדכון כללי סינון לפי כתובת IP בדלי.
התפקידים הנדרשים
כדי לקבל את ההרשאות הנדרשות ליצירת קטגוריה עם כללי סינון לפי כתובת IP, צריך לבקש מהאדמין להקצות לכם את התפקיד 'אדמין לניהול אחסון' (roles/storage.admin) בקטגוריה. התפקיד הזה מכיל את ההרשאות שנדרשות ליצירת קטגוריה עם כללי סינון לפי כתובת IP.
כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
storage.buckets.createstorage.buckets.setIpFilter
אפשר לקבל את ההרשאות האלה גם באמצעות תפקידים בהתאמה אישית. יכול להיות שאפשר לקבל את ההרשאות האלה גם עם תפקידים אחרים שהוגדרו מראש. במאמר תפקידי IAM ל-Cloud Storage מפורטים התפקידים השונים וההרשאות שמשויכות אליהם.
במאמר הגדרה וניהול של מדיניות IAM בקטגוריות מוסבר איך מקצים תפקידים בקטגוריות.
יצירת קטגוריה עם כללי סינון לפי כתובת IP
Google Cloudgcloud
מוודאים שמותקנת אצלכם גרסה 526.0.0 או גרסה מתקדמת יותר של Google Cloud CLI:
gcloud version | head -n1אם מותקנת אצלכם גרסה קודמת של ה-CLI של gcloud, צריך לעדכן את הגרסה:
gcloud components update --version=526.0.0יוצרים קובץ JSON שמגדיר את הכללים לבקשות נכנסות. במאמר הגדרות של סינון לפי כתובת IP של דלי אפשר למצוא דוגמאות ומידע על האופן שבו צריך לבנות את הכללים של סינון לפי כתובת IP של דלי.
{ "mode":"MODE", "publicNetworkSource":{ "allowedIpCidrRanges":[ "RANGE_CIDR", "..." ] }, "vpcNetworkSources":[ { "network":"projects/PROJECT_ID/global/networks/NETWORK_NAME", "allowedIpCidrRanges":[ "RANGE_CIDR", "..." ] }, "..." ], "allowCrossOrgVpcs":ALLOW_CROSS_ORG_VPCS, "allowAllServiceAgentAccess": ALLOW_ALL_SERVICE_AGENT_ACCESS }
כאשר:
MODEהוא המצב של הגדרת סינון כתובות ה-IP של הקטגוריה. הערכים התקינים הםEnabledו-Disabled. כשמגדירים את האפשרותEnabled, כללי סינון לפי כתובת IP חלים על קטגוריה. כל בקשה נכנסת לדלי נבדקת בהתאם לכללים האלה. אם מגדירים את האפשרותDisabled, כל הבקשות הנכנסות מקבלות הרשאה לגשת לקטגוריה.
RANGE_CIDRהוא טווח כתובות IPv4 או IPv6 של רשת ציבורית שיש לה הרשאה לגשת לקטגוריה. אפשר להזין טווח כתובות אחד או יותר כרשימה.
PROJECT_IDהוא מזהה הפרויקט שבו קיימת רשת הענן הווירטואלי הפרטי (VPC). כדי להגדיר כמה רשתות VPC, צריך לציין את הפרויקט שבו נמצאת כל רשת.
NETWORK_NAMEהוא השם של רשת ה-VPC שמורשית לגשת לקטגוריה. כדי להגדיר כמה רשתות VPC, צריך לציין שם לכל רשת.
ALLOW_CROSS_ORG_VPCSהוא ערך בוליאני שמציין אם לאפשר לרשתות VPC שמוגדרות ב-vpcNetworkSourcesלהגיע מארגון אחר. השדה הזה הוא אופציונלי. אם הערך מוגדר ל-true, הבקשה מאפשרת רשתות VPC חוצות ארגונים. אם הערך הואfalse, הבקשה מגבילה את רשתות ה-VPC לאותו ארגון כמו הדלי. אם לא מציינים ערך, ערך ברירת המחדל הואfalse. השדה הזה חל רק אםvpcNetworkSourcesלא ריק.
ALLOW_ALL_SERVICE_AGENT_ACCESSהוא ערך בוליאני שמציין אם לאפשר לסוכני שירות לגשת לדלי, ללא קשר להגדרת מסנן ה-IP. אם הערך הואtrue, שירותים אחרים יכולים להשתמש בסוכני שירות כדי לגשת לדלי בלי אימות מבוסס-IP. Google Cloud
כדי ליצור קטגוריה עם כללי סינון לפי כתובת IP, מריצים את הפקודה
gcloud storage buckets createבסביבת הפיתוח:gcloud storage buckets create gs://BUCKET_NAME --ip-filter-file=IP_FILTER_CONFIG_FILE
כאשר:
-
BUCKET_NAMEהוא השם שרוצים לתת לקטגוריה, בכפוף לדרישות למתן שמות. לדוגמה,my-bucket. -
IP_FILTER_CONFIG_FILEהוא קובץ ה-JSON שמגדיר את הכללים לבקשות נכנסות.
-
API ל-JSON
התקנה והפעלה של ה-CLI של gcloud, שמאפשרות ליצור אסימון גישה לכותרת
Authorization.יוצרים קובץ JSON עם ההגדרות של הקטגוריה. הקובץ חייב לכלול את שדות ההגדרות
nameו-ipFilterשל הקטגוריה. דוגמאות ומידע על האופן שבו צריך לבנות את כללי הסינון של כתובות ה-IP של הדלי זמינים במאמר הגדרות של סינון כתובות IP בדלי.{ "name": "BUCKET_NAME", "ipFilter": { "mode": "MODE", "publicNetworkSource": { "allowedIpCidrRanges": [RANGE_CIDR, ... ] }, "vpcNetworkSources": [ {"network": "projects/PROJECT_ID/global/networks/NETWORK_NAME", "allowedIpCidrRanges": [RANGE_CIDR, ... ] }, ... ], "allowCrossOrgVpcs": ALLOW_CROSS_ORG_VPCS, "allowAllServiceAgentAccess": ALLOW_ALL_SERVICE_AGENT_ACCESS }, }
כאשר:
MODEהוא המצב של הגדרת מסנן ה-IP. הערכים התקינים הם:Enabledו-Disabled. כשמגדירים את האפשרותEnabled, כללי סינון לפי כתובת IP מוחלים על קטגוריה, וכל הבקשות הנכנסות לקטגוריה נבדקות בהתאם לכללים האלה. אם ההגדרה היאDisabled, כל הבקשות הנכנסות יכולות לגשת לקטגוריה ולנתונים שלה בלי שתיערך הערכה, אם יש לכם את הרשאות ה-IAM הנדרשות.
RANGE_CIDRהוא טווח כתובות IPv4 או IPv6 של רשת ציבורית שיש לה הרשאה לגשת לקטגוריה. אפשר להזין טווח כתובות אחד או יותר כרשימה.
PROJECT_IDהוא מזהה הפרויקט שבו קיימת רשת ה-VPC. כדי להגדיר כמה רשתות VPC, צריך לציין את הפרויקט שבו כל רשת ממוקמת.
NETWORK_NAMEהוא השם של רשת ה-VPC שמורשית לגשת לקטגוריה. כדי להגדיר כמה רשתות VPC, צריך לציין שם לכל רשת.
ALLOW_ALL_SERVICE_AGENT_ACCESSהוא ערך בוליאני שמציין אם לאפשר לסוכני שירות לגשת לדלי, ללא קשר להגדרת מסנן ה-IP. אם הערך הואtrue, שירותים אחרים יכולים להשתמש בסוכני שירות כדי לגשת לדלי בלי אימות מבוסס-IP. Google Cloud
ALLOW_CROSS_ORG_VPCSהוא ערך בוליאני שמציין אם לאפשר לרשתות VPC שמוגדרות ב-vpcNetworkSourcesלהגיע מארגון אחר. השדה הזה הוא אופציונלי. אם הערך הואtrue, הבקשה מאפשרת רשתות VPC חוצות ארגונים. אם הערך הואfalse, הבקשה מגבילה את רשתות ה-VPC לאותו ארגון כמו הקטגוריה. אם לא מציינים ערך, ערך ברירת המחדל הואfalse. השדה הזה חל רק אםvpcNetworkSourcesלא ריק.
משתמשים ב-
cURLכדי לשלוח קריאה ל-API בפורמט JSON באמצעות בקשת POST bucket:curl -X POST --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b?project=PROJECT_ID"
כאשר:
-
JSON_FILE_NAMEהוא השם של קובץ ה-JSON שמכיל את ההגדרות של הקטגוריה. -
PROJECT_IDהוא מזהה הפרויקט שאליו הקטגוריה משויכת. לדוגמה,my-project.
-
הגדרות סינון לפי כתובת IP של דלי
בקטע הזה מובאות דוגמאות להגדרות של קובץ JSON לסינון כתובות IP של קטגוריות, כדי לשלוט בגישה לקטגוריות של Cloud Storage. אפשר להעניק גישה לבקשות נכנסות באמצעות אחד מהדוגמאות הבאות:
כל כתובת IP ציבורית (IPv4 או IPv6):
ההגדרה הבאה מעניקה גישה לכל כתובת ציבורית מסוג IPv4 או IPv6, אבל חוסמת תעבורה שמקורה בכל VPC:
gcloud
{ "mode": "Enabled", "publicNetworkSource": { "allowedIpCidrRanges": ["0.0.0.0/0", "::/0"] }, "allowAllServiceAgentAccess": false }
API ל-JSON
{ "name": "my-bucket", "ipFilter": { "mode": "Enabled", "publicNetworkSource": { "allowedIpCidrRanges": ["0.0.0.0/0", "::/0"] }, "allowAllServiceAgentAccess": false } }
טווחי כתובות IP ציבוריות ספציפיים:
הגדרת הגישה בדוגמה הבאה מאפשרת גישה לטווח כתובות IPv4 ציבוריות
192.0.2.0/24, אבל חוסמת תעבורה שמקורה בכל VPC:gcloud
{ "mode": "Enabled", "publicNetworkSource": { "allowedIpCidrRanges": ["192.0.2.0/24"] }, "allowAllServiceAgentAccess": false }
API ל-JSON
{ "name": "my-bucket", "ipFilter": { "mode": "Enabled", "publicNetworkSource": { "allowedIpCidrRanges": ["192.0.2.0/24"] }, "allowAllServiceAgentAccess": false } }
הגדרת הדוגמה הבאה מעניקה גישה לטווח כתובות ה-IPv6 הציבוריות
2001:db8::/32, אבל חוסמת תעבורה שמקורה בכל VPC:gcloud
{ "mode": "Enabled", "publicNetworkSource": { "allowedIpCidrRanges": ["2001:db8::/32"] }, "allowAllServiceAgentAccess": false }
API ל-JSON
{ "name": "my-bucket", "ipFilter": { "mode": "Enabled", "publicNetworkSource": { "allowedIpCidrRanges": ["2001:db8::/32"] }, "allowAllServiceAgentAccess": false } }
רשתות VPC: באמצעות ההגדרות הבאות, אתם יכולים להעניק גישה למשאבים ברשת ה-VPC. אתם יכולים להעניק גישה לכל כתובות ה-IP ב-VPC או לטווחים ספציפיים של כתובות IP ב-VPC. בכל אחת מהדוגמאות האלה,
PROJECT_IDהוא מזהה הפרויקט שבו קיימת רשת ה-VPC, ו-NETWORK_NAMEהוא השם של רשת ה-VPC שיש לה גישה לקטגוריה.הגדרת הגישה בדוגמה הבאה מאפשרת בקשה מכל כתובת IPv4 או IPv6 שמגיעה מ-VPC ספציפי, וחוסמת תעבורה שמקורה בכתובת IP ציבורית:
gcloud
{ "mode": "Enabled", "vpcNetworkSources": [ { "network": "projects/PROJECT_ID/global/networks/NETWORK_NAME", "allowedIpCidrRanges": ["0.0.0.0/0", "::/0"] }, ], "allowAllServiceAgentAccess": false }
API ל-JSON
{ "name": "my-bucket", "ipFilter": { "mode": "Enabled", "vpcNetworkSources": [ { "network": "projects/PROJECT_ID/global/networks/NETWORK_NAME", "allowedIpCidrRanges": ["0.0.0.0/0", "::/0"] }, ], "allowAllServiceAgentAccess": false } }
הגדרת הדוגמה הבאה מעניקה גישה רק לבקשה מרשת VPC שמשויכת למכונה וירטואלית עם כתובת IPv4 חיצונית כ-
192.0.2.0/24וחוסמת תעבורה שמקורה בכתובת IP ציבורית:gcloud
{ "mode": "Enabled", "vpcNetworkSources": [ { "network": "projects/PROJECT_ID/global/networks/NETWORK_NAME", "allowedIpCidrRanges": ["192.0.2.0/24"] }, ], "allowAllServiceAgentAccess": false }
API ל-JSON
{ "name": "my-bucket", "ipFilter": { "mode": "Enabled", "vpcNetworkSources": [ { "network": "projects/PROJECT_ID/global/networks/NETWORK_NAME", "allowedIpCidrRanges": ["192.0.2.0/24"] }, ], "allowAllServiceAgentAccess": false } }
הגדרת הדוגמה הבאה מעניקה גישה רק לבקשה שמגיעה מ-VPC עם טווח של רשת משנה פנימית של IPv4 שמשויכת למכונה וירטואלית ללא כתובת IP חיצונית, וחוסמת תעבורת נתונים שמקורה בכתובת IP ציבורית:
gcloud
{ "mode": "Enabled", "vpcNetworkSources": [ { "network": "projects/PROJECT_ID/global/networks/NETWORK_NAME", "allowedIpCidrRanges": ["IP_ADDRESS"] }, ], "allowAllServiceAgentAccess": false }
כאשר:
IP_ADDRESSהוא טווח של רשת משנה פנימית מסוג IPv4.
API ל-JSON
{ "name": "my-bucket", "ipFilter": { "mode": "Enabled", "vpcNetworkSources": [ { "network": "projects/PROJECT_ID/global/networks/NETWORK_NAME", "allowedIpCidrRanges": ["IP_ADDRESS"] }, ], "allowAllServiceAgentAccess": false } }
כאשר:
IP_ADDRESSהוא טווח של רשת משנה פנימית מסוג IPv4.הגדרת הדוגמה הבאה מעניקה גישה רק לבקשה שמגיעה מ-VPC עם טווח של רשת משנה כפולה של IPv4 ו-IPv6 שמשויך למכונה וירטואלית עם טווח כתובות IPv6 חיצוניות כ-
2001:db8::/32, וחוסמת תעבורה שמקורה בכתובת IP ציבורית:gcloud
{ "mode": "Enabled", "vpcNetworkSources": [ { "network": "projects/PROJECT_ID/global/networks/NETWORK_NAME", "allowedIpCidrRanges": ["2001:db8::/32"] }, ], "allowAllServiceAgentAccess": false }
API ל-JSON
{ "name": "my-bucket", "ipFilter": { "mode": "Enabled", "vpcNetworkSources": [ { "network": "projects/PROJECT_ID/global/networks/NETWORK_NAME", "allowedIpCidrRanges": ["2001:db8::/32"] }, ], "allowAllServiceAgentAccess": false } }
המאמרים הבאים
- יצירה או עדכון של כללי סינון לפי כתובת IP בקטגוריה קיימת
- קבלת כללי סינון לפי כתובת IP של קטגוריה.
- List bucket IP filtering rules.
- השבתת סינון לפי כתובת IP בקטגוריה.
נסו בעצמכם
אנחנו ממליצים למשתמשים חדשים ב-Google Cloud ליצור חשבון כדי שיוכלו להעריך את הביצועים של Cloud Storage בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300 $להרצה, לבדיקה ולפריסה של עומסי העבודה.
להתנסות ב-Cloud Storage בחינם