VPC Service Controls
בעזרת VPC Service Controls ארגונים יכולים להגדיר מתחם היקפי מסביב למשאביGoogle Cloud כדי לצמצם את הסיכונים לזליגת נתונים. בעזרת VPC Service Controls אפשר ליצור גבולות גזרה שמגנים על המשאבים ועל הנתונים של שירותים שאתם מציינים באופן מפורש.
חבילות שירותים של Firestore
ממשקי ה-API הבאים כלולים ב-VPC Service Controls:
firestore.googleapis.comdatastore.googleapis.comfirestorekeyvisualizer.googleapis.com
כשמגבילים את השירות firestore.googleapis.com בגבול גזרה, הגבול מגביל גם את השירותים datastore.googleapis.com ו-firestorekeyvisualizer.googleapis.com.
הגבלת הגישה לשירות datastore.googleapis.com
השירות datastore.googleapis.com כלול בחבילת השירות firestore.googleapis.com. כדי להגביל את השירות datastore.googleapis.com, צריך להגביל את השירות firestore.googleapis.com באופן הבא:
- כשיוצרים גבולות גזרה לשירות באמצעות מסוף Google Cloud , מוסיפים את Firestore כשירות המוגבל.
כשיוצרים גבולות גזרה לשירות באמצעות Google Cloud CLI, משתמשים ב-
firestore.googleapis.comבמקום ב-datastore.googleapis.com.--perimeter-restricted-services=firestore.googleapis.com
שירותים בחבילה מדור קודם של App Engine ל-Datastore
שירותים בחבילה מדור קודם של App Engine ל-Datastore לא תומכים בהיקפי שירות. הגנה על שירות Datastore באמצעות גבולות גזרה לשירות חוסמת תעבורה משירותים בחבילה מדור קודם של App Engine. שירותים מדור קודם שנמכרים בחבילה כוללים:
- Java 8 Datastore עם App Engine APIs
- ספריית לקוח Python 2 NDB ל-Datastore
- Go 1.11 Datastore עם ממשקי App Engine API
הגנה על תעבורת נתונים יוצאת (egress) בפעולות ייבוא וייצוא
Firestore תומך ב-VPC Service Controls, אבל נדרשת הגדרה נוספת כדי לקבל הגנה מלאה על תעבורת נתונים יוצאת (egress) בפעולות ייבוא וייצוא. צריך להשתמש בסוכן השירות של Firestore כדי לאשר פעולות ייבוא וייצוא, במקום בחשבון השירות שמוגדר כברירת מחדל של App Engine. כדי להציג ולהגדיר את חשבון ההרשאה לפעולות ייבוא וייצוא, פועלים לפי ההוראות הבאות.
סוכן שירות של Firestore
ב-Firestore נעשה שימוש בסוכן שירות של Firestore כדי לאשר פעולות ייבוא וייצוא, במקום להשתמש בחשבון השירות של App Engine. סוכן השירות וחשבון השירות משתמשים במוסכמות הבאות למתן שמות:
- סוכן שירות של Firestore
service-PROJECT_NUMBER@gcp-sa-firestore.iam.gserviceaccount.com
בעבר, Firestore השתמש בחשבון השירות שמוגדר כברירת מחדל של App Engine במקום בסוכן השירות של Firestore. אם מסד הנתונים שלכם עדיין משתמש בחשבון השירות של App Engine כדי לייבא או לייצא נתונים, מומלץ לפעול לפי ההוראות שבקטע הזה כדי לעבור לשימוש בסוכן השירות של Firestore.
- חשבון שירות של App Engine
PROJECT_ID@appspot.gserviceaccount.com
עדיף להשתמש בסוכן השירות של Firestore כי הוא ספציפי ל-Firestore. חשבון השירות של App Engine משותף ליותר משירות אחד.
הצגת חשבון ההרשאה
בדף Import/Export במסוף Google Cloud אפשר לראות באיזה חשבון נעשה שימוש בפעולות הייבוא והייצוא כדי לאשר בקשות. אפשר גם לראות אם מסד הנתונים כבר משתמש בסוכן השירות של Firestore.
-
נכנסים לדף Databases במסוף Google Cloud .
- בוחרים את מסד הנתונים הרצוי מתוך רשימת מסדי הנתונים.
-
בתפריט הניווט, לוחצים על ייבוא/ייצוא.
- החשבון המורשה מוצג ליד התווית Import/Export jobs run as.
אם הפרויקט שלכם לא משתמש בסוכן השירות של Firestore, אתם יכולים להעביר אותו לסוכן השירות של Firestore באחת מהדרכים הבאות:
- העברת פרויקט על ידי בדיקה ועדכון של ההרשאות של קטגוריות Cloud Storage (מומלץ).
- מוסיפים אילוץ מדיניות ברמת הארגון שמשפיע על כל הפרויקטים בארגון.
הטכניקה הראשונה עדיפה כי היא מצמצמת את היקף ההשפעה לפרויקט Firestore יחיד. השיטה השנייה פחות מומלצת כי היא לא מעבירה את ההרשאות הקיימות לקטגוריה של Cloud Storage. עם זאת, הוא מציע תאימות לאבטחה ברמת הארגון.
העברה על ידי בדיקה ועדכון של הרשאות לקטגוריות של Cloud Storage
תהליך ההעברה כולל שני שלבים:
- עדכון ההרשאות של קטגוריה של Cloud Storage. פרטים נוספים מופיעים בקטע הבא.
- מאשרים את ההעברה לסוכן השירות של Firestore.
הרשאות של סוכן שירות לקטגוריה
לכל פעולת ייצוא או ייבוא שמשתמשת בקטגוריה של Cloud Storage בפרויקט אחר, צריך לתת לסוכן השירות של Firestore הרשאות גישה לקטגוריה הזו. לדוגמה, פעולות שמעבירות נתונים לפרויקט אחר צריכות גישה לקטגוריה בפרויקט האחר הזה. אחרת, הפעולות האלה ייכשלו אחרי המעבר לסוכן השירות של Firestore.
אם תהליכי העבודה של הייבוא והייצוא מתבצעים באותו פרויקט, לא צריך לשנות את ההרשאות. לסוכן השירות של Firestore יש גישה לקטגוריות באותו פרויקט כברירת מחדל.
מעדכנים את ההרשאות של קטגוריות Cloud Storage מפרויקטים אחרים כדי לתת גישה לסוכן השירות service-PROJECT_NUMBER@gcp-sa-firestore.iam.gserviceaccount.com. נותנים לסוכן השירות את התפקיד Firestore Service Agent.
התפקיד Firestore Service Agent מעניק הרשאות קריאה וכתיבה לקטגוריית Cloud Storage. אם אתם צריכים להעניק רק הרשאות קריאה או רק הרשאות כתיבה, אתם יכולים להשתמש בתפקיד בהתאמה אישית.
תהליך ההעברה שמתואר בקטע הבא עוזר לכם לזהות קטגוריות של Cloud Storage שאולי צריך לעדכן בהן את ההרשאות.
העברת פרויקט לסוכן השירות של Firestore
כדי להעביר את חשבון השירות של App Engine לסוכן השירות של Firestore, צריך לבצע את השלבים הבאים. אחרי ההעברה, אי אפשר לבטל אותה.
-
נכנסים לדף Databases במסוף Google Cloud .
- בוחרים את מסד הנתונים הרצוי מתוך רשימת מסדי הנתונים.
-
בתפריט הניווט, לוחצים על ייבוא/ייצוא.
-
אם הפרויקט שלכם עדיין לא הועבר לסוכן של שירות Firestore, יוצג לכם באנר עם תיאור של ההעברה וכפתור Check Bucket Status (בדיקת סטטוס קטגוריית היעד). בשלב הבא נסביר איך לזהות ולתקן שגיאות אפשריות בהרשאות.
לוחצים על Check Bucket Status (בדיקת סטטוס מאגר).
יופיע תפריט עם האפשרות להשלים את ההעברה ורשימה של קטגוריות Cloud Storage. יכול להיות שיחלפו כמה דקות עד שהרשימה תיטען.
הרשימה הזו כוללת מאגרי מידע שהיו בשימוש לאחרונה בפעולות ייבוא וייצוא, אבל כרגע לא ניתנות הרשאות קריאה וכתיבה לסוכן השירות של Firestore.
- רושמים את שם חשבון המשתמש של סוכן השירות של Firestore בפרויקט. שם סוכן השירות מופיע מתחת לתווית Service agent to give access to.
-
לכל קטגוריה ברשימה שבה תשתמשו בעתיד לפעולות ייבוא או ייצוא, צריך לבצע את השלבים הבאים:
-
בשורה של הדלי בטבלה, לוחצים על Fix (תיקון). ייפתח דף ההרשאות של מאגר הנתונים בכרטיסייה חדשה.
- לוחצים על הוספה.
- בשדה New principals, מזינים את השם של סוכן השירות של Firestore.
- בשדה Select a role בוחרים באפשרות Service Agents > Firestore Service Agent.
- לוחצים על Save.
- חוזרים לכרטיסייה עם הדף Firestore Import/Export (ייבוא/ייצוא של Firestore).
- חוזרים על השלבים האלה לגבי דליים אחרים ברשימה. חשוב לעיין בכל הדפים של הרשימה.
-
-
לוחצים על Migrate to Firestore Service Agent (מעבר לסוכן שירות של Firestore). אם עדיין יש לכם מאגרי מידע שבהם בדיקות ההרשאות נכשלו, אתם צריכים לאשר את ההעברה על ידי לחיצה על העברה.
תקבלו התראה כשההעברה תסתיים. אי אפשר לבטל את ההעברה אחרי שהיא התחילה.
הצגת סטטוס ההעברה
כדי לאמת את סטטוס ההעברה של הפרויקט:
-
נכנסים לדף Databases במסוף Google Cloud .
- בוחרים את מסד הנתונים הרצוי מתוך רשימת מסדי הנתונים.
-
בתפריט הניווט, לוחצים על ייבוא/ייצוא.
-
מחפשים את העיקרון לצד התווית הפעלת משימות ייבוא/ייצוא.
אם העיקרון הוא
service-PROJECT_NUMBER@gcp-sa-firestore.iam.gserviceaccount.com, הפרויקט כבר הועבר לסוכן השירות של Firestore. אי אפשר לבטל את המיגרציה.אם הפרויקט לא הועבר, יופיע באנר בחלק העליון של הדף עם לחצן Check Bucket Status (בדיקת סטטוס המאגר). כדי להשלים את המיגרציה, אפשר לעיין במאמר בנושא מיגרציה לסוכן השירות של Firestore.
הוספת אילוץ מדיניות ברמת הארגון
-
צריך להגדיר את ההגבלה הבאה במדיניות של הארגון:
Require Firestore Service Agent for import/export (
firestore.requireP4SAforImportExport).בגלל המגבלה הזו, פעולות ייבוא וייצוא צריכות להשתמש בסוכן השירות של Firestore כדי לאשר בקשות. הוראות להגדרת האילוץ הזה מופיעות במאמר יצירה וניהול של מדיניות הארגון .
החלת האילוץ הזה של מדיניות הארגון לא מעניקה באופן אוטומטי את ההרשאות המתאימות לקטגוריית Cloud Storage לסוכן השירות של Firestore.
אם האילוץ יוצר שגיאות הרשאה בתהליכי עבודה של ייבוא או ייצוא, אפשר להשבית אותו כדי לחזור לשימוש בחשבון שירות שמוגדר כברירת מחדל. אחרי בדיקה ועדכון של ההרשאות של הקטגוריה ב-Cloud Storage, אפשר להפעיל שוב את האילוץ.