פריסת אישור גלובלי שמנוהל על ידי Google עם הרשאה למאזן עומסים

במדריך הזה נסביר איך להשתמש ב-Certificate Manager כדי לפרוס אישור גלובלי בניהול Google עם הרשאה של מאזן עומסים.

הרשאה למאזן עומסים מאפשרת לכם לקבל אישור שמנוהל על ידי Google עבור הדומיין שלכם, כשהתנועה מוגשת על ידי מאזן העומסים. בשיטה הזו לא נדרשות רשומות DNS נוספות להקצאת אישורים.

מאזני העומסים הבאים תומכים באישורים שמנוהלים על ידי Google עם הרשאה של מאזן העומסים:

  • מאזן עומסים גלובלי חיצוני של אפליקציות (ALB)
  • מאזן עומסים קלאסי של אפליקציות (ALB)
  • מאזן עומסי רשת גלובלי חיצוני בשרת proxy
  • מאזן עומסי רשת קלאסי בשרת proxy

מטרות

במדריך הזה מוסבר איך לבצע את הפעולות הבאות:

  • יוצרים אישור שמנוהל על ידי Google ומונפק על ידי רשות אישורים (CA) מהימנה לציבור, עם הרשאה של מאזן העומסים, באמצעות Certificate Manager.
  • פורסים את האישור למאזן עומסים נתמך באמצעות פרוקסי HTTPS של יעד.

אם אתם פורסים אישור בדומיין של סביבת ייצור, התנועה מופרעת לזמן קצר בזמן שהאישור מוגדר ומופעל במאזן העומסים.

לפני שמתחילים

  1. נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Compute Engine, Certificate Manager APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  5. התקינו את ה-CLI של Google Cloud.

  6. אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

  7. כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:

    gcloud init
  8. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  9. Verify that billing is enabled for your Google Cloud project.

  10. Enable the Compute Engine, Certificate Manager APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  11. התקינו את ה-CLI של Google Cloud.

  12. אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

  13. כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:

    gcloud init

התפקידים הנדרשים

כדי לבצע את המשימות במדריך הזה, צריך לוודא שיש לכם את התפקידים הבאים:

  • בעלים של Certificate Manager (roles/certificatemanager.owner)

    נדרשת כדי ליצור ולנהל משאבים של Certificate Manager.

  • אדמין של איזון עומסים ב-Compute‏ (roles/compute.loadBalancerAdmin) או אדמין של רשת מחשוב (roles/compute.networkAdmin)

    נדרש כדי ליצור ולנהל שרת proxy ליעד HTTPS.

  • אדמין DNS‏ (roles/dns.admin)

    נדרש אם רוצים להשתמש ב-Cloud DNS כפתרון DNS.

למידע נוסף, קראו את המאמרים הבאים:

שמות דומיין

כדי ליצור אישורים, צריך לקבל את שמות הדומיין שמוגדרים במלואם (FQDN) של הדומיינים שבבעלותכם. אם אין לכם דומיין, אתם יכולים להשתמש ב-Cloud Domains כדי לרשום דומיין.

יצירת מאזן העומסים

במדריך הזה מניחים שכבר יצרתם והגדרתם את הקצוות העורפיים של מאזן העומסים, בדיקות התקינות, השירותים לקצה העורפי ומיפוי כתובות ה-URL. אם יצרתם מאזן עומסים חיצוני של אפליקציות, שימו לב לשם של מפת כתובות ה-URL כי תצטרכו אותו בהמשך המדריך הזה.

אם לא יצרתם מאזן עומסים, תוכלו לעיין בדפים הבאים כדי ליצור אחד:

יצירת אישור שמנוהל על ידי Google עם הרשאה של מאזן עומסים

כדי ליצור אישור בניהול Google עם הרשאה של מאזן עומסים:

