CA プールを作成します
このページでは、認証局(CA)プールの作成方法について説明します。
CA プールは、共通の証明書発行ポリシーと Identity and Access Management(IAM)ポリシーを持つ複数の CA の集合です。CA プールを使用すると、CA ローテーション管理が容易になり、より高い有効な合計秒間クエリ数(QPS)を実現できます。
Certificate Authority Service を使用して CA を作成する前に、CA プールを作成する必要があります。詳細については、CA プールの概要をご覧ください。
始める前に
CA Service オペレーション マネージャー(roles/privateca.caManager
)の IAM ロールがあることを確認します。プリンシパルに IAM を付与する方法については、単一のロールを付与するをご覧ください。
CA プールの設定を決定する
このセクションでは、CA プールの設定と、設定を決定するための推奨事項について説明します。
永続的な CA プール設定
次の CA プール設定は、CA プールの作成後に変更できません。
- ロケーション
- CA プールのロケーションを指定します。CA プールは単一のGoogle Cloud ロケーションに保存されます。CA プールは、使用するロケーションと同じロケーションまたはその近くに作成することをおすすめします。
- サポートされているロケーションの完全なリストについては、ロケーションをご覧ください。
- 階層
- DevOps ティアまたは Enterprise ティアのどちらで CA プールを作成するかを選択します。この選択は、CA Service が作成した証明書を保持するかどうか、作成した証明書を後で取り消すことができるかどうか、および CA プール内の CA から証明書を作成できる最大レートに影響します。詳細については、オペレーション ティアを選択するをご覧ください。
オプションの CA プール設定
- 証明書発行ポリシー
CA プールには証明書発行ポリシーを設定できます。この発行ポリシーは、CA プール内の CA が発行できる証明書に制限を適用します。CA プールの作成後に、CA プールの発行ポリシーを更新できます。詳細については、テンプレートと発行ポリシーの概要をご覧ください。
証明書発行ポリシーの構成について詳しくは、CA プールに証明書発行ポリシーを追加するをご覧ください。
- 公開オプション
各 CA の CA 証明書を公開するように CA プールを構成できます。証明書を発行する場合、この CA 証明書の URL が、認証局情報アクセス(AIA)拡張機能として証明書に含まれます。
Enterprise ティアの CA プール内の CA は、関連付けられた Cloud Storage バケットに証明書失効リスト(CRL)を公開できます。証明書を発行する場合、この CRL の URL が、CRL 配布ポイント(CDP)拡張機能として証明書に含まれます。証明書に CDP 拡張機能がないと、CRL を見つけることはできません。詳細については、証明書を取り消すをご覧ください。
公開された CA 証明書と CRL のエンコード形式を選択することもできます。サポートされているエンコード形式は、プライバシー強化メール(PEM)と識別符号化規則(DER)です。エンコード形式が指定されていない場合は、PEM が使用されます。
Google Cloud CLI または Google Cloud コンソールを使用して CA プールを作成すると、CA Service はデフォルトでこれらの公開オプションを有効にします。詳細については、CA プール内の CA の CA 証明書と CRL 公開を無効にするをご覧ください。
CA プールを作成します
CA プールを作成するには、次の手順に従います。
CA プールの名前を選択する
Google Cloud コンソールの [Certificate Authority Service] ページに移動します。
[CA プール マネージャー] をクリックします。
[
プールを作成] をクリックします。リージョンに固有の CA プールの名前を追加します。
[リージョン] フィールドのプルダウンからリージョンを選択します。詳細については、最適なロケーションを選択するをご覧ください。
Enterprise ティアまたは DevOps ティアを選択します。詳細については、オペレーション ティアを選択するをご覧ください。
[次へ] をクリックします。
許可される鍵アルゴリズムとサイズを構成する
CA Service では、CA プール内の CA をバッキングする Cloud KMS 鍵の署名アルゴリズムを選択できます。デフォルトでは、すべての鍵アルゴリズムが許可されます。
CA プールによって発行される証明書で許可される鍵を制限するには、次の手順を行います。この手順は任意です。
- 切り替えボタンをクリックします。
- [項目を追加] をクリックします。
[タイプ] リストで、鍵のタイプを選択します。
RSA 鍵を使用する場合は、次の手順を行います。
- 省略可: 最小モジュラス サイズ(ビット)を追加します。
- 省略可: 最大モジュラス サイズ(ビット)を追加します。
- [完了] をクリックします。
楕円曲線鍵を使用する場合は、次の手順を行います。
- 省略可: [楕円曲線のタイプ] リストで、楕円曲線のタイプを選択します。
- [完了] をクリックします。
許可する鍵をさらに追加するには、[項目を追加] をクリックして、手順 2 を繰り返します。
[次へ] をクリックします。
証明書リクエスト メソッドを構成する
証明書のリクエスト元が CA プールの証明書をリクエストするために使用できるメソッドを制限するには、次の手順を行います。
- 省略可: CSR ベースの証明書リクエストを制限するには、切り替えボタンをクリックします。
- 省略可: 構成ベースの証明書リクエストを制限するには、切り替えボタンをクリックします。
パブリッシュ オプションを設定する
公開オプションを構成するには、次の手順を行います。
- 省略可: CA プール内の CA の Cloud Storage バケットへの CA 証明書の公開を無効にするには、切り替えボタンをクリックします。
- 省略可: CA プール内の CA の Cloud Storage バケットへの CRL の公開を無効にするには、切り替えボタンをクリックします。
メニューをクリックして、公開された CA 証明書と CRL のエンコード形式を選択します。
[次へ] をクリックします。
CA プールから発行された証明書にベースライン値を構成するには、次の手順を行います。
- 切り替えボタンをクリックします。
- [ベースライン値を構成] をクリックします。
この設定を使用して、証明書に含まれる鍵の使用方法を構成できます。鍵の用途のオプションには、鍵の暗号化、データ暗号化、証明書署名、CRL 署名などがあります。
詳細については、鍵の用途をご覧ください。
鍵の基本的用途を定義するには、次の手順を行います。
- 省略可: 証明書に対する鍵の基本的用途を指定する場合は、表示されるウィンドウで切り替えボタンをクリックします。
- 希望する鍵の使用方法のチェックボックスをオンにします。
- [次へ] をクリックします。


