בדף הזה מוסבר איך ליצור קטגוריה עם כללים לסינון כתובות IP. כשיוצרים קטגוריה עם סינון לפי כתובות IP, אפשר לשלוט בגישה לקטגוריות על ידי בדיקת הבקשות הנכנסות בהשוואה לכתובות ה-IP שצוינו בכללי הסינון לפי כתובות IP של הקטגוריה. פרטים נוספים זמינים במאמר סינון כתובות IP של קטגוריות.
במאמר עדכון כללי סינון ה-IP של הקטגוריה מוסבר איך ליצור או לעדכן את כללי סינון ה-IP בקטגוריה קיימת.
התפקידים הנדרשים
כדי לקבל את ההרשאות הנדרשות ליצירת קטגוריה עם כללי סינון לפי כתובות IP, בקשו מהאדמין להקצות לכם את התפקיד "אדמין של אחסון" (roles/storage.admin) בקטגוריה. התפקיד הזה כולל את ההרשאות שנדרשות כדי ליצור קטגוריה עם כללי סינון לפי כתובות IP.
כדי לראות את ההרשאות הנדרשות, מרחיבים את הקטע Required Permissions:
ההרשאות הנדרשות
storage.buckets.createstorage.buckets.setIpFilter
אפשר לקבל את ההרשאות האלה גם באמצעות תפקידים בהתאמה אישית. יכול להיות שתוכלו לקבל את ההרשאות האלה גם באמצעות תפקידים מוגדרים מראש אחרים. במאמר תפקידי IAM ל-Cloud Storage מפורטים התפקידים השונים וההרשאות שמשויכות אליהם.
במאמר הגדרה וניהול של מדיניות IAM בקטגוריות מוסבר איך מקצים תפקידים בקטגוריות.
יצירת קטגוריה עם כללים לסינון כתובות IP
המסוף
- במסוף Google Cloud , נכנסים לדף Buckets של Cloud Storage.
- לוחצים על Create.
ממלאים את פרטי הקטגוריה בדף Create a bucket. אחרי כל אחד מהשלבים הבאים, לוחצים על Continue כדי להמשיך לשלב הבא:
-
בקטע Get started:
-
מזינים שם ייחודי גלובלי שעומד בדרישות לשמות של קטגוריות.
-
כדי להוסיף תווית לקטגוריה, לוחצים על החץ להרחבה כדי להרחיב את הקטע Labels, לוחצים על add_box Add label ומציינים
keyו-valueבשביל התווית.
-
-
בקטע Choose where to store your data מבצעים את הפעולות הבאות:
-
בוחרים Location type.
-
בתפריט הנפתח של סוג המיקום, בוחרים מיקום שבו נתוני האובייקטים בקטגוריה יישמרו באופן קבוע.
-
אם בוחרים בסוג המיקום בשני אזורים, אפשר גם להפעיל את רפליקציה בקצב טורבו באמצעות תיבת הסימון הרלוונטית.
-
-
כדי להגדיר רפליקציה בין קטגוריות, בוחרים באפשרות Add cross-bucket replication via Storage Transfer Service ופועלים לפי השלבים הבאים:
הגדרת רפליקציה בין קטגוריות
- בתפריט Bucket בוחרים קטגוריה.
-
בקטע Replication settings, לוחצים על Configure כדי לקבוע את ההגדרות של משימת הרפליקציה.
מופיעה החלונית Configure cross-bucket replication.
- כדי לסנן אובייקטים לשכפול לפי קידומת של שם האובייקט, מזינים קידומת שרוצים לכלול או להחריג אובייקטים, ואז לוחצים על Add a prefix.
- כדי להגדיר סוג אחסון לאובייקטים המשוכפלים, בוחרים סוג אחסון מהתפריט Storage class. אם מדלגים על השלב הזה, האובייקטים המשוכפלים ישתמשו כברירת מחדל בסוג האחסון של קטגוריית היעד.
- לוחצים על סיום.
-
-
בקטע Choose how to store your data:
-
בוחרים סוג אחסון (storage class) שמוגדר כברירת מחדל לקטגוריה, או בוחרים ב-Autoclass לניהול אוטומטי של סוג האחסון של נתוני הקטגוריה.
-
בקטע Optimize storage for data-intensive workloads:
-
כדי להפעיל מרחב שמות היררכי, בוחרים באפשרות Enable Hierarchical namespace on this bucket.
- כדי להפעיל את Rapid Cache, בוחרים באפשרות Enable Rapid Cache ופועלים לפי השלבים הבאים:
-
כדי ליצור מטמונים, לוחצים על הגדרה.
-
בתיבת הדו-שיח Configure cache settings שמופיעה, לוחצים על החץ לתפריט הנפתח לצד האזורים שברשימה ובוחרים את האזורים שבהם רוצים ליצור מטמונים.
-
לוחצים על סיום.
-
-
-
-
בקטע Choose how to control access to objects:
-
בוחרים אם הקטגוריה אוכפת מניעת גישה ציבורית.
-
בוחרים באפשרות Uniform כדי להפעיל גישה אחידה ברמת הקטגוריה.
-
כדי להגדיר סינון IP לקטגוריה:
בקטע IP filtering, לוחצים על Configure.
-
כדי לאפשר גישה מכתובות IP ציבוריות:
- לוחצים על אינטרנט ציבורי.
-
בשדה Allowed IP range(s), מציינים טווח אחד או יותר של כתובות IPv4 או טווחי CIDR של IPv6 שרוצים לאפשר. לדוגמה,
192.0.2.0/24או2001:db8::/32.כדי למנוע מצב שבו לא תהיה לכם גישה לקטגוריה, אתם צריכים לכלול את כתובת ה-IP שלכם.
-
כדי לאפשר גישה מרשתות VPC:
- לוחצים על רשתות VPC.
-
מבצעים את הפעולות הבאות בכל רשת:
- לוחצים על Add VPC network.
-
בקטע New VPC network, מציינים את הפרטים הבאים:
- בשדה Project ID, מזינים את מזהה הפרויקט.
- בשדה שם הרשת, מזינים את שם הרשת.
-
בשדה Allowed IP range(s), מזינים טווח CIDR אחד או יותר של IPv4 או IPv6, כמו
192.0.2.0/24או2001:db8::/32.כדי למנוע מצב שבו לא תהיה לכם גישה לקטגוריה, צריך לכלול את כתובת ה-IP שלכם.
- לוחצים על סיום.
-
כדי לאפשר לסוכני שירות ורשתות VPC מהימנים מארגונים אחרים לעקוף את הגדרת סינון ה-IP, צריך לבצע את הפעולות הבאות: Google Cloud
- לוחצים על הגדרות נוספות.
-
בקטע Google Cloud service agent access, בוחרים אחת מהאפשרויות הבאות:
- Allow service agent access: מאפשר לשירותים של Google Cloud כמו BigLake, Storage Insights, Vertex AI ו-BigQuery לעקוף את אימות סינון ה-IP כשהם צריכים לגשת לקטגוריה הזו.
- דחיית הגישה של סוכן השירות: אכיפה של כללי סינון ה-IP על סוכני השירות של Google Cloud .
- בקטע Cross-organization VPC access, מבצעים אחת מהפעולות הבאות:
- כדי לאפשר גישה מרשתות VPC ספציפיות שנמצאות בארגונים שונים ב- Google Cloud , לוחצים על המתג כדי להעביר אותו למצב Allow.
- כדי לחסום את הגישה מרשתות VPC מחוץ לארגון ב- Google Cloud , לוחצים על המתג כדי להעביר אותו למצב דחייה (מצב ברירת המחדל).
- לוחצים על בדיקה ואז על שמירה.
-
-
בקטע Choose how to protect object data:
-
בוחרים את האפשרויות שרוצים להגדיר לקטגוריה בקטע הגנה על נתונים.
-
כדי לשנות את משך הזמן שבו האובייקטים נשמרים אחרי המחיקה באמצעות מחיקה רכה, מסמנים את התיבה Soft delete policy ובוחרים באפשרות Set custom retention duration. לאחר מכן, מציינים את משך הזמן שרוצים לשמור אובייקטים שנמחקו.
כדי להשבית את המחיקה הרכה, למשל אם הקטגוריה תכיל בעיקר נתונים זמניים לטווח קצר, מבטלים את הסימון בתיבה המדיניות בנושא מחיקת נתונים רכה.
-
כדי לבחור איך להצפין את נתוני האובייקט, לוחצים על החץ להרחבה שנקרא Data encryption ומבצעים את הפעולות הבאות:
- בקטע Default encryption key type, בוחרים את מפתח ההצפנה שמוגדר כברירת מחדל לקטגוריה. אם בוחרים באפשרות Cloud KMS key, צריך לספק מפתח של Cloud Key Management Service.
- בקטע Encryption enforcement rules, בשדה Key types בוחרים אילו סוגי הצפנה לאפשר או להגביל לאובייקטים חדשים בקטגוריה.
-
-
לוחצים על יצירה.
gcloud
מוודאים שמותקנת גרסה 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, שירותים אחרים של Google Cloud יכולים להשתמש בסוכני שירות כדי לגשת לקטגוריה בלי אימות מבוסס-IP.
כדי ליצור קטגוריה עם כללי סינון של כתובות 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, שירותים אחרים של Google Cloud יכולים להשתמש בסוכני שירות כדי לגשת לקטגוריה בלי אימות מבוסס-IP.
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 של קטגוריה.
- הצגת רשימה של כללי סינון לפי כתובת IP בקטגוריה.
- השבתת סינון כתובות ה-IP של הקטגוריה.
נסו בעצמכם
אנחנו ממליצים למשתמשים חדשים ב-Google Cloud ליצור חשבון כדי שיוכלו להעריך את הביצועים של Cloud Storage בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300 $להרצה, לבדיקה ולפריסה של עומסי העבודה.
להתנסות ב-Cloud Storage בחינם