בקשת אישור באמצעות תבנית אישור

בדף הזה מוסבר איך לבקש אישור באמצעות תבנית אישור.

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

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

  1. הכנת הסביבה לשימוש בשירות CA.

  2. כדי לקבל את ההרשאות שנדרשות להנפקת אישורים באמצעות תבנית אישורים, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM ‏CA Service Certificate Template User (roles/privateca.templateUser) בתבנית האישורים.

    מידע נוסף על התפקידים המוגדרים מראש ב-IAM עבור CA Service זמין במאמר בקרת גישה באמצעות IAM.

    מידע על הקצאת תפקיד IAM לחשבון משתמש מופיע במאמר הקצאת תפקיד יחיד.

הנפקת אישור בדיקה

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

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

המסוף

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

    כניסה אל Certificate Authority Service

  2. לוחצים על הכרטיסייה Template Manager (הכלי לניהול תבניות).

  3. לוחצים על תבנית האישור שרוצים לבדוק. יופיע הדף Template Details (פרטי התבנית).

  4. כדי ליצור בקשת בדיקה, לוחצים על יצירת אישור ואז על בדיקת הנפקת אישור. יופיע טופס בקשת האישור.

  5. צריך לציין את הפרטים הבאים כדי ליצור בקשת אישור:

    • אזור: המיקום של האישור. המיקום הזה צריך להיות זהה למיקום של מאגר אישורי ה-CA.
    • מאגר CA: מאגר ה-CA שאחראי להנפקת האישור.
    • תבנית אישור: התבנית שבה רוצים להשתמש להנפקת אישור.
    • דומיין: שם הדומיין של האתר שרוצים לאבטח באמצעות אישור SSL או TLS.
  6. לוחצים על יצירת אישור.

  7. אחרי שיוצרים את האישור, לוחצים על הצגה. האישור או הדוגמה מוצגים באותו הדף בחלונית נפרדת.

  8. אם הנפקת האישור נכשלת בגלל התנגשויות, צריך לפתור את ההתנגשויות ולשלוח שוב את הבקשה לאישור הבדיקה.

הנפקת אישורים באמצעות תבנית אישור

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

המסוף

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

    כניסה אל Certificate Authority Service}

  2. לוחצים על הכרטיסייה Template Manager (הכלי לניהול תבניות).

  3. בדף תבניות אישורים, לוחצים על תבנית האישור שרוצים להשתמש בה. יופיע הדף Template details (פרטי התבנית).

  4. לוחצים על יצירת אישור.

  5. בחירת אזור. האזור הזה צריך להיות זהה לאזור של מאגר אישורי ה-CA שבו אתם מתכוונים להשתמש.

  6. בוחרים את מאגר רשויות האישורים.

  7. כדי ליצור אישור באמצעות בקשת חתימה על אישור (CSR), אפשר לעיין במאמר בנושא בקשת אישור באמצעות CSR.

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

יצירת האישור

  1. לוחצים על יצירת אישור. אם האישור נוצר בהצלחה, תוצג הודעה.
  2. כדי לראות את האישור שנוצר, לוחצים על הצגת האישור ואז על הצגה.

אופציונלי: הורדת האישור החתום

  1. כדי להוריד את שרשרת האישורים בקידוד PEM, לוחצים על הורדת שרשרת האישורים.
  2. כדי להוריד את המפתח הפרטי המשויך בקידוד PEM, לוחצים על הורדת המפתח הפרטי.

gcloud

כדי להנפיק אישור באמצעות תבנית אישור, מוסיפים את הדגל --template לפקודה gcloud privateca certificates create בפורמט הבא:

--template=projects/PROJECT_ID/locations/LOCATION/certificateTemplates/CERTIFICATE_TEMPLATE

מחליפים את CERTIFICATE_TEMPLATE בשם של תבנית האישור שרוצים להשתמש בה להנפקת האישור הזה. התבנית שצוינה צריכה להיות באותו מיקום כמו מאגר ה-CA המנפיק. למידע נוסף, אפשר לעיין בדוגמאות שמופיעות במאמרים בנושא יצירת אישורי DNS לבדיקה ויצירת אישורים לייצור.

