証明書マップを管理する

このページでは、証明書マップを作成して管理する方法について説明します。

証明書マップの詳細については、Certificate Manager の仕組みをご覧ください。

Certificate Manager を使用して証明書をデプロイする方法については、デプロイの概要をご覧ください。

このページで使用されている gcloud コマンドの詳細については、Certificate Manager CLI のリファレンスをご覧ください。

CertificateMap を作成する

証明書マップを作成するには、このセクションの手順を完了します。

このタスクを完了するには、ターゲットの Google Cloud プロジェクトに対する次のいずれかのロールが必要です。

  • Certificate Manager 編集者
  • Certificate Manager オーナー

詳細については、ロールと権限をご覧ください。

gcloud

gcloud certificate-manager maps create CERTIFICATE_MAP_NAME

以下のように置き換えます。

  • CERTIFICATE_MAP_NAME は、この証明書マップを説明する一意の名前です。

Terraform

証明書マップを作成するには、google_certificate_manager_certificate_map リソースを使用します。

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

Terraform 構成を適用または削除する方法については、基本的な Terraform コマンドをご覧ください。

API

次のように、certificateMaps.create メソッドに POST リクエストを送信して証明書マップを作成します。

POST /v1/projects/PROJECT_ID/locations/global/certificateMaps?certificate_map_id=CERTIFICATE_MAP_NAME

以下のように置き換えます。

  • PROJECT_ID は、ターゲットの Google Cloud プロジェクトの ID です。
  • CERTIFICATE_MAP_NAME は、この証明書マップを説明する一意の名前です。

証明書マップをプロキシに関連付ける

証明書マップを作成し、適切な構成の証明書マップエントリを入力したら、目的のプロキシに添付する必要があります。Certificate Manager は、ターゲット HTTPS プロキシとターゲット SSL プロキシをサポートしています。これらのプロキシタイプの違いについて詳しくは、ターゲット プロキシの使用をご覧ください。

既存の TLS(SSL)証明書がプロキシに直接添付されている場合、プロキシは、直接添付されている TLS(SSL)証明書よりも、証明書マップによって参照される証明書を優先します。

このタスクを完了するには、ターゲットの Google Cloud プロジェクトに対する編集者のロールが必要です。

gcloud

gcloud compute PROXY_TYPE update PROXY_NAME \
    --certificate-map="CERTIFICATE_MAP_NAME"

以下のように置き換えます。

  • PROXY_TYPE は、ターゲット プロキシのタイプです。サポートされるタイプは次のとおりです。
    • ターゲット HTTP プロキシの場合は、target-https-proxies を使用します。
    • ターゲット SSL プロキシの場合には、target-ssl-proxies を使用します。
  • PROXY_NAME は、ターゲット プロキシの名前です。
  • CERTIFICATE_MAP_NAME は、目的の証明書を参照する 1 つ以上の証明書マップエントリを含む証明書マップの名前です。

API

次のように、targetHttpsProxies メソッドまたは targetSslProxies メソッドに対して POST リクエストを行い、証明書マップを接続します。

POST /projects/PROJECT_ID/global/PROXY_TYPE/PROXY_NAME/setCertificateMap
{
  certificateMap: "//certificatemanager.googleapis.com/projects/PROJECT_ID/locations/global/certificateMaps/CERTIFICATE_MAP_NAME",
}

以下のように置き換えます。

  • PROJECT_ID は、ターゲットの Google Cloud プロジェクトの ID です。
  • PROXY_TYPE は、ターゲット プロキシのタイプです。サポートされるタイプは次のとおりです。
    • ターゲット HTTP プロキシの場合は、targetHttpsProxies を使用します。
    • ターゲット SSL プロキシの場合には、targetSslProxies を使用します。
  • PROXY_NAME は、ターゲット プロキシの名前です。
  • CERTIFICATE_MAP_NAME は、ターゲット証明書を参照する証明書マップエントリを含む証明書マップの名前です。

プロキシから証明書マップを切断する

プロキシから証明書マップを切断するには、このセクションの手順を行います。

次の点にご注意ください。

  • プロキシに直接 TLS(SSL)証明書が添付されていた場合、証明書マップを切断すると、プロキシは直接添付された TLS(SSL)証明書を使用して再開します。
  • プロキシに直接 TLS(SSL)証明書が添付されていない場合、証明書マップをプロキシから切断することはできません。証明書マップを切断するには、まず少なくとも 1 つの TLS(SSL)証明書をプロキシに直接添付する必要があります。

このタスクを完了するには、ターゲットの Google Cloud プロジェクトに対する Compute ロードバランサ管理者のロールが必要です。

gcloud

gcloud compute PROXY_TYPE update PROXY_NAME \
    --clear-certificate-map

以下のように置き換えます。

  • PROXY_TYPE は、ターゲット プロキシのタイプです。サポートされるタイプは次のとおりです。
    • ターゲット HTTP プロキシの場合は、target-https-proxies を使用します。
    • ターゲット SSL プロキシの場合には、target-ssl-proxies を使用します。
  • PROXY_NAME は、ターゲット プロキシの名前です。

API

次のように、空の certificateMap 値を使用して targetHttpsProxies メソッドまたは targetSslProxies メソッドに対して POST リクエストを行い、証明書マップを切断します。

POST /projects/PROJECT_ID/global/PROXY_TYPE/PROXY_NAME/setCertificateMap
{
  certificateMap: "",
}

