פריסת אישור גלובלי בניהול עצמי

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

מאזני העומסים הבאים תומכים באישורים גלובליים בניהול עצמי:

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

אם רוצים לפרוס במאזני עומסים אזוריים או בכמה אזורים, צריך לעיין במאמרים הבאים:

מטרות

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

  • העלאת אישור בניהול עצמי ל-Certificate Manager.
  • פורסים את האישור במאזן עומסים נתמך באמצעות שרת proxy ל-HTTPS.

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

  1. 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

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

  3. Enable the Compute Engine, Certificate Manager APIs, if any are not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the APIs

  4. Install the Google Cloud CLI.

  5. Configure the gcloud CLI to use your federated identity.

    For more information, see Sign in to the gcloud CLI with your federated identity.

  6. To initialize the gcloud CLI, run the following command:

    gcloud init

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

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

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

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

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

    נדרשת כדי ליצור ולנהל שרת proxy לחלוקת העומס מסוג HTTPS.

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

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

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

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

יצירת מפתח פרטי ואישור

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

  1. משתמשים ברשות אישורים (CA) מהימנה של צד שלישי כדי להנפיק את האישור יחד עם המפתח שמשויך אליו.

  2. מוודאים שהאישור משורשר כראוי ומהימן ברמת הבסיס.

  3. מכינים את הקבצים הבאים בקידוד PEM:

    • קובץ האישור (CRT)
    • קובץ המפתח הפרטי התואם (KEY)

במאמר יצירת מפתח פרטי ואישור מוסבר איך לבקש ולאמת אישור.

העלאת אישור בניהול עצמי ל-Certificate Manager

כדי להעלות את האישור ל-Certificate Manager:

המסוף

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

    כניסה ל-Certificate Manager

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

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

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

  5. בקטע Location, בוחרים באפשרות Global.

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

  7. בשביל Certificate type, בוחרים Create self-managed certificate.

  8. בשדה Certificate, מבצעים אחת מהפעולות הבאות:

    • לוחצים על הלחצן Upload ובוחרים את קובץ האישור בפורמט PEM.
    • מעתיקים ומדביקים את התוכן של אישור בפורמט PEM. התוכן חייב להתחיל ב------BEGIN CERTIFICATE----- ולהסתיים ב------END CERTIFICATE-----.
  9. בשדה אישור מפתח פרטי, מבצעים אחת מהפעולות הבאות:

    • לוחצים על הכפתור Upload ובוחרים את המפתח הפרטי. המפתח הפרטי צריך להיות בפורמט PEM ולא מוגן באמצעות ביטוי סיסמה.
    • מעתיקים ומדביקים את התוכן של מפתח פרטי בפורמט PEM. המפתחות הפרטיים צריכים להתחיל ב------BEGIN PRIVATE KEY----- ולהסתיים ב------END PRIVATE KEY-----.
  10. בשדה Labels, מציינים את התוויות שרוצים לשייך לאישור. כדי להוסיף תווית, לוחצים על Add label ומציינים מפתח וערך בשביל התווית.

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

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

gcloud

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

gcloud certificate-manager certificates create CERTIFICATE_NAME \
    --certificate-file="CERTIFICATE_FILE" \
    --private-key-file="PRIVATE_KEY_FILE"

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

  • ‫CERTIFICATE_NAME: שם האישור.
  • ‫CERTIFICATE_FILE: הנתיב ושם הקובץ של קובץ האישור בפורמט CRT.
  • ‫PRIVATE_KEY_FILE: הנתיב ושם הקובץ של קובץ המפתח הפרטי KEY.

Terraform

כדי להעלות אישור בניהול עצמי, אפשר להשתמש במשאב google_certificate_manager_certificate עם הבלוק self_managed.

API

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

POST /v1/projects/PROJECT_ID/locations/global/certificates?certificate_id=CERTIFICATE_NAME
{
  self_managed: {
    pem_certificate: "PEM_CERTIFICATE",
    pem_private_key: "PEM_KEY",
  }
}

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

  • ‫PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
  • ‫CERTIFICATE_NAME: שם האישור.
  • ‫PEM_CERTIFICATE: קובץ ה-PEM של האישור.
  • ‫PEM_KEY: ה-PEM של המפתח.

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

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

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

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

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: שם המארח שרוצים לשייך לרשומת המיפוי לאישורים.

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

Terraform

כדי ליצור רשומת מיפוי לאישורים עם דומיין בסיסי (root), משתמשים במשאב 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}"
}

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

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

כדי לאמת את רשומת המיפוי לאישורים, משתמשים בפקודה 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 לחלוקת העומס הוא חלק ממאזן עומסים קיים, אפשר לצרף את מפת האישורים על ידי עריכת הגדרת הקצה הקדמי של מאזן העומסים.

  1. במסוף Google Cloud , עוברים לדף איזון עומסים.

    כניסה לדף Load balancing

  2. לוחצים על השם של מאזן העומסים שרוצים לעדכן ואז על Edit.

  3. לוחצים על Frontend configuration ובוחרים את כתובת ה-IP של ממשק הקצה ואת הגדרת היציאה שרוצים לערוך.

  4. אם מופיעה האפשרות Choose certificate repository, בוחרים באפשרות Use certificate map.

  5. ברשימה Select a certificate map, בוחרים את מפת האישורים.

  6. לוחצים על Done ואז על Update.

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

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

gcloud compute target-https-proxies list

Terraform

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

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

הסרת המשאבים

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

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

    ניקוי הגדרה של איזון עומסים

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

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

    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. מוחקים את האישור שהועלה:

    gcloud certificate-manager certificates delete CERTIFICATE_NAME
    

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

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