Terraform

/**
 * Copyright 2022 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

resource "google_privateca_certificate_template" "template" {
  location    = "us-central1"
  name        = "my-certificate-template"
  description = "An updated sample certificate template"

  identity_constraints {
    allow_subject_alt_names_passthrough = true
    allow_subject_passthrough           = true

    cel_expression {
      description = "Always true"
      expression  = "true"
      location    = "any.file.anywhere"
      title       = "Sample expression"
    }
  }

  passthrough_extensions {
    additional_extensions {
      object_id_path = [1, 6]
    }

    known_extensions = ["EXTENDED_KEY_USAGE"]
  }

  predefined_values {
    additional_extensions {
      object_id {
        object_id_path = [1, 6]
      }

      value    = "c3RyaW5nCg=="
      critical = true
    }

    aia_ocsp_servers = ["string"]

    ca_options {
      is_ca                  = false
      max_issuer_path_length = 6
    }

    key_usage {
      base_key_usage {
        cert_sign          = false
        content_commitment = true
        crl_sign           = false
        data_encipherment  = true
        decipher_only      = true
        digital_signature  = true
        encipher_only      = true
        key_agreement      = true
        key_encipherment   = true
      }

      extended_key_usage {
        client_auth      = true
        code_signing     = true
        email_protection = true
        ocsp_signing     = true
        server_auth      = true
        time_stamping    = true
      }

      unknown_extended_key_usages {
        object_id_path = [1, 6]
      }
    }

    policy_ids {
      object_id_path = [1, 6]
    }
  }
}

resource "google_privateca_certificate_authority" "test_ca" {
  pool                     = "my-pool"
  certificate_authority_id = "my-certificate-authority-test-ca"
  location                 = "us-central1"
  deletion_protection      = false # set to true to prevent destruction of the resource
  config {
    subject_config {
      subject {
        organization = "HashiCorp"
        common_name  = "my-certificate-authority"
      }
      subject_alt_name {
        dns_names = ["hashicorp.com"]
      }
    }
    x509_config {
      ca_options {
        # is_ca *MUST* be true for certificate authorities
        is_ca = true
      }
      key_usage {
        base_key_usage {
          # cert_sign and crl_sign *MUST* be true for certificate authorities
          cert_sign = true
          crl_sign  = true
        }
        extended_key_usage {
          server_auth = false
        }
      }
    }
  }
  key_spec {
    algorithm = "RSA_PKCS1_4096_SHA256"
  }
}


resource "google_privateca_certificate" "default" {
  pool                  = "my-pool"
  location              = "us-central1"
  certificate_authority = google_privateca_certificate_authority.test_ca.certificate_authority_id
  lifetime              = "860s"
  name                  = "my-certificate-from-template"
  pem_csr               = tls_cert_request.example.cert_request_pem
  certificate_template  = google_privateca_certificate_template.template.id
}

resource "tls_private_key" "example" {
  algorithm = "RSA"
}

resource "tls_cert_request" "example" {
  private_key_pem = tls_private_key.example.private_key_pem

  subject {
    common_name  = "example.com"
    organization = "ACME Examples, Inc"
  }
}

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

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

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

המסוף

  1. במסוף Google Cloud , עוברים לכרטיסייה CA pool manager ולוחצים על Share request form link (שיתוף קישור לטופס בקשה).
  2. בחלונית Share request form link שמופיעה, בוחרים את מאגר רשויות האישורים ואת תבנית האישור שבחרתם ליצירת הבקשה. יוצג קישור לבקשת האישור.
  3. מעתיקים את הקישור ומשתפים אותו לפי הצורך.

הצגת אישורים שהונפקו באמצעות תבנית

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

המסוף

  1. במסוף Google Cloud , עוברים לכרטיסייה Template Manager.
  2. לוחצים על תבנית האישור שבה השתמשתם להנפקת אישורים.
  3. בדף פרטי התבנית, לוחצים על אישורים. מוצגת רשימת האישורים שהונפקו באמצעות תבנית האישור שנבחרה.

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