המסוף

  1. נכנסים לדף Certificate Manager במסוף Google Cloud .

    מעבר אל Certificate Manager

  2. בכרטיסייה אישורים, לוחצים על הוספת אישור.

  3. בשדה שם האישור, מזינים שם ייחודי לאישור.

  4. אופציונלי: בשדה Description, מזינים תיאור של האישור. התיאור מאפשר לכם לזהות את האישור.

  5. בקטע מיקום, בוחרים באפשרות גלובלי.

  6. בקטע היקף, בוחרים באפשרות ברירת מחדל.

  7. בשדה Certificate type (סוג האישור), בוחרים באפשרות Create Google-managed certificate (יצירת אישור בניהול Google).

  8. בקטע סוג רשות האישורים, בוחרים באפשרות ציבורי.

  9. בשדה שמות דומיינים, מציינים רשימה של שמות דומיינים של האישור, שמופרדים בפסיקים. כל שם דומיין צריך להיות שם דומיין שמוגדר במלואו, כמו myorg.example.com.

  10. בקטע סוג הרשאה, בוחרים באפשרות הרשאה של מאזן עומסים.

  11. בשדה Labels (תוויות), מציינים את התוויות לשיוך לאישור. כדי להוסיף תווית, לוחצים על Add label ומציינים מפתח וערך לתווית.

  12. לוחצים על יצירה.

    האישור החדש מופיע ברשימת האישורים.

gcloud

כדי ליצור אישור גלובלי שמנוהל על ידי Google עם הרשאה של מאזן עומסים, משתמשים בפקודה certificate-manager certificates create:

gcloud certificate-manager certificates create CERTIFICATE_NAME \
    --domains="DOMAIN_NAMES"

מחליפים את מה שכתוב בשדות הבאים:

  • CERTIFICATE_NAME: שם האישור.
  • DOMAIN_NAMES: רשימה מופרדת בפסיקים של דומייני היעד. כל שם דומיין צריך להיות שם דומיין שמוגדר במלואו, כמו myorg.example.com.

Terraform

משתמשים בgoogle_certificate_manager_certificateמשאב.

resource "google_certificate_manager_certificate" "default" {
  name        = "${local.name}-rootcert-${random_id.tf_prefix.hex}"
  description = "Cert with LB authorization"
  managed {
    domains = [local.domain]
  }
  labels = {
    "terraform" : true
  }
}

כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.

API

כדי ליצור את האישור, שולחים בקשת POST ל-method‏ certificates.create באופן הבא:

POST /v1/projects/PROJECT_ID/locations/global/certificates?certificate_id=CERTIFICATE_NAME"
{
 "managed": {
  "domains": ["DOMAIN_NAME"],
 }
}

מחליפים את מה שכתוב בשדות הבאים:

  • PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
  • CERTIFICATE_NAME: שם האישור.
  • DOMAIN_NAMES: רשימה מופרדת בפסיקים של דומייני היעד. כל שם דומיין צריך להיות שם דומיין שמוגדר במלואו, כמו myorg.example.com.

פריסת האישור במאזן עומסים

כדי להטמיע את האישור הגלובלי שמנוהל על ידי Google, צריך להשתמש במיפוי אישורים.

יצירת מיפוי אישורים

יוצרים מפת אישורים שמפנה לרשומת מיפוי לאישורים שמשויכת לאישור שלכם:

gcloud

כדי ליצור מיפוי אישורים, משתמשים בפקודה gcloud certificate-manager maps create:

gcloud certificate-manager maps create CERTIFICATE_MAP_NAME

מחליפים את CERTIFICATE_MAP_NAME בשם של מיפוי האישורים של היעד.

Terraform

כדי ליצור מיפוי אישורים, אפשר להשתמש במשאב google_certificate_manager_certificate_map.

resource "google_certificate_manager_certificate_map" "certificate_map" {
  name        = "${local.name}-certmap-${random_id.tf_prefix.hex}"
  description = "${local.domain} certificate map"
  labels = {
    "terraform" : true
  }
}

יצירת רשומת מיפוי לאישורים

יוצרים רשומת מיפוי לאישורים ומשייכים אותה לאישור ולמפת האישורים:

gcloud

כדי ליצור רשומה במפת האישורים, משתמשים בפקודה gcloud certificate-manager maps entries create:

gcloud certificate-manager maps entries create CERTIFICATE_MAP_ENTRY_NAME \
    --map="CERTIFICATE_MAP_NAME" \
    --certificates="CERTIFICATE_NAME" \
    --hostname="HOSTNAME"

מחליפים את מה שכתוב בשדות הבאים:

  • CERTIFICATE_MAP_ENTRY_NAME: השם של רשומת המיפוי לאישורים.
  • CERTIFICATE_MAP_NAME: השם של מיפוי האישורים שאליו משויכת רשומת מיפוי האישורים.
  • CERTIFICATE_NAME: השם של האישור שרוצים לשייך לרשומה במפת האישורים.
  • HOSTNAME: שם המארח שרוצים לשייך לרשומה במפת האישורים.

    אם רוצים ליצור אישור שכולל גם דומיין עם תו כללי וגם דומיין בסיסי, צריך לציין את שם המארח עם דומיין בסיסי ותו כללי, כמו example.com ו-*.example.com. בנוסף, צריך לציין שני רשומות של מיפוי אישורים – אחת ל-example.com ואחת ל-*.example.com.