この設定を使用すると、証明書に含まれる鍵を使用できるシナリオをより詳細に選択できます。オプションには、サーバー認証、クライアント認証、コード署名、メール保護などがあります。
鍵の拡張的用途は、オブジェクト ID(OID)を使用して定義されます。鍵の拡張的用途を構成しない場合は、すべての鍵の使用シナリオが許可されます。
詳細については、鍵の拡張的用途をご覧ください。
鍵の拡張的用途を定義するには、次の手順を行います。
- 省略可: CA プールが発行する証明書に対する鍵の拡張的用途を指定するには、切り替えボタンをクリックします。
- 鍵の拡張的用途のシナリオのチェックボックスをオンにします。
- [次へ] をクリックします。
証明書の証明書ポリシー拡張機能は、発行 CA のプールが従うポリシーを表します。この拡張機能には、証明書の発行前に ID を検証する方法、証明書が取り消される方法、CA プールの完全性を確保する方法に関する情報を含めることができます。この拡張機能は、CA プールが発行する証明書を検証し、証明書がどのように使用されているかを確認するのに役立ちます。
詳細については、証明書ポリシーをご覧ください。
証明書の用途を定義するポリシーを指定するには、次の手順を行います。
- 省略可: [ポリシー識別子] フィールドにポリシー識別子を追加します。
- [次へ] をクリックします。
証明書の AIA 拡張機能には次の情報が含まれます。
- 証明書の取り消しステータスを確認できる OCSP サーバーのアドレス。
- 証明書の発行元のアクセス方法。
詳細については、認証局情報アクセスをご覧ください。
証明書の AIA 拡張機能フィールドに表示される OCSP サーバーを追加するには、次の手順を行います。次の手順は省略可能です。
- 省略可: [項目を追加] をクリックします。
- [サーバー URL] フィールドに、OCSP サーバーの URL を追加します。
- [完了] をクリックします。
- [次へ] をクリックします。
CA プールによって発行された証明書に含めるように追加のカスタム拡張機能を構成するには、次の手順を行います。次の手順は省略可能です。
- [項目を追加] をクリックします。
- [オブジェクト識別子] フィールドに、ドット区切りの数字の形式で有効なオブジェクト識別子を追加します。
- [値] フィールドに、識別子を base64 でエンコードした値を追加します。
- 高重要度な拡張機能である場合は、[高重要度な拡張機能] を選択します。
ベースライン値の構成をすべて保存するには、[完了] をクリックします。
拡張機能の制約を構成する発行済み証明書に証明書リクエストからのすべての拡張機能を含めないようにするには、切り替えボタンをクリックします。
切り替えボタンをクリックすると、[既知の証明書拡張機能] フィールドが表示され、証明書の拡張機能を選択できます。証明書の拡張機能を選択するには、次の手順を行います。
- 省略可: [既知の証明書拡張機能] フィールドをクリックし、不要な拡張機能をメニューから削除します。
- 省略可: [カスタム拡張機能] フィールドに、CA プールが発行する証明書に含める拡張機能のオブジェクト識別子を追加します。
CA プールが発行する証明書のサブジェクトと SAN の制約を構成するには、次の手順を行います。
- 省略可: 証明書リクエストのサブジェクトが渡されないようにするには、切り替えボタンをクリックします。
- 省略可: 証明書リクエストのサブジェクト代替名が渡されないようにするには、切り替えボタンをクリックします。
- 省略可: Common Expression Language(CEL)式を追加して、証明書のサブジェクトに制限を適用します。詳しくは、CEL の使用をご覧ください。
- [次へ] をクリックします。
証明書発行ポリシーで追加のパラメータを構成する方法については、IssuancePolicy をご覧ください。
CA プールを作成するには、[完了] をクリックします。
次のコマンドを実行します。
gcloud privateca pools create POOL_NAME --location=LOCATION
以下を置き換えます。
- POOL_NAME: CA プールの名前。
- LOCATION: CA プールを作成するロケーション。ロケーションの完全なリストについては、ロケーションをご覧ください。
CA プールに必要な階層を指定しない場合は、Enterprise
ティアがデフォルトで選択されます。CA プールのティアを指定する場合は、次の gcloud
コマンドを実行します。
gcloud privateca pools create POOL_NAME --location=LOCATION --tier=TIER_NAME
以下を置き換えます。
- POOL_NAME: CA プールの名前。
- LOCATION: CA プールを作成するロケーション。ロケーションの完全なリストについては、ロケーションをご覧ください。
- TIER_NAME:
devops
またはenterprise
。 詳細については、オペレーション ティアを選択するをご覧ください。
CA プールの公開エンコード形式を指定しない場合、PEM
公開エンコード形式がデフォルトで選択されます。CA プールの公開エンコード形式を指定する場合は、次の gcloud
コマンドを実行します。
gcloud privateca pools create POOL_NAME --location=LOCATION --publishing-encoding-format=PUBLISHING_ENCODING_FORMAT
以下を置き換えます。
- POOL_NAME: CA プールの名前。
- LOCATION: CA プールを作成するロケーション。ロケーションの完全なリストについては、ロケーションをご覧ください。
- PUBLISHING_ENCODING_FORMAT:
PEM
またはDER
。
gcloud privateca pools create
コマンドの詳細については、gcloud privateca pools create をご覧ください。
CA プールが発行できる証明書の種類に制限を適用する方法の詳細は、CA プールに証明書発行ポリシーを追加するをご覧ください。
CA Service への認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
CA Service への認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
CA Service への認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
CA プールを作成します。
HTTP メソッドと URL:
POST https://privateca.googleapis.com/v1/projects/
PROJECT_ID /locations/LOCATION /caPools\?ca_pool_id=POOL_ID リクエストの本文(JSON):
{ "tier": "ENTERPRISE" }
リクエストを送信するには、次のいずれかのオプションを展開します。
curl(Linux、macOS、Cloud Shell)
リクエスト本文を
request.json
という名前のファイルに保存して、次のコマンドを実行します。curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://privateca.googleapis.com/v1/projects/PROJECT_ID /locations/LOCATION /caPools\?ca_pool_id=POOL_ID "PowerShell(Windows)
リクエスト本文を
request.json
という名前のファイルに保存して、次のコマンドを実行します。$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://privateca.googleapis.com/v1/projects/PROJECT_ID /locations/LOCATION /caPools\?ca_pool_id=POOL_ID " | Select-Object -Expand Content次のような JSON レスポンスが返されます。
{ "name": "projects/
PROJECT_ID /locations/LOCATION /operations/operation-UUID ", "metadata": {...}, "done": false }オペレーションが完了するまでポーリングします。
長時間実行オペレーションの
done
プロパティがtrue
に設定されると、オペレーションは完了です。HTTP メソッドと URL:
GET https://privateca.googleapis.com/v1/projects/
PROJECT_ID /locations/LOCATION /operations/operation-UUID リクエストを送信するには、次のいずれかのオプションを展開します。
curl(Linux、macOS、Cloud Shell)
次のコマンドを実行します。
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://privateca.googleapis.com/v1/projects/PROJECT_ID /locations/LOCATION /operations/operation-UUID "PowerShell(Windows)
次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://privateca.googleapis.com/v1/projects/PROJECT_ID /locations/LOCATION /operations/operation-UUID " | Select-Object -Expand Content次のような JSON レスポンスが返されます。
{ "name": "projects/
PROJECT_ID /locations/LOCATION /operations/operation-UUID ", "metadata": {...}, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.security.privateca.v1.CaPool", "name": "...", "tier": "ENTERPRISE" } }
CA プールのラベルを追加または更新する
ラベルは、CA Service リソースを整理する際に役立つ Key-Value ペアです。リソースをラベルに基づいてフィルタできます。
CA プールのラベルを追加または更新するには、次の手順を行います。
ラベルを追加するには、次の手順を行います。
[Certificate Authority Service] ページに移動します。
[CA プール マネージャー] タブで、CA プールを選択します。
[ラベル] をクリックします。
[ラベルを追加] をクリックします。
Key-Value ペアを追加します。
[保存] をクリックします。
既存のラベルを編集するには、次の手順を行います。
[Certificate Authority Service] ページに移動します。
[CA プール マネージャー] タブで、CA プールを選択します。
[ラベル] をクリックします。
ラベルの値を編集します。
[保存] をクリックします。
次のコマンドを実行します。
gcloud privateca pools update POOL_ID --location=LOCATION --update-labels foo=bar
以下を置き換えます。
- POOL_ID: CA プールの名前。
- LOCATION: CA プールのロケーション。ロケーションの完全なリストについては、ロケーションをご覧ください。
次のステップ
- ルート CA を作成する方法を学習する。
- 下位 CA を作成する方法を学習する。
- 証明書発行ポリシーの使用方法を確認する。
- CA プールを使用して証明書の作成スループットを向上させる方法を学習する。
- CA プールの更新と削除方法を学習する。