管理信任設定

本頁面說明如何建立及管理信任設定,以便用於相互 TLS 驗證 (mTLS) 情境。

如要進一步瞭解 mTLS,請參閱下列資源:

建立信任設定

建立信任設定時,您必須指定用於驗證憑證的信任錨點。

如要建立信任設定,請完成下列步驟:

主控台

  1. 在 Google Cloud 控制台中,前往「Certificate Manager」頁面的「Trust configs」分頁。

    前往 Certificate Manager

  2. 按一下「新增信任設定」。隨即顯示「Create Trust Config」頁面。

  3. 在「Name」欄位中,輸入設定名稱。

    此名稱在專案中不得重複。此外,開頭必須為小寫字母,後面最多可接 62 個小寫字母、數字或連字號,結尾不得為連字號。

  4. 選用:在「說明」欄位中輸入設定的說明。這項說明可協助您日後辨識特定設定。

  5. 選用:在「標籤」欄位中,指定要與信任設定建立關聯的標籤。如要新增標籤,請按一下 「Add label」,然後指定標籤的鍵和值。

  6. 在「Location」(位置) 部分,選取「Global」(全域)或「Regional」(區域)

    如果您選取「Regional」(區域),請選取「Region」(區域)

  7. 在「信任存放區」部分中,新增信任錨點和中繼 CA。

    您可以使用憑證的完整 PEM 酬載的多個例項 (每個例項一個憑證),指定多個信任錨點和中繼憑證。

    1. 在「信任錨點」部分,按一下「新增信任錨點」,然後上傳 PEM 編碼憑證檔案,或複製憑證內容。完成後,按一下「新增」

    2. 選用:在「中繼 CA」部分,按一下「新增中繼 CA」,然後上傳採用 PEM 編碼的中繼憑證檔案,或複製中繼憑證的內容。完成後,按一下「新增」

      這個步驟可讓您在根憑證和伺服器憑證之間新增另一層信任關係。

    3. 選用:在「允許清單憑證」部分,按一下「新增憑證」,然後上傳 PEM 編碼憑證檔案,或複製憑證內容。這會將憑證新增至許可清單。完成後,按一下「新增」

    如要在信任設定資源規格中指定多個信任錨點或中繼憑證,請使用 pemCertificate 欄位的多個例項。每個欄位例項都包含單一證書。

    信任設定一律會將許可清單上的憑證視為有效。如要在許可清單中封裝多個憑證,請使用 pemCertificate 欄位的多個例項,每個例項對應一個憑證。使用新增至許可清單的憑證時,您不需要信任存放區。

    信任設定一律會將許可清單上的憑證視為有效,前提是該憑證必須符合特定條件:必須可剖析、具備私密金鑰擁有權的證明,並遵守憑證 SAN 欄位的限制。已過期的憑證加入許可清單後,也視為有效。如要進一步瞭解 PEM 編碼格式,請參閱 RFC 7468

  8. 按一下 [建立]。

確認新的信任設定是否顯示在設定清單中。