Terraform

כדי ליצור רשומה במפת האישורים עם דומיין בסיסי, משתמשים במשאב google_certificate_manager_certificate_map_entry.

resource "google_certificate_manager_certificate_map_entry" "first_entry" {
  name        = "${local.name}-first-entry-${random_id.tf_prefix.hex}"
  description = "example certificate map entry"
  map         = google_certificate_manager_certificate_map.certificate_map.name
  labels = {
    "terraform" : true
  }
  certificates = [google_certificate_manager_certificate.root_cert.id]
  hostname     = local.domain
}

כדי ליצור רשומה במיפוי האישורים עם דומיין עם תו כללי, משתמשים במשאב google_certificate_manager_certificate_map_entry.

resource "google_certificate_manager_certificate_map_entry" "second_entry" {
  name        = "${local.name}-second-entity-${random_id.tf_prefix.hex}"
  description = "example certificate map entry"
  map         = google_certificate_manager_certificate_map.certificate_map.name
  labels = {
    "terraform" : true
  }
  certificates = [google_certificate_manager_certificate.root_cert.id]
  hostname     = "*.${local.domain}"
}

אימות שרשומת מיפוי לאישורים פעילה

לפני שמצרפים את מפת האישורים המתאימה לפרוקסי היעד, צריך לוודא שרשומת מיפוי לאישורים פעילה.

כדי לאמת את רשומת מיפוי האישורים, משתמשים בפקודה gcloud certificate-manager maps entries describe:

gcloud certificate-manager maps entries describe CERTIFICATE_MAP_ENTRY_NAME \
    --map="CERTIFICATE_MAP_NAME"

מחליפים את מה שכתוב בשדות הבאים:

  • CERTIFICATE_MAP_ENTRY_NAME: השם של רשומת המיפוי לאישורים.
  • CERTIFICATE_NAME: השם של האישור שרוצים לשייך לרשומה במפת האישורים.

הפלט אמור להיראות כך:

certificates:
createTime: '2021-09-06T10:01:56.229472109Z'
hostname: example.com
name: projects/my-project/locations/global/certificateMaps/myCertMap/certificateMapEntries/myCertMapEntry
state: ACTIVE
updateTime: '2021-09-06T10:01:58.277031787Z'

צירוף מיפוי האישורים לשרת ה-proxy של היעד

אפשר לצרף את מפת האישורים לשרת proxy חדש של יעד או לשרת proxy קיים של יעד.

gcloud

כדי לצרף את מיפוי האישורים לשרת proxy חדש ליעד, משתמשים בפקודה gcloud compute target-https-proxies create:

gcloud compute target-https-proxies create PROXY_NAME \
    --certificate-map="CERTIFICATE_MAP_NAME" \
    --url-map="URL_MAP" \
    --global

מחליפים את מה שכתוב בשדות הבאים:

  • PROXY_NAME: שם של שרת proxy של היעד.
  • CERTIFICATE_MAP_NAME: השם של מפת האישורים שמפנה לרשומת המיפוי לאישורים ולאישור המשויך.
  • URL_MAP: השם של מפת URL

כדי לצרף את מיפוי האישורים לשרת proxy קיים של HTTPS, משתמשים בפקודה gcloud compute target-https-proxies update. אם אתם לא יודעים את השם של שרת ה-proxy הקיים ליעד, עוברים לדף Target proxies ורושמים את השם של שרת ה-proxy ליעד.

gcloud compute target-https-proxies update PROXY_NAME \
    --certificate-map="CERTIFICATE_MAP_NAME" \
    --global

אחרי שיוצרים או מעדכנים את פרוקסי היעד, מריצים את הפקודה הבאה כדי לוודא שהוא תקין:

gcloud compute target-https-proxies list

Terraform

כדי לצרף את מיפוי האישורים לשרת ה-proxy של היעד, אפשר להשתמש במשאב google_compute_target_https_proxy.

כשמגדירים שרת proxy ליעד, אם מצרפים אישורי TLS (SSL) ישירות וגם דרך מיפוי אישורים, שרת ה-proxy משתמש באישורים שמקושרים למיפוי האישורים ומתעלם מאישורי ה-TLS (SSL) שצורפו ישירות.

אימות הסטטוס של האישור

