במאמר הזה נסביר איך להגדיר פענוח DNS לדומיין חדש ב-Google Distributed Cloud (GDC) עם air gap באמצעות תחומי DNS. אתם יכולים להשתמש בתחום DNS כדי לקבץ קבוצה של רשומות DNS, ולקבוע אם הרשומות האלה יהיו גלויות מחוץ לענן הפרטי הווירטואלי (VPC) ב-GDC.
המסמך הזה מיועד לאדמינים של פלטפורמות ולמפעילי אפליקציות שאחראים על ניהול פענוח ה-DNS בארגון שלהם.
אתם יכולים ליצור תחומי DNS ציבוריים או פרטיים בסביבת GDC, בהתאם לדרישות החשיפה והגישה של השירותים שלכם:
- לשירותים שדורשים גישה וניראות לרשת חיצונית: מגדירים תחום DNS ציבורי כדי לאפשר למשתמשים ולמערכות מחוץ לרשת לגשת לשירות. אם יש לכם אתר, API שגלוי לכולם או שירות שצריך להיות נגיש מחוץ לסביבת GDC Cloud, אתם צריכים תחום DNS ציבורי כדי למפות את שם הדומיין לכתובות ה-IP המתאימות.
- לשירותים שדורשים גישה מאובטחת ומוגבלת למערכות פנימיות: הגדירו תחום DNS פרטי כדי להסתיר את שם הדומיין הפנימי ולהגביל את הגישה לשירותים הפנימיים. אם יש לכם אפליקציה, מסד נתונים או מיקרו-שירות פנימיים שצריכים לתקשר עם שירותים פנימיים אחרים באמצעות פרוטוקולים מאובטחים וכתובות IP פרטיות בלבד, אתם צריכים תחום DNS פרטי כדי למפות את שם הדומיין לכתובות ה-IP המתאימות. תחום DNS פרטי מבטיח שהשירותים האלה יוכלו למצוא זה את זה באמצעות שמות דומיינים פנימיים, בלי לחשוף את קיומם או את כתובות ה-IP שלהם לרשת החיצונית. כך משפרים את האבטחה ומפשטים את הרשת הפנימית.
מידע נוסף על ההבדל בין תחומים ציבוריים ופרטיים של DNS זמין במאמר סוגי תחומים ב-Cloud DNS.
לפני שמתחילים
כדי להגדיר תחומי DNS ב-GDC ולהוסיף רשומות, צריך:
- פרויקט קיים. למידע נוסף, קראו את המאמר יצירת פרויקט.
- התפקידים הנדרשים לניהול זהויות והרשאות גישה. כדי לנהל את תחומי ה-DNS בפרויקט, צריך לבקש מאדמין IAM של הפרויקט להקצות לכם את התפקיד אדמין של פרויקט DNS מנוהל (
managed-dns-project-admin). - כדי להשתמש ב-gdcloud CLI, צריך לוודא שהוא מותקן. מידע נוסף זמין במאמר התקנת ה-gdcloud CLI.
- אם משתמשים ב-
kubectl, קובץ kubeconfig לשרת ה-API הגלובלי. אם עדיין לא יצרתם את הקובץ הזה, קראו את המאמר כניסה לחשבון. מידע נוסף זמין במאמר שרתי API גלובליים ואזוריים.
יצירת תחום DNS ציבורי
אחרי שיוצרים תחום DNS ציבורי, צריך להגדיר את מפענח ה-DNS של הרשת כך שיעביר בקשות לשרתי השמות המתאימים.
יצירת האזור
אתם יכולים ליצור תחום DNS ציבורי באמצעות gdcloud CLI או Kubernetes API.
gdcloud
כדי ליצור תחום DNS ציבורי, משתמשים בפקודה gdcloud dns managed-zones create:
gdcloud dns managed-zones create DNS_ZONE_NAME \
--dns-name=DOMAIN_NAME \
--visibility=PUBLIC \
--description="DESCRIPTION" \
[--project=PROJECT_NAMESPACE] \
[--async]
מחליפים את מה שכתוב בשדות הבאים:
-
DNS_ZONE_NAME: השם של תחום ה-DNS. -
DOMAIN_NAME: שם הדומיין של תחום ה-DNS הציבורי, למשלexample.com. -
DESCRIPTION: תיאור של תחום ה-DNS. לדוגמה,Public DNS zone for example.com. השדה הזה הוא אופציונלי. -
PROJECT_NAMESPACE: מרחב השמות של הפרויקט. הדגל הזה הוא אופציונלי אם הגדרתם פרויקט ברירת מחדל באופן גלובלי באמצעותgdcloud config set project. -
--async: מציינים את הדגל הזה אם רוצים שהפקודה תחזור מיד, במקום להמתין שהפעולה תסתיים. אפשר להשתמש ב-describeכדי לבדוק את סטטוס הפעולה.
API
משתמשים ב-Kubernetes API ב-GDC כדי ליצור תחום DNS ציבורי:
יוצרים ומחילים משאב
ManagedDNSZoneכדי ליצור תחום DNS שאפשר לגשת אליו מחוץ ל-GDC:kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF apiVersion: networking.global.gdc.goog/v1 kind: ManagedDNSZone metadata: name: DNS_ZONE_NAME namespace: PROJECT_NAMESPACE spec: dnsName: DOMAIN_NAME description: DESCRIPTION visibility: PUBLIC EOFמחליפים את מה שכתוב בשדות הבאים:
-
GLOBAL_API_SERVER: הנתיב של kubeconfig לשרת ה-API הגלובלי. למידע נוסף, קראו את המאמר שרתי API גלובליים ואזוריים. אם עדיין לא יצרתם קובץ kubeconfig לשרת ה-API, תוכלו לקרוא פרטים נוספים בקטע כניסה. -
DNS_ZONE_NAME: השם של תחום ה-DNS. -
PROJECT_NAMESPACE: מרחב השמות של הפרויקט. -
DOMAIN_NAME: שם הדומיין של תחום ה-DNS הציבורי, למשלexample.com. -
DESCRIPTION: תיאור של תחום ה-DNS. לדוגמה,Public DNS zone for example.com. השדה הזה הוא אופציונלי.
חשוב לזכור שהמאפיין
visibilityהוא תלוי אותיות רישיות, והערך שלו חייב להיות בדיוקPUBLIC.-
הגדרת מפענח ה-DNS
בתחום DNS ציבורי, צריך להגדיר את מפענח ה-DNS ברשת כך שיעביר את בקשות ה-DNS של תחום ה-DNS הזה לשרתי השמות ב-GDC שמארחים את תחום ה-DNS הזה.
מאחזרים את שרתי השמות של ה-
ManagedDNSZoneשיצרתם. כדי לבצע את השלב הזה, צריך להשתמש ב-kubectl.kubectl --kubeconfig GLOBAL_API_SERVER get manageddnszones DNS_ZONE_NAME -n PROJECT_NAMESPACE -oyamlמחליפים את מה שכתוב בשדות הבאים:
-
GLOBAL_API_SERVER: הנתיב של kubeconfig לשרת ה-API הגלובלי. למידע נוסף, קראו את המאמר שרתי API גלובליים ואזוריים. אם עדיין לא יצרתם קובץ kubeconfig לשרת ה-API, תוכלו לקרוא פרטים נוספים בקטע כניסה. -
DNS_ZONE_NAME: השם של תחום ה-DNS. -
PROJECT_NAMESPACE: מרחב השמות של הפרויקט. הדגל הזה הוא אופציונלי אם הגדרתם פרויקט ברירת מחדל באופן גלובלי באמצעותgdcloud config set project.
שרתי השמות יופיעו בפלט הסטטוס:
apiVersion: networking.global.gdc.goog/v1 kind: ManagedDNSZone metadata: name: DNS_ZONE_NAME namespace: PROJECT_NAMESPACE spec: dnsName: example.com description: "Public DNS zone for example.com" visibility: PUBLIC status: # ... nameServers: - ns.managed-dns-public.gdc1.staging.gpcdemolabs.com-
מעדכנים את מפענח ה-DNS ברשת כדי להעביר בקשות DNS לאזור החדש. בדוגמה הזו, צריך לעדכן את מפענח ה-DNS כדי להעביר בקשות מ-
example.comאלns.managed-dns-public.gdc1.staging.gpcdemolabs.com. ההגדרה הזו מניחה שלמפענח כבר יש את ההגדרה שנדרשת כדי להעביר בקשות DNS בצורה מתאימה לתחום ה-DNS של התשתית של GDCgdc1.staging.gpcdemolabs.com.
יצירת תחום DNS פרטי
אתם יכולים ליצור תחום DNS פרטי באמצעות gdcloud CLI או Kubernetes API.
gdcloud
כדי ליצור תחום DNS פרטי, משתמשים בפקודה gdcloud dns managed-zones create:
gdcloud dns managed-zones create DNS_ZONE_NAME \
--dns-name=DOMAIN_NAME \
--visibility=PRIVATE \
--description="DESCRIPTION" \
[--project=PROJECT_NAMESPACE] \
[--async]
מחליפים את מה שכתוב בשדות הבאים:
-
DNS_ZONE_NAME: השם של תחום ה-DNS. -
DOMAIN_NAME: שם הדומיין של תחום ה-DNS הפרטי, למשלexample.com. -
DESCRIPTION: תיאור של תחום ה-DNS. לדוגמה,Private DNS zone for example.com. השדה הזה הוא אופציונלי. -
PROJECT_NAMESPACE: מרחב השמות של הפרויקט. הדגל הזה הוא אופציונלי אם הגדרתם פרויקט ברירת מחדל באופן גלובלי באמצעותgdcloud config set project. -
--async: מציינים את הדגל הזה אם רוצים שהפקודה תחזור מיד, במקום להמתין שהפעולה תסתיים. אפשר להשתמש ב-describeכדי לבדוק את סטטוס הפעולה.
API
משתמשים ב-Kubernetes API כדי ליצור אזור DNS פרטי:
יוצרים משאב
ManagedDNSZoneומחילים אותו כדי ליצור תחום DNS שאפשר לגשת אליו רק מתוך ה-VPC של הלקוח שמוגדר כברירת מחדל:kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF apiVersion: networking.global.gdc.goog/v1 kind: ManagedDNSZone metadata: name: DNS_ZONE_NAME namespace: PROJECT_NAMESPACE spec: dnsName: DOMAIN_NAME description: DESCRIPTION visibility: PRIVATE EOFמחליפים את מה שכתוב בשדות הבאים:
-
GLOBAL_API_SERVER: הנתיב של kubeconfig לשרת ה-API הגלובלי. למידע נוסף, קראו את המאמר שרתי API גלובליים ואזוריים. אם עדיין לא יצרתם קובץ kubeconfig לשרת ה-API, תוכלו לקרוא פרטים נוספים בקטע כניסה. -
DNS_ZONE_NAME: השם של תחום ה-DNS. -
PROJECT_NAMESPACE: מרחב השמות של הפרויקט. -
DOMAIN_NAME: שם הדומיין של תחום ה-DNS הפרטי, למשלexample.com. -
DESCRIPTION: תיאור של תחום ה-DNS. לדוגמה,Private DNS zone for example.com. השדה הזה הוא אופציונלי.
חשוב לזכור שהמאפיין
visibilityהוא תלוי אותיות רישיות, והערך שלו חייב להיות בדיוקPRIVATE.-