以下のように置き換えます。

  • PROJECT_ID は、ターゲットの Google Cloud プロジェクトの ID です。
  • PROXY_TYPE は、ターゲット プロキシのタイプです。サポートされるタイプは次のとおりです。
    • ターゲット HTTP プロキシの場合は、targetHttpsProxies を使用します。
    • ターゲット SSL プロキシの場合には、targetSslProxies を使用します。
  • PROXY_NAME は、ターゲット プロキシの名前です。

証明書マップを更新する

証明書マップの説明を更新するには、このセクションの手順を行います。

このタスクを完了するには、ターゲットの Google Cloud プロジェクトに対する次のいずれかのロールが必要です。

  • Certificate Manager 編集者
  • Certificate Manager オーナー

詳細については、ロールと権限をご覧ください。

gcloud

gcloud certificate-manager maps update CERTIFICATE_MAP_NAME \
    --description="DESCRIPTION"
    --update-labels="LABELS"

以下のように置き換えます。

  • CERTIFICATE_MAP_NAME は、ターゲット証明書マップの名前です。
  • DESCRIPTION は、この証明書マップの新しい説明です。
  • LABELS は、この証明書マップに適用されるラベルのカンマ区切りのリストです。

API

次のように、certificateMaps.patch メソッドに PATCH リクエストを送信して、証明書マップを更新します。

PATCH /v1/projects/PROJECT_ID/locations/global/certificateMaps/CERTIFICATE_MAP_NAME?updateMask=labels,description"
{
  "description": "DESCRIPTION",
  "labels": {
    "LABEL_KEY": "LABEL_VALUE",
}

以下のように置き換えます。

  • PROJECT_ID は、ターゲットの Google Cloud プロジェクトの ID です。
  • CERTIFICATE_MAP_NAME は、ターゲット証明書マップの名前です。
  • DESCRIPTION は、この証明書マップの新しい説明です。
  • LABEL_KEY は、この証明書マップに適用されるラベルキーです。
  • LABEL_VALUE は、この証明書マップに適用されるラベル値です。

証明書マップの一覧表示

現在構成されている証明書マップを一覧表示するには、このセクションの手順を行います。

このタスクを完了するには、ターゲットの Google Cloud プロジェクトに対する次のいずれかのロールが必要です。

  • Certificate Manager 閲覧者
  • Certificate Manager 編集者
  • Certificate Manager オーナー

詳細については、ロールと権限をご覧ください。

gcloud

gcloud certificate-manager maps list \
    --filter="FILTER" \
    --page-size="PAGE_SIZE" \
    --limit="LIMIT" \
    --sort-by="SORT_BY"

以下のように置き換えます。

  • 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 フィールドのカンマ区切りリストです。デフォルトの並べ替え順序は昇順です。降順で並べ替えるには、目的のフィールドの前に ~ という接頭辞を付けます。

API

次のように、certificateMaps.list メソッドに LIST リクエストを送信して、構成済みの証明書マップを一覧表示します。

GET /v1/projects/PROJECT_ID/locations/global/certificateMaps?filter=FILTER&pageSize=PAGE_SIZE&sortBy=SORT_BY

以下のように置き換えます。

  • PROJECT_ID は、ターゲットの Google Cloud プロジェクトの ID です。
  • FILTER は、返される結果を特定の値に制限する式です。
  • PAGE_SIZE はページごとに返す結果の数です。
  • SORT_BY は、返される結果の並べ替えの基準とするフィールド名のカンマ区切りリストです。デフォルトの並べ替え順序は昇順です。降順で並べ替えるには、目的のフィールドの前に ~ という接頭辞を付けます。

証明書マップの状態を表示する

証明書マップの状態を表示するには、このセクションの手順を完了します。

このタスクを完了するには、ターゲットの Google Cloud プロジェクトに対する次のいずれかのロールが必要です。

  • Certificate Manager 閲覧者
  • Certificate Manager 編集者
  • Certificate Manager オーナー

詳細については、ロールと権限をご覧ください。

gcloud

gcloud certificate-manager maps describe CERTIFICATE_MAP_NAME

以下のように置き換えます。

  • CERTIFICATE_MAP_NAME は、ターゲット証明書マップの名前です。

API

次のように、certificateMaps.get メソッドに GET リクエストを送信して、証明書マップの状態を表示します。

  GET /v1/projects/PROJECT_ID/locations/global/certificateMaps/CERTIFICATE_MAP_NAME

以下のように置き換えます。

  • PROJECT_ID は、ターゲットの Google Cloud プロジェクトの ID です。
  • CERTIFICATE_MAP_NAME は、ターゲット証明書マップの名前です。

証明書マップを削除する

証明書マップを削除するには、このセクションの手順を完了します。証明書マップを削除する前に、まずターゲット プロキシから切断する必要があります。

削除するマップに割り当てられた証明書マップエントリがある場合は、マップを削除する前に、手動で削除する必要があります。そうしないと、マップの削除は失敗します。

このタスクを完了するには、ターゲットの Google Cloud プロジェクトに対する Certificate Manager 所有者のロールが必要です。

詳細については、ロールと権限をご覧ください。

gcloud

gcloud certificate-manager maps delete CERTIFICATE_MAP_NAME

以下のように置き換えます。

  • CERTIFICATE_MAP_NAME は、ターゲット証明書マップの名前です。

API

次のように、certificateMaps.delete メソッドに対して DELETE リクエストを行い、証明書マップを削除します。

  DELETE /v1/projects/PROJECT_ID/locations/global/certificateMaps/CERTIFICATE_MAP_NAME

以下のように置き換えます。

  • PROJECT_ID は、ターゲットの Google Cloud プロジェクトの ID です。
  • CERTIFICATE_MAP_NAME は、ターゲット証明書マップの名前です。

次のステップ