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 のエンコード形式を選択することもできます。サポートされているエンコード形式は、Privacy Enhanced Mail(PEM)と Distinguished Encoding Rules(DER)です。エンコード形式が指定されていない場合は、PEM が使用されます。
Google Cloud CLI または Google Cloud コンソールを使用して CA プールを作成すると、CA Service はデフォルトでこれらの公開オプションを有効にします。詳細については、CA プール内の CA の CA 証明書と CRL 公開を無効にするをご覧ください。
CA プールを作成します
CA プールを作成するには、次の手順に従います。
Console
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 のエンコード形式を選択します。
[次へ] をクリックします。
この設定は、デジタル証明書内の Key Usage
フィールドを指します。証明書の秘密鍵の使用方法(鍵の暗号化、データ暗号化、証明書署名、CRL 署名など)を指定します。詳細については、鍵の用途をご覧ください。
- 鍵の基本的用途を選択するには、[この CA プールから発行される証明書に関する、鍵の基本的用途を指定する] 切り替えボタンをクリックし、表示されたオプションから選択します。
- [次へ] をクリックします。
この設定は、デジタル証明書の Extended Key Usage (EKU)
フィールドを指します。サーバー認証、クライアント認証、コード署名、メール保護など、キーの使用方法に関するより具体的で洗練された制限を提供します。詳細については、鍵の拡張的用途をご覧ください。
鍵の拡張的用途は、オブジェクト ID(OID)を使用して定義されます。鍵の拡張的用途を構成しない場合は、すべての鍵の使用シナリオが許可されます。
- 鍵の拡張的用途を選択するには、[この CA プールから発行される証明書に関する、鍵の拡張的用途を書き込む] 切り替えボタンをクリックし、表示されたオプションから選択します。
- [次へ] をクリックします。
証明書の証明書ポリシー拡張機能は、発行 CA のプールが従うポリシーを表します。この拡張機能には、証明書の発行前に ID を検証する方法、証明書が取り消される方法、CA プールの完全性を確保する方法に関する情報を含めることができます。この拡張機能は、CA プールが発行する証明書を検証し、証明書がどのように使用されているかを確認するのに役立ちます。
詳細については、証明書ポリシーをご覧ください。
証明書の用途を定義するポリシーを指定するには、次の手順を行います。
- [ポリシー識別子] フィールドにポリシー識別子を追加します。
- [次へ] をクリックします。
証明書の AIA 拡張機能には次の情報が含まれます。
- 証明書の取り消しステータスを確認できる OCSP サーバーのアドレス。
- 証明書の発行者のアクセス方法。
詳細については、認証局情報アクセスをご覧ください。
証明書の AIA 拡張機能フィールドに表示される OCSP サーバーを追加するには、次の操作を行います。
- [項目を追加] をクリックします。
- [サーバー URL] フィールドに、OCSP サーバーの URL を追加します。
- [完了] をクリックします。
- [次へ] をクリックします。
証明書テンプレート内の [CA オプション] フィールドは、結果の証明書を認証局(CA)階層で使用する方法を定義します。CA オプションは、証明書を使用して他の証明書に署名できるかどうか、署名できる場合は発行する証明書の制限を決定します。
次のいずれかを選択します。
CA X.509 拡張機能の構成ファイルを含める: X.509 拡張機能を制御する証明書テンプレート内の設定を指定します。
発行済み証明書を CA にのみ使用するように制限する: このオプションは、前の手順で説明したチェックボックスをオンにした場合にのみ表示されます。このブール値は、証明書が CA 証明書かどうかを示します。
true
に設定されている場合、証明書は他の証明書の署名に使用できます。false
の場合、証明書はエンド エンティティ証明書であり、他の証明書に署名できません。この切り替えをクリックすると、CA 証明書の拡張機能に名前の制約を定義するよう求められます。パスの長さを制限する X.509 拡張機能の構成ファイルを含めます: 特定の証明書から派生する証明書チェーンの長さを制御する設定を指定します。発行元のパスの最大長が
0
に設定されている場合、CA はエンド エンティティ証明書のみを発行できます。1
に設定されている場合、この CA 証明書の下のチェーンに下位 CA を 1 つだけ含めることができます。値が宣言されていない場合、この CA の下のチェーン内の下位 CA の数は無制限になります。- [次へ] をクリックします。
CA プールによって発行された証明書に含めるように追加のカスタム拡張機能を構成するには、次の操作を行います。
- [項目を追加] をクリックします。
- [オブジェクト識別子] フィールドに、ドット区切りの数字の形式で有効なオブジェクト識別子を追加します。
- [値] フィールドに、識別子を base64 でエンコードした値を追加します。
- 高重要度な拡張機能である場合は、[高重要度な拡張機能] を選択します。
ベースライン値の構成をすべて保存するには、[完了] をクリックします。
CA プールを作成するには、[完了] をクリックします。
gcloud
次のコマンドを実行します。
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 プールに証明書発行ポリシーを追加するをご覧ください。
Terraform
Go
CA Service への認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Java
CA Service への認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
CA Service への認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
REST API
CA プールを作成します。
HTTP メソッドと URL:
POST https://privateca.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/caPools\?ca_pool_id=POOL_ID
リクエストの本文(JSON):
{ "tier": "ENTERPRISE" }
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような 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
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような 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 プールのラベルを追加または更新するには、次の手順を行います。
Console
ラベルを追加するには、次の手順を行います。
[Certificate Authority Service] ページに移動します。
[CA プール マネージャー] タブで、CA プールを選択します。
[ラベル] をクリックします。
[ラベルを追加] をクリックします。
Key-Value ペアを追加します。
[保存] をクリックします。
既存のラベルを編集するには、次の手順を行います。
[Certificate Authority Service] ページに移動します。
[CA プール マネージャー] タブで、CA プールを選択します。
[ラベル] をクリックします。
ラベルの値を編集します。
[保存] をクリックします。
gcloud
次のコマンドを実行します。
gcloud privateca pools update POOL_ID --location=LOCATION --update-labels foo=bar
以下を置き換えます。
- POOL_ID: CA プールの名前。
- LOCATION: CA プールのロケーション。ロケーションの完全なリストについては、ロケーションをご覧ください。
次のステップ
- ルート CA を作成する方法を学習する。
- 下位 CA を作成する方法を学習する。
- 証明書発行ポリシーを使用する方法を確認する。
- CA プールを使用して証明書の作成スループットを向上させる方法を学習する。
- CA プールの更新と削除方法を学習する。