管理信任設定

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

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

建立信任設定

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

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

控制台

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

    前往 Certificate Manager

  2. 按一下「新增信任設定」。系統隨即會顯示「Create Trust Config」(建立信任設定) 頁面。

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

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

  4. 選用:在「Description」(說明) 欄位中輸入設定的說明。這項說明有助於日後識別特定設定。

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

  6. 在「位置」部分,選取「全域」或「區域」

    如果選取「區域」,請選取「區域」

  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 檔案,指定新的信任設定參數,然後將這個檔案匯入 Certificate Manager。

控制台

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

    前往 Certificate Manager

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

  3. 在「更多選項」欄中,點選要更新的設定「更多動作」,然後選取「編輯」

  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. 將新的信任設定檔匯入 Certificate Manager,並使用現有的信任設定資源名稱。

    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. 在「信任設定」分頁中,您可以查看所選專案中所有已設定的信任設定資源清單。

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。

後續步驟