Managed Airflow (דור 3) | Managed Airflow (דור 2) | Managed Airflow (דור 1 מדור קודם)
VPC Service Controls מאפשר לארגונים להגדיר גבולות גזרה מסביב לGoogle Cloud משאבים כדי לצמצם את הסיכונים לזליגת נתונים.
אפשר לפרוס סביבות Managed Airflow בתוך גבולות גזרה לשירות. אם תגדירו את הסביבה שלכם באמצעות VPC Service Controls, תוכלו לשמור על פרטיות של מידע אישי רגיש וליהנות מהיכולות של Managed Airflow לניהול תהליכי עבודה.
התמיכה של VPC Service Controls ב-Managed Airflow מאפשרת:
- עכשיו אפשר לבחור ב-Managed Airflow כשירות מאובטח בתוך מתחם של אמצעי בקרה לשירותי VPC.
- כל משאבי הבסיס שמשמשים את Managed Airflow מוגדרים לתמיכה בארכיטקטורה של VPC Service Controls ולפעולה בהתאם לכללים שלה.
פריסת סביבות Managed Airflow עם VPC Service Controls מאפשרת לכם:
- צמצום הסיכון לזליגת נתונים.
- הגנה מפני חשיפת נתונים בגלל אמצעי בקרה לגישה שהוגדרו בצורה לא נכונה.
- הסיכון שמשתמשים זדוניים יעתיקו נתונים לGoogle Cloud משאבים לא מורשים או שהאקרים חיצוניים יקבלו גישה לGoogle Cloud משאבים מהאינטרנט יפחת.Google Cloud
מידע על VPC Service Controls ב-Managed Airflow
- כל ההגבלות על הרשת ב-VPC Service Controls חלות גם על סביבות Managed Airflow. פרטים נוספים זמינים במסמכי העזרה של VPC Service Controls.
אם סביבת Managed Airflow מוגנת על ידי גבולות גזרה, הגישה למאגרי PyPI ציבוריים מוגבלת. מידע נוסף זמין במאמר בנושא התקנת חבילות PyPI ב-VPC Service Controls.
אם בסביבה שלכם נעשה שימוש ברשתות עם כתובות IP פרטיות, כל התעבורה הפנימית מנותבת לרשת ה-VPC, למעט התעבורה לממשקי Google APIs, לשירותים ולדומיינים שזמינים לסביבות עם כתובות IP פרטיות דרך גישה פרטית ל-Google.
בהתאם להגדרת רשת ה-VPC, סביבת IP פרטית יכולה לקבל גישה לאינטרנט דרך רשת ה-VPC.
ב-Managed Airflow אין תמיכה בשימוש בזהויות של צד שלישי בכללי כניסה ויציאה כדי לאפשר פעולות בממשק המשתמש של Apache Airflow. עם זאת, אפשר להשתמש ב
ANY_IDENTITYסוג הזהות בכללי כניסה ויציאה כדי לאפשר גישה לכל הזהויות, כולל זהויות של צד שלישי. מידע נוסף על סוג הזהותANY_IDENTITYזמין במאמר כללי כניסה ויציאה.במצב VPC Service Controls, הגישה לשרת האינטרנט מוגנת על ידי גבולות הגזרה, והגישה מחוץ לגבולות הגזרה חסומה. כדי לאפשר גישה מחוץ לגבולות הגזרה לשירות, מגדירים רמות גישה או כללים לתעבורת נתונים נכנסת ויוצאת לפי הצורך. בנוסף, אתם יכולים להגביל את הגישה לשרת האינטרנט לטווחי כתובות IP ספציפיים.
היקפים לסביבות עם VPC משותף ו-CMEK
אם הסביבה שלכם מוגנת על ידי גבול גזרה לשירות ומשתמשת ב-VPC משותף, ב-Customer-Managed Encryption Keys (CMEK) או בשניהם, צריך לוודא שהפרויקטים הבאים נמצאים באותו גבול גזרה לשירות:
- פרויקט שירות: הפרויקט שמכיל את סביבת Managed Airflow.
- פרויקט מארח: הפרויקט שמכיל את רשת ה-VPC המשותפת.
- הפרויקט שמארח את המפתחות של Cloud Key Management Service.
יצירת סביבות ב-perimeter
כדי לפרוס את Managed Airflow בתוך גבולות גזרה, צריך לבצע את השלבים הבאים:
מפעילים את Access Context Manager API ואת Cloud Composer API בפרויקט. מידע נוסף זמין במאמר בנושא הפעלת ממשקי API.
חשוב לוודא שבגבולות גזרה לשירות יש גישה לשירותי ה-VPC הבאים, אחרת יכול להיות שלא תצליחו ליצור את הסביבה:
- Cloud Composer API (composer.googleapis.com)
- Compute Engine API (compute.googleapis.com)
- Kubernetes Engine API (container.googleapis.com)
- Container Registry API (containerregistry.googleapis.com)
- Artifact Registry API (artifactregistry.googleapis.com)
- Cloud Storage API (storage.googleapis.com)
- Cloud SQL Admin API (sqladmin.googleapis.com)
- Cloud Logging API (logging.googleapis.com)
- Cloud Monitoring API (monitoring.googleapis.com)
- Cloud Pub/Sub API (pubsub.googleapis.com)
- Security Token Service API (sts.googleapis.com)
- Cloud Resource Manager API (cloudresourcemanager.googleapis.com)
- Service Directory API (servicedirectory.googleapis.com)
- Cloud Key Management Service API (cloudkms.googleapis.com), אם אתם משתמשים במפתחות Cloud KMS או CMEK.
- Secret Manager API (secretmanager.googleapis.com), אם אתם משתמשים ב-Secret Manager כקצה עורפי של סודות.
יוצרים סביבת Managed Airflow חדשה:
צריך להפעיל את ההגדרה כתובת IP פרטית. חשוב לזכור שצריך להגדיר את ההגדרה הזו במהלך יצירת הסביבה.
חשוב לזכור להגדיר גישה לשרת האינטרנט של Airflow. כדי לשפר את ההגנה, כדאי לאפשר גישה לשרת האינטרנט רק מטווחים ספציפיים של כתובות IP. פרטים נוספים זמינים במאמר בנושא הגדרת גישה לרשת של שרת אינטרנט.
כברירת מחדל, הגישה לממשק המשתמש ול-API של Airflow מותרת רק מתוך גבולות גזרה של האבטחה. אם רוצים להפוך אותו לזמין מחוץ למתחם האבטחה, צריך להגדיר רמות גישה או כללים לתעבורת נתונים נכנסת (ingress) וגם יוצאת (egress).
הוספת סביבה קיימת לגבולות גזרה
אתם יכולים להוסיף את הפרויקט שמכיל את הסביבה שלכם לגבולות גזרה אם:
- כבר יצרתם או הגדרתם את גבולות הגזרה כמו שמתואר בקטע הקודם.
- הסביבות שלכם משתמשות בכתובת IP פרטית.
התקנת חבילות PyPI ב-VPC Service Controls
בהגדרת ברירת המחדל של VPC Service Controls, Managed Airflow תומך רק בהתקנת חבילות PyPI ממאגרים פרטיים שאפשר להגיע אליהם ממרחב כתובות ה-IP הפנימי של רשת ה-VPC.
לכל סביבות Managed Airflow בתוך היקף של VPC Service Controls אין גישה למאגרי PyPI ציבוריים כברירת מחדל.
התקנה ממאגר פרטי
ההגדרה המומלצת היא להגדיר מאגר PyPI פרטי:
מאכלסים אותו בחבילות שנבדקו על ידי הארגון, ואז מגדירים את Managed Airflow כך שיתקין יחסי תלות של Python ממאגר פרטי.
נותנים הרשאות נוספות להתקנת חבילות ממאגרי מידע פרטיים לחשבון השירות של הסביבה, כמו שמתואר במאמר בנושא בקרת גישה.
התקנה ממאגר ציבורי
מאגר מרוחק
זו הגישה המומלצת להתקנת חבילות ממאגר ציבורי.
כדי להתקין חבילות PyPI ממאגרים מחוץ למרחב כתובות ה-IP הפרטיות, צריך לבצע את השלבים הבאים:
- יוצרים מאגר מרוחק של Artifact Registry.
- נותנים למאגר הזה גישה למקורות במעלה הזרם.
- מגדירים את Airflow כך שיתקין חבילות ממאגר Artifact Registry.
- מעניקים הרשאות נוספות להתקנת חבילות ממאגרי Artifact Registry לחשבון השירות של הסביבה, כמו שמתואר במאמר בנושא בקרת גישה.
חיבורים חיצוניים
כדי להתקין חבילות PyPI ממאגרים מחוץ למרחב כתובות ה-IP הפרטיות, צריך לבצע את השלבים הבאים:
מגדירים Cloud NAT כדי לאפשר ל-Managed Airflow שפועל במרחב כתובות IP פרטי להתחבר למאגרי PyPI חיצוניים.
מגדירים את כללי חומת האש כך שיאפשרו חיבורים יוצאים מאשכול Composer למאגר.
הגדרת קישוריות לממשקי API ולשירותים של Google
בהגדרת VPC Service Controls, כדי לשלוט בתנועת הרשת, צריך להגדיר גישה לממשקי API ולשירותים של Google דרך restricted.googleapis.com. הדומיין הזה חוסם גישה לשירותים ולממשקי Google API שלא תומכים ב-VPC Service Controls.
סביבות Managed Airflow משתמשות בדומיינים הבאים:
משתמשים ב-
*.googleapis.comכדי לגשת לשירותי Google אחרים.
*.composer.cloud.google.comמשמש כדי להעניק גישה לשרת האינטרנט של Airflow בסביבה שלכם. צריך להחיל את הכלל הזה לפני שיוצרים סביבה.- אפשרות אחרת היא ליצור כלל לאזור ספציפי. כדי לעשות את זה, משתמשים בפקודה
REGION.composer.cloud.google.com. מחליפים אתREGIONבאזור שבו נמצאת הסביבה, לדוגמה,us-central1.
- אפשרות אחרת היא ליצור כלל לאזור ספציפי. כדי לעשות את זה, משתמשים בפקודה
(אופציונלי) נעשה שימוש ב-
*.composer.googleusercontent.comכשניגשים לשרת האינטרנט של Airflow בסביבה שלכם. הכלל הזה נדרש רק אם אתם ניגשים לשרת האינטרנט של Airflow ממופע שפועל ברשת ה-VPC, ולא נדרש בשום מקרה אחר. תרחיש נפוץ לשימוש בכלל הזה הוא כשרוצים לקרוא ל-Airflow API בארכיטקטורת REST מתוך רשת VPC.- אפשרות נוספת היא ליצור כלל לסביבה ספציפית. כדי לעשות את זה, משתמשים בפקודה
ENVIRONMENT_WEB_SERVER_NAME.composer.googleusercontent.com. מחליפים אתENVIRONMENT_WEB_SERVER_NAMEבחלק הייחודי של כתובת ה-URL של ממשק המשתמש של Airflow בסביבה שלכם, לדוגמה,bffe6ce6c4304c55acca0e57be23128c-dot-us-central1.
- אפשרות נוספת היא ליצור כלל לסביבה ספציפית. כדי לעשות את זה, משתמשים בפקודה
*.pkg.devמשמש לקבלת תמונות של סביבות, למשל כשיוצרים או מעדכנים סביבה.*.gcr.ioב-GKE נדרשת קישוריות לדומיין של Container Registry, ללא קשר לגרסה של Managed Airflow.
מגדירים קישוריות לנקודת הקצה restricted.googleapis.com:
| דומיין | שם DNS | רשומת CNAME | רשומת A |
|---|---|---|---|
*.googleapis.com
|
googleapis.com. |
שם DNS: *.googleapis.com.סוג רשומת משאבים: CNAMEשם קנוני: googleapis.com. |
סוג רשומת המשאב: Aכתובות IPv4: 199.36.153.4, 199.36.153.5, 199.36.153.6, 199.36.153.7
|
*.composer.cloud.google.com
|
composer.cloud.google.com. |
שם DNS: *.composer.cloud.google.com.סוג רשומת משאבים: CNAMEשם קנוני: composer.cloud.google.com. |
סוג רשומת המשאב: Aכתובות IPv4: 199.36.153.4, 199.36.153.5, 199.36.153.6, 199.36.153.7
|
*.composer.googleusercontent.com
(אופציונלי, ראו תיאור) |
composer.googleusercontent.com. |
שם DNS: *.composer.googleusercontent.com.סוג רשומת משאבים: CNAMEשם קנוני: composer.googleusercontent.com. |
סוג רשומת המשאב: Aכתובות IPv4: 199.36.153.4, 199.36.153.5, 199.36.153.6, 199.36.153.7
|
*.pkg.dev
|
pkg.dev. |
שם DNS: *.pkg.dev.סוג רשומת משאבים: CNAMEשם קנוני: pkg.dev. |
סוג רשומת המשאב: Aכתובות IPv4: 199.36.153.4, 199.36.153.5, 199.36.153.6, 199.36.153.7
|
*.gcr.io
|
gcr.io. |
שם DNS: *.gcr.io.סוג רשומת משאבים: CNAMEשם קנוני: gcr.io. |
סוג רשומת המשאב: Aכתובות IPv4: 199.36.153.4, 199.36.153.5, 199.36.153.6, 199.36.153.7
|
כדי ליצור כלל DNS:
יוצרים תחום DNS חדש ומשתמשים בשם DNS כשם ה-DNS של התחום הזה.
לדוגמה:
pkg.dev.מוסיפים קבוצת רשומות לרשומת CNAME.
דוגמה:
- שם DNS:
*.pkg.dev. - סוג רשומת המשאבים:
CNAME - שם קנוני:
pkg.dev.
- שם DNS:
מוסיפים קבוצת רשומות עם רשומת כתובת קבועה:
דוגמה:
- סוג רשומת המשאבים:
A - כתובות IPv4:
199.36.153.4, 199.36.153.5, 199.36.153.6, 199.36.153.7
- סוג רשומת המשאבים:
מידע נוסף זמין במאמר בנושא הגדרת קישוריות פרטית לממשקי API ולשירותים של Google.
הגדרת כללים לחומת אש
אם בפרויקט שלכם יש כללים בחומת האש שהם לא ברירת המחדל, כמו כללים שמבטלים כללים משתמעים בחומת האש או משנים כללים שאוכלסו מראש ברשת ברירת המחדל, צריך לוודא שכללי חומת האש הבאים מוגדרים.
לדוגמה, יכול להיות ש-Managed Airflow לא יצליח ליצור סביבה אם יש לכם כלל חומת אש שחוסם את כל תעבורת הנתונים היוצאת. כדי למנוע בעיות,
צריך להגדיר כללי allow סלקטיביים שמופיעים אחרי הרשימה ובעלי עדיפות גבוהה יותר
מהכלל הגלובלי deny.
מגדירים את רשת ה-VPC כך שתאפשר תעבורת נתונים מהסביבה שלכם:
- במאמר שימוש בכללים של חומת אש מוסבר איך לבדוק, להוסיף ולעדכן כללים ברשת ה-VPC.
- אפשר להשתמש בכלי הקישוריות כדי לאמת את הקישוריות בין טווחי כתובות IP.
- אפשר להשתמש בתגי רשת כדי להגביל עוד יותר את הגישה. אפשר להגדיר את התגים האלה כשיוצרים סביבה.
| תיאור | כיוון | פעולה | מקור או יעד | פרוטוקולים | יציאות |
|---|---|---|---|---|---|
| DNS הגדרה כפי שמתואר במאמר תמיכה ב-VPC Service Controls ל-Cloud DNS |
- | - | - | - | - |
| ממשקי API ושירותים של Google | תעבורת נתונים יוצאת (egress) | אישור | כתובות IPv4 של restricted.googleapis.com שמשמשות אתכם ל-Google APIs ולשירותים של Google. |
TCP | 443 |
| צמתים של אשכול בסביבה | תעבורת נתונים יוצאת (egress) | אישור | טווח כתובות ה-IP הראשי של רשת המשנה של הסביבה | TCP, UDP | all |
| Pods באשכול של הסביבה | תעבורת נתונים יוצאת (egress) | אישור | טווח כתובות IP משני עבור Pods בתת-הרשת של הסביבה | TCP, UDP | all |
| מישור הבקרה של אשכול הסביבה | תעבורת נתונים יוצאת (egress) | אישור | טווח כתובות ה-IP של מישור הבקרה של GKE | TCP, UDP | all |
| (אם הסביבה שלכם משתמשת ב-Private Service Connect) רשת משנה לחיבור | תעבורת נתונים יוצאת (egress) | אישור | טווח רשת המשנה של חיבור Managed Airflow | TCP | 3306, 3307, 19090 |
| (אם הסביבה שלכם משתמשת בקישור בין רשתות VPC שכנות) רשת הדייר | תעבורת נתונים יוצאת (egress) | אישור | טווח כתובות ה-IP של רשת הדיירים ב-Managed Airflow | TCP | 3306, 3307, 19090 |
כדי לקבל את טווחי כתובות ה-IP של אשכול הסביבה:
אפשר לראות את טווחי הכתובות של ה-Pod, השירות ומישור הבקרה בדף Clusters (אשכולות) של האשכול בסביבה שלכם:
במסוף Google Cloud , עוברים לדף Environments.
ברשימת הסביבות, לוחצים על שם הסביבה. הדף Environment details ייפתח.
עוברים לכרטיסייה Environment configuration (הגדרת הסביבה).
לוחצים על הקישור הצגת פרטי האשכול.
אפשר לראות את טווח כתובות ה-IP של רשת הדיירים של Managed Airflow בסביבה בכרטיסייה Environment configuration (הגדרת סביבה).
בכרטיסייה Environment configuration (הגדרת הסביבה) אפשר לראות את מזהה רשת המשנה של הסביבה ואת מזהה רשת המשנה של חיבור Managed Airflow. כדי לראות את טווחי כתובות ה-IP של רשת משנה, עוברים לדף VPC Networks ולוחצים על שם הרשת כדי לראות את הפרטים:
יומנים של VPC Service Controls
כשמנסים לפתור בעיות שקשורות ליצירת סביבות, אפשר לנתח את יומני הביקורת שנוצרו על ידי VPC Service Controls.
בנוסף להודעות אחרות ביומן, אפשר לבדוק ביומנים מידע על חשבונות שירות של cloud-airflow-prod@system.gserviceaccount.com ושל service-PROJECT_ID@cloudcomposer-accounts.iam.gserviceaccount.com שמגדירים רכיבים של הסביבות שלכם.
שירות Managed Airflow משתמש בחשבון השירות cloud-airflow-prod@system.gserviceaccount.com כדי לנהל את רכיבי פרויקט הדייר (tenant) בסביבות שלכם.
service-PROJECT_ID@cloudcomposer-accounts.iam.gserviceaccount.com
חשבון השירות, שנקרא גם חשבון השירות של סוכן השירות של Composer, מנהל את רכיבי הסביבה בפרויקטים של שירותים ופרויקטים מארחים.