このページでは、相互 TLS 認証(mTLS)シナリオで使用する信頼構成を作成、管理する方法について説明します。
mTLS の詳細については、次のリソースをご覧ください。
信頼構成、トラスト アンカー、中間証明書のコンセプトを理解するには、信頼構成をご覧ください。
mTLS の詳細については、Cloud Load Balancing ドキュメントの相互 TLS の概要をご覧ください。
信頼構成を使用してターゲット プロキシで mTLS を構成するには、Cloud Load Balancing ドキュメントの次のいずれかのページをご覧ください。
信頼構成を作成する
信頼構成を作成するときに、証明書の検証に使用するトラスト アンカーを指定する必要があります。
信頼構成を作成するには、次の手順を行います。
コンソール
Google Cloud コンソールで、[Certificate Manager] ページに移動します。
[信頼構成] タブで、[信頼構成を追加] をクリックします。
[名前] フィールドに、構成の名前を入力します。
名前は、プロジェクト内で一意にする必要があります。また、先頭を小文字にし、その後を最大 19 文字の小文字、数字、ハイフンで構成する必要があります。末尾をハイフンにすることはできません。
省略可: [説明] フィールドに構成の説明を入力します。この説明は、後で特定の構成を識別する際に役立ちます。
省略可: [ラベル] フィールドで、信頼構成に関連付けるラベルを指定します。ラベルを追加するには、[
ラベルを追加] をクリックして、ラベルのキーと値を指定します。[ロケーション] で、[グローバル] または [リージョン] を選択します。
[リージョン] を選択した場合は、リージョンを選択します。
[トラストストア] セクションで、トラスト アンカーと中間 CA を追加します。
証明書の完全な PEM ペイロードの複数のインスタンス(インスタンスごとに 1 つの証明書)を使用して、複数のトラスト アンカーと中間証明書を指定できます。
[トラスト アンカー] セクションで、[トラスト アンカーを追加] をクリックし、PEM でエンコードされた証明書ファイルをアップロードするか、証明書の内容をコピーします。完了したら、[追加] をクリックします。
省略可: [中間 CA] セクションで、[中間 CA を追加] をクリックし、PEM でエンコードされた中間証明書ファイルをアップロードするか、中間証明書の内容をコピーします。完了したら、[追加] をクリックします。
この手順により、ルート証明書とサーバー証明書の間に別の信頼レベルを追加できます。
省略可: [許可リストに登録済みの証明書] セクションで、[証明書を追加] をクリックし、PEM でエンコードされた証明書ファイルをアップロードするか、証明書の内容をコピーします。これにより、証明書が許可リストに追加されます。完了したら、[追加] をクリックします。
信頼構成リソース仕様内で複数のトラスト アンカーまたは中間証明書を指定するには、
pemCertificate
フィールドの複数のインスタンスを使用します。フィールドの各インスタンスには、1 つの証明書が含まれています。信頼構成では、許可リストに登録されている証明書は常に有効と見なされます。許可リストで複数の証明書をカプセル化する場合は、
pemCertificate
フィールドの複数のインスタンスを使用します(インスタンスごとに 1 つの証明書)。許可リストに追加された証明書を使用する場合、トラストストアは必要ありません。信頼構成では、許可リストに登録されている証明書が特定の条件を満たしている場合、その証明書は常に有効とみなされます。この条件は、証明書が解析可能であること、秘密鍵の所有権の証明があること、証明書の SAN フィールドの制約に準拠していることです。期限切れの証明書も、許可リストに追加された場合は有効とみなされます。PEM エンコード形式の詳細については、RFC 7468 をご覧ください。
[作成] をクリックします。
新しい信頼構成が構成リストに表示されていることを確認します。
gcloud
信頼構成パラメータを指定する信頼構成 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_CERT1
とALLOWLISTED_CERT2
: この信頼構成リソースに使用する許可リストに追加される証明書。
信頼構成リソース仕様内で複数のトラスト アンカーまたは中間証明書を指定するには、
pemCertificate
フィールドの複数のインスタンスを使用します。フィールドの各インスタンスには、1 つの証明書が含まれています。信頼構成では、許可リストに登録されている証明書は常に有効と見なされます。許可リストで複数の証明書をカプセル化する場合は、
pemCertificate
フィールドの複数のインスタンスを使用します(インスタンスごとに 1 つの証明書)。許可リストに追加された証明書を使用する場合、トラストストアは必要ありません。信頼構成では、許可リストに登録されている証明書が特定の条件を満たしている場合、その証明書は常に有効とみなされます。この条件は、証明書が解析可能であること、秘密鍵の所有権の証明があること、証明書の SAN フィールドの制約に準拠していることです。期限切れの証明書も、許可リストに追加された場合は有効とみなされます。PEM エンコード形式の詳細については、RFC 7468 をご覧ください。
信頼構成 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 にインポートします。
コンソール
Google Cloud コンソールで、[Certificate Manager] ページに移動します。
[信頼構成] タブで、更新する信頼構成を見つけて選択します。
[その他のオプション] 列で、更新する構成の [
その他の操作] をクリックし、[編集] を選択します。必要な変更を行います。
[保存] をクリックします。
構成変更が更新されたことを確認します。
gcloud
信頼構成 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
です。
信頼構成 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_CERT1
とALLOWLISTED_CERT2
: この信頼構成リソースに使用する許可リストに追加される証明書。この値はオプションです。
既存の信頼構成リソース名に対して、新しい信頼構成ファイルを 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
: この信頼構成リソースに使用する許可リストに追加される証明書。この値はオプションです。
信頼構成を一覧表示する
プロジェクトで構成されたすべての信頼構成を確認できます。
Console
Google Cloud コンソールで、[Certificate Manager] ページに移動します。
[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
: 信頼構成リソースが保存されるリージョン。デフォルトの場所はglobal
です。 すべてのロケーションのすべての信頼構成を表示するには、ハイフン 1 つ(-
)を指定します。
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
: 信頼構成リソースが保存されるリージョン。すべてのロケーションのすべての信頼構成を表示するには、ハイフン 1 つ(-
)を指定します。FILTER
: 返される結果を特定の値に制限する式。たとえば、ラベルと作成時間で結果をフィルタするには、次のように指定します。
--filter='labels.key:value AND create_time > "2021-09-01T00:00:00Z"'
Certificate Manager で使用できるその他のフィルタリングの例については、Cloud Key Management Service のドキュメントのリストの結果の並べ替えとフィルタリングをご覧ください。
PAGE_SIZE
: ページごとに返す結果の数SORT_BY
: 返される結果の並べ替えの基準とするname
フィールドのカンマ区切りリスト。 デフォルトの並べ替え順は昇順です。降順で並べ替えるには、フィールドの先頭にチルダ(~
)を付けます。
信頼構成を表示する
特定の信頼構成の詳細を確認できます。
Console
Google Cloud コンソールで、[Certificate Manager] ページに移動します。
[Trust Configs] タブをクリックします。このタブには、構成済みの信頼構成リソースのリストが表示されます。
信頼構成リソースを選択して詳細を表示します。 [Trust Config details] ページに、選択した信頼構成の詳細が表示されます。
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
)リソースから信頼構成を切断します。
コンソール
Google Cloud コンソールで、[Certificate Manager] ページに移動します。
[信頼構成] タブで、削除する信頼構成のチェックボックスをオンにします。
[削除] をクリックします。
表示されたダイアログで、[削除] をクリックして確定します。
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。