לפני שמקצים אישור למאזן עומסים, צריך לוודא שהוא פעיל. יכול להיות שיחלפו כמה דקות עד שמצב האישור ישתנה לACTIVE.

המסוף

  1. נכנסים לדף Certificate Manager במסוף Google Cloud .

    מעבר אל Certificate Manager

  2. בכרטיסייה Certificates (אישורים), בודקים את העמודה Status (סטטוס) של האישור.

gcloud

כדי לבדוק את סטטוס האישור, מריצים את הפקודה הבאה:

gcloud certificate-manager certificates describe CERTIFICATE_NAME

מחליפים את CERTIFICATE_NAME בשם של אישור מנוהל על ידי Google.

הפלט אמור להיראות כך:

createTime: '2021-10-20T12:19:53.370778666Z'
expireTime: '2022-05-07T05:03:49Z'
managed:
  authorizationAttemptInfo:
  - domain: myorg.example.com
    state: AUTHORIZED
  domains:
  - myorg.example.com
  state: ACTIVE
name: projects/myProject/locations/global/certificates/myCert
pemCertificate: |
  -----BEGIN CERTIFICATE-----
  [...]
  -----END CERTIFICATE-----
sanDnsnames:
  - myorg.example.com
updateTime: '2021-10-20T12:19:55.083385630Z'

אם מצב האישור לא משתנה ל-ACTIVE אחרי כמה שעות, כדאי לבדוק את הדברים הבאים:

שלבים נוספים לפתרון בעיות זמינים במאמר בנושא פתרון בעיות ב-Certificate Manager.

הסרת המשאבים

כדי להימנע מחיובים בחשבון Google Cloud על המשאבים שבהם השתמשתם במדריך הזה, מוחקים אותם.

  1. מחיקת מאזן העומסים והמשאבים שלו.

    מידע נוסף זמין במאמר בנושא הסרת הגדרות של איזון עומסים.

  2. מוחקים את מיפוי האישורים מהפרוקסי או מנתקים אותו ממנו.

    כדי למחוק את מיפוי האישורים, מריצים את הפקודה הבאה:

    gcloud compute target-https-proxies delete PROXY_NAME
    

    אם רוצים להשאיר את שרת ה-proxy של HTTPS, צריך לנתק את מיפוי האישורים משרת ה-proxy.

    • אם יש אישורי TLS ‏ (SSL) שמצורפים ישירות ל-proxy, ניתוק מפת האישורים גורם ל-proxy לחזור להשתמש באישורי ה-TLS ‏ (SSL) שמצורפים ישירות.
    • אם אין אישורי TLS ‏ (SSL) שמצורפים ישירות לשרת ה-proxy, אי אפשר לנתק את מיפוי האישורים משרת ה-proxy. קודם צריך לצרף לפחות אישור TLS ‏ (SSL) ישירות לשרת ה-proxy, ורק אחר כך אפשר לנתק את מיפוי האישורים.

    כדי לנתק את מיפוי האישורים, מריצים את הפקודה הבאה:

    gcloud compute target-https-proxies update PROXY_NAME \
        --clear-certificate-map
    

    מחליפים את PROXY_NAME בשם של שרת proxy היעד.

  3. מוחקים את הרשומה של מיפוי האישורים ממפת האישורים:

    gcloud certificate-manager maps entries delete CERTIFICATE_MAP_ENTRY_NAME \
        --map="CERTIFICATE_MAP_NAME"
    

    מחליפים את מה שכתוב בשדות הבאים:

    • CERTIFICATE_MAP_ENTRY_NAME: השם של רשומת המיפוי לאישורים.
    • CERTIFICATE_MAP_NAME: שם מיפוי האישורים.
  4. מחיקת מיפוי האישורים:

    gcloud certificate-manager maps delete CERTIFICATE_MAP_NAME
    

    מחליפים את CERTIFICATE_MAP_NAME בשם של מיפוי האישורים.

  5. מוחקים את האישור שמנוהל על ידי Google:

    המסוף

    1. נכנסים לדף Certificate Manager במסוף Google Cloud .

      מעבר אל Certificate Manager

    2. בכרטיסייה אישורים, מסמנים את תיבת הסימון של האישור.

    3. לוחצים על Delete.

    4. בתיבת הדו-שיח שמופיעה, לוחצים על מחיקה כדי לאשר.

    gcloud

    gcloud certificate-manager certificates delete CERTIFICATE_NAME
    

    מחליפים את CERTIFICATE_NAME בשם של אישור היעד.

המאמרים הבאים