gcloud

  1. 建立指定信任設定參數的信任設定 YAML 檔案。

    檔案格式如下:

    name: "TRUST_CONFIG_ID"
    trustStores:
    - trustAnchors:
      - pemCertificate: "CERTIFICATE_PEM_PAYLOAD"
      intermediateCas:
      - pemCertificate: "INTER_CERT_PEM_PAYLOAD"
    allowlistedCertificates:
    - pemCertificate: "ALLOWLISTED_CERT1"
    - pemCertificate: "ALLOWLISTED_CERT2"
    

    更改下列內容:

    • TRUST_CONFIG_ID:信任設定資源的 ID。
    • CERTIFICATE_PEM_PAYLOAD:憑證用於信任設定資源的完整 PEM 酬載。
    • INTER_CERT_PEM_PAYLOAD:中繼憑證的完整 PEM 酬載,用於信任設定資源。
    • ALLOWLISTED_CERT1ALLOWLISTED_CERT2:新增至許可清單的憑證,用於此信任設定資源。

    如要在信任設定資源規格中指定多個信任錨點或中繼憑證,請使用 pemCertificate 欄位的多個例項。每個欄位例項都包含單一證書。

    信任設定一律會將許可清單上的憑證視為有效。如要在許可清單中封裝多個憑證,請使用 pemCertificate 欄位的多個例項,每個例項對應一個憑證。使用新增至許可清單的憑證時,您不需要信任存放區。

    信任設定一律會將許可清單上的憑證視為有效,前提是該憑證必須符合特定條件:必須可剖析、具備私密金鑰擁有權的證明,並遵守憑證 SAN 欄位的限制。已過期的憑證加入許可清單後,也視為有效。如要進一步瞭解 PEM 編碼格式,請參閱 RFC 7468

  2. 如要匯入信任設定 YAML 檔案,請使用 gcloud certificate-manager trust-configs import 指令:

    gcloud certificate-manager trust-configs import TRUST_CONFIG_ID \
      --project=PROJECT_ID \
      --source=TRUST_CONFIG_FILE \
      --location=LOCATION
    

    更改下列內容:

    • TRUST_CONFIG_ID:信任設定資源的 ID。
    • PROJECT_ID: Google Cloud 專案的 ID。
    • TRUST_CONFIG_FILE:您在步驟 1 中建立的信任設定 YAML 檔案的完整路徑和名稱。
    • LOCATION:儲存信任設定資源的區域。預設位置為 global

API

trustConfigs.create 方法發出 POST 要求:

POST /v1/projects/PROJECT_ID/locations/LOCATION/trustConfigs?trust_config_id=TRUST_CONFIG_ID
{
  "description": "DESCRIPTION",
  "trust_stores": [{
    "trust_anchors": [{
      "pem_certificate": "CERTIFICATE_PEM_PAYLOAD"
    }],
    "intermediate_cas": [{
      "pem_certificate": "INTER_CERT_PEM_PAYLOAD"
    }],
  }],
  "allowlistedCertificates": [{
    "pem_certificate": "ALLOWLISTED_CERT"
  }],
}

更改下列內容:

  • PROJECT_ID: Google Cloud 專案的 ID。
  • LOCATION:儲存信任設定資源的區域。預設位置為 global
  • TRUST_CONFIG_ID:信任設定資源的 ID。
  • DESCRIPTION:此信任設定資源的實用說明。這個值為選用值。
  • CERTIFICATE_PEM_PAYLOAD:憑證用於信任設定資源的完整 PEM 酬載。
  • INTER_CERT_PEM_PAYLOAD:中繼憑證的完整 PEM 酬載,用於信任設定資源。這個值為選用值。
  • ALLOWLISTED_CERT:新增至許可清單的憑證,用於此信任設定資源。這個值為選用值。

更新信任設定

如要更新信任設定,請建立另一個信任設定 YAML 檔案,指定新的信任設定參數,然後將此檔案匯入憑證管理工具。

主控台

  1. 在 Google Cloud 控制台中,前往「Certificate Manager」頁面的「Trust configs」分頁。

    前往 Certificate Manager

  2. 找出並選取要更新的信任設定。

  3. 在「More Options」欄中,按一下要更新的設定的「More actions」,然後選取「Edit」

  4. 進行必要變更。

  5. 按一下 [儲存]

確認設定變更已更新。

gcloud

  1. 匯出信任設定 YAML 檔案。

    gcloud certificate-manager trust-configs export TRUST_CONFIG_ID \
        --project=PROJECT_ID \
        --destination=TRUST_CONFIG_FILE \
        --location=LOCATION
    

    更改下列內容:

    • TRUST_CONFIG_ID:信任設定資源的 ID。
    • PROJECT_ID: Google Cloud 專案的 ID。
    • TRUST_CONFIG_FILE:信任設定 YAML 檔案的完整路徑和名稱。
    • LOCATION:信任設定資源的儲存區域。預設位置為 global
  2. 編輯信任設定 YAML 檔案。

    檔案格式如下:

    name: "TRUST_CONFIG_ID"
    trustStores:
    - trustAnchors:
      - pemCertificate: "CERTIFICATE_PEM_PAYLOAD"
      intermediateCas:
      - pemCertificate: "INTER_CERT_PEM_PAYLOAD"
    allowlistedCertificates:
    - pemCertificate: "ALLOWLISTED_CERT1"
    - pemCertificate: "ALLOWLISTED_CERT2"
    

    更改下列內容:

    • TRUST_CONFIG_ID:信任設定資源的 ID。
    • CERTIFICATE_PEM_PAYLOAD:憑證用於信任設定資源的完整 PEM 酬載。
    • INTER_CERT_PEM_PAYLOAD:中繼憑證的完整 PEM 酬載,用於信任設定資源。這個值為選用。
    • ALLOWLISTED_CERT1ALLOWLISTED_CERT2:新增至許可清單的憑證,用於此信任設定資源。這個值為選用。
  3. 將新的信任設定檔匯入憑證管理工具,並使用現有的信任設定資源名稱。

    gcloud certificate-manager trust-configs import TRUST_CONFIG_ID \
        --project=PROJECT_ID \
        --source=TRUST_CONFIG_FILE \
        --location=LOCATION
    

    更改下列內容:

    • TRUST_CONFIG_ID:信任設定資源的 ID。
    • PROJECT_ID: Google Cloud 專案的 ID。
    • TRUST_CONFIG_FILE:信任設定 YAML 檔案的完整路徑和名稱。
    • LOCATION:信任設定資源的儲存區域。預設位置為 global

API

trustConfigs.update 方法發出 PATCH 要求:

PATCH /v1/projects/PROJECT_ID/locations/LOCATION/trustConfigs/TRUST_CONFIG_ID?update_mask=*
  {
    "description": "DESCRIPTION",
    "trust_stores": [{
      "trust_anchors": [{
        "pem_certificate": "CERTIFICATE_PEM_PAYLOAD"
      }],
      "intermediate_cas": [{
        "pem_certificate": "INTER_CERT_PEM_PAYLOAD"
      }],
    }],
    "allowlistedCertificates": [{
      "pem_certificate": "ALLOWLISTED_CERT"
  }],
  }

更改下列內容:

  • PROJECT_ID: Google Cloud 專案的 ID。
  • LOCATION:信任設定資源的儲存區域。預設位置為 global
  • TRUST_CONFIG_ID:信任設定資源的 ID。
  • DESCRIPTION:此信任設定資源的實用說明。這項說明為選用項目。
  • CERTIFICATE_PEM_PAYLOAD:憑證用於信任設定資源的完整 PEM 酬載。
  • INTER_CERT_PEM_PAYLOAD:中繼憑證的完整 PEM 酬載,用於信任設定資源。這個值為選用值。
  • ALLOWLISTED_CERT:新增至許可清單的憑證,用於此信任設定資源。這個值為選用值。

列出信任設定

您可以查看專案的所有已設定信任設定。

控制台

  1. 在 Google Cloud 控制台中,前往「Certificate Manager」頁面的「Trust configs」分頁。

    前往 Certificate Manager

  2. 在「Trust configs」分頁中,您可以查看所選專案中所有已設定信任設定資源的清單。

gcloud

使用 gcloud certificate-manager trust-configs list 指令:

gcloud certificate-manager trust-configs list \
    --filter="FILTER" \
    --page-size="PAGE_SIZE" \
    --limit="LIMIT" \
    --sort-by="SORT_BY" \
    --location=LOCATION

更改下列內容:

  • FILTER:限制傳回結果的值的運算式。

    舉例來說,如要依標籤和建立時間篩選結果,您可以指定: --filter='labels.key:value AND create_time > "2021-09-01T00:00:00Z"'

    如需更多可搭配 Certificate Manager 使用的篩選範例,請參閱 Cloud Key Management Service 說明文件中的「排序及篩選清單結果」。

  • PAGE_SIZE:每頁傳回的結果數量。

  • LIMIT:傳回的結果數上限。

  • SORT_BY:以逗號分隔的 name 欄位清單,用於排序傳回的結果。預設排序順序為遞增;如要遞減排序,請在欄位前面加上波浪號 (~)。

  • LOCATION:信任設定資源的儲存區域。如要列出所有區域的憑證信任設定,請使用 - 做為值。預設值為 -。這個旗標是選用的。

API

trustConfigs.list 方法發出 GET 要求:

GET /v1/projects/PROJECT_ID/locations/LOCATION/trustConfigs?filter=FILTER&pageSize=PAGE_SIZE&sortBy=SORT_BY

更改下列內容:

  • PROJECT_ID: Google Cloud 專案的 ID。
  • LOCATION:信任設定資源的儲存區域。如要查看所有位置的所有信任設定,請指定單一連字號 (-)。
  • FILTER:限制傳回結果的值的運算式。

    舉例來說,如要依標籤和建立時間篩選結果,您可以指定: --filter='labels.key:value AND create_time > "2021-09-01T00:00:00Z"'

    如需更多可搭配 Certificate Manager 使用的篩選範例,請參閱 Cloud Key Management Service 說明文件中的「排序及篩選清單結果」。

  • PAGE_SIZE:每頁傳回的結果數量。

  • SORT_BY:以逗號分隔的 name 欄位清單,用於排序傳回的結果。預設排序順序為遞增;如要遞減排序,請在欄位前面加上波浪號 (~)。

查看信任設定

您可以查看特定信任設定的詳細資料。

控制台

  1. 在 Google Cloud 控制台中,前往「Certificate Manager」頁面的「Trust configs」分頁。

    前往 Certificate Manager

  2. 按一下要查看的信任設定資源。「信任設定詳細資料」頁面會顯示所選信任設定資源的詳細資訊。

gcloud

使用 gcloud certificate-manager trust-configs describe 指令:

gcloud certificate-manager trust-configs describe TRUST_CONFIG_ID \
    --location=LOCATION

更改下列內容:

  • TRUST_CONFIG_ID:信任設定資源的 ID。
  • LOCATION:信任設定資源的儲存區域。預設位置為 global

API

trustConfigs.get 方法發出 GET 要求:

GET /v1/projects/PROJECT_ID/locations/LOCATION/trustConfigs/TRUST_CONFIG_ID

更改下列內容:

  • PROJECT_ID: Google Cloud 專案的 ID。
  • LOCATION:信任設定資源的儲存區域。預設位置為 global
  • TRUST_CONFIG_ID:信任設定資源的 ID。

刪除信任設定

刪除信任設定前,請先將信任設定從用戶端驗證 (ServerTlsPolicy) 資源中分離。

主控台

  1. 在 Google Cloud 控制台中,前往「Certificate Manager」頁面的「Trust configs」分頁。

    前往 Certificate Manager

  2. 找出要刪除的信任設定,然後選取對應的核取方塊。

  3. 點選「刪除」。

  4. 在出現的對話方塊中,按一下 [Delete] (刪除) 以進行確認。

gcloud

使用 gcloud certificate-manager trust-configs delete 指令:

gcloud certificate-manager trust-configs delete TRUST_CONFIG_ID \
    --location=LOCATION

更改下列內容:

  • TRUST_CONFIG_ID:信任設定資源的 ID。
  • LOCATION:信任設定資源的儲存區域。預設位置為 global

API

trustConfigs.delete 方法發出 DELETE 要求:

DELETE /v1/projects/PROJECT_ID/locations/LOCATION/trustConfigs/TRUST_CONFIG_ID

更改下列內容:

  • PROJECT_ID: Google Cloud 專案的 ID。
  • LOCATION:信任設定資源的儲存區域。預設位置為 global
  • TRUST_CONFIG_ID:信任設定資源的 ID。

後續步驟