パブリケーションとストレージを構成する
Certificate Authority Service(CA Service)は、Cloud Storage バケットを使用して、公開鍵基盤(PKI)の CA 証明書と証明書失効リスト(CRL)を公開します。
このドキュメントでは、CA Service で使用される Cloud Storage バケットを構成して、PKI の CA 証明書と CRL を公開する方法について説明します。Google 管理バケットまたは顧客管理バケットを使用して、より直接的な制御を行うことができます。Cloud Storage バケットの詳細については、Cloud Storage バケットについてをご覧ください。このドキュメントでは、公開の有効化 / 無効化やエンコード形式の選択など、公開設定の管理についても説明します。
Google 管理バケットを使用する
CA Service は、Cloud Storage バケットのライフサイクルを自動的に管理します。これらのリソースに対して別途請求されることはありません。
デフォルトでは、CA プールを作成すると、CA Service は次の特性を持つ Cloud Storage バケットを作成して管理します。
- ロケーション: バケットは、プールと同じプロジェクトとロケーションにあります。
- 一元化されたストレージ: バケットには、CA プール内のすべての CA の CA 証明書と CRL が保存されます。
- 一般公開: オブジェクトは、Authority Information Access(AIA)拡張機能と CRL Distribution Point(CDP)拡張機能を使用するクライアントから自動的にアクセスできます。
Google 管理バケットの利点
Google が管理するバケットを使用すると、管理が簡素化されます。CA プールを作成すると、CA Service は CA 証明書と CRL を公開するためのバケットを自動的に作成して管理します。追加の Cloud Storage バケットを構成する必要はありません。
VPC Service Controls の注意事項
VPC Service Controls の境界は、Google マネージド Cloud Storage バケットへのアクセスをその境界内のクライアントに制限します。CA 証明書と CRL の AIA URL と CDP URL には、境界外からアクセスできません。このアクセシビリティの欠如により、境界外のクライアントで証明書の検証が失敗する可能性があります。
ルート CA の作成の詳細については、ルート CA を作成するをご覧ください。下位 CA の作成については、下位 CA を作成するをご覧ください。鍵アルゴリズムの選択については、鍵アルゴリズムを選択するをご覧ください。
顧客管理のバケットを使用する
お客様が管理するリソースは、Enterprise ティアの CA でのみ使用できます。これらのリソースは、CA を作成する前に作成して構成し、CA を削除するときに削除する必要があります。これらのリソースに対して直接課金されます。
プロジェクト内の既存の Cloud Storage バケットを指定して、CA プールの CA 証明書と CRL を公開できます。これにより、バケットの構成(ロケーション、ストレージ クラス、ライフサイクル ポリシー、アクセス制御など)を直接制御できます。
顧客管理バケットのメリット
顧客管理のバケットを使用すると、ストレージ バケットを直接制御できます。組織の要件に合わせて、アクセス管理などの属性を更新できます。
顧客管理のバケットを使用して CA を作成するには、CA Service に適切なアクセス権を付与するために、バケットに対する管理者権限が必要です。詳細については、CA Service のサービス エージェントをご覧ください。
Cloud Storage バケットのロケーション
CA Service リソースと同じロケーションに、顧客管理の Cloud Storage バケットを作成します。
たとえば、CA が us-west1 にある場合、米国の任意の単一リージョン(us-west1 や us-east1 など)、NAM4 デュアルリージョン、または US マルチリージョンに Cloud Storage バケットを作成できます。使用可能なロケーションのリストについては、Cloud Storage のロケーションをご覧ください。
始める前に
Cloud Storage バケットが存在することを確認します。バケットを作成するをご覧ください。
バケットに CA Service サービス アカウントがアクセスできることを確認します。
必要なロール
オブジェクト(特に CA 証明書と CRL)の書き込みと管理を行い、モニタリングを有効にするために必要な権限がサービス アカウントに付与されるように、顧客管理の Cloud Storage バケットに対する次の IAM ロールをサービス アカウントに付与するよう管理者に依頼してください。
-
CA 証明書と CRL の書き込みと管理を行う: Storage オブジェクト管理者 (
roles/storage.objectAdmin) -
バケットの Cloud Monitoring 統合を許可するには: Storage レガシー バケット読み取り (
roles/storage.legacyBucketReader)
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
管理者は、カスタムロールや他の事前定義ロールを使用して、必要な権限をサービス アカウントに付与することもできます。
バケットを使用するように CA を構成する
認証局を作成するときに顧客管理の Cloud Storage バケットを指定するには、gcloud privateca roots create コマンドまたは gcloud privateca subordinates create コマンドで --bucket フラグを使用します。
CA の作成の詳細については、以下をご覧ください。
証明書と CRL へのアクセスを管理する
顧客管理バケットを使用する場合は、アクセス権限を制御できます。CA Service によって公開された CA 証明書と CRL は、特に構成しない限り、バケットのデフォルト オブジェクト権限を継承します。認証局情報アクセス(AIA)と CRL 配布ポイント(CDP)の URL に一般公開アクセスを提供するには、公開されたオブジェクトを一般公開で読み取り可能にします。
デフォルトでは、CA Service は AIA 拡張機能と CDP 拡張機能で HTTP URL を使用して、CA 証明書と CRL を参照します。クライアントの互換性を最大限に高めるには、HTTP URL を使用します。一部のクライアントは、AIA または CDP 拡張機能で HTTPS をサポートしていません。デジタル署名により、CA 証明書と CRL の完全性と信頼性が確保されます。
詳細については、Cloud Storage ドキュメントのアクセス制御の概要とオブジェクト権限の設定をご覧ください。
パブリケーションの設定を管理する
デフォルトでは、CA プールを作成すると、CA Service は Cloud Storage バケットへの CA 証明書と CRL の公開を有効にします。これらの公開設定を更新して、公開を有効にしたり、公開を無効にしたり、エンコード形式を変更したりできます。
CA プールの公開を有効にする
CA プール内のすべての CA の CA 証明書と CRL の公開を有効にするには、次の操作を行います。
コンソール
Google Cloud コンソールで、[Certificate Authority Service] ページに移動します。
[CA プール マネージャー] タブで、編集する CA プールの名前をクリックします。
[CA プール] ページで、 [編集] をクリックします。
[Configure allowed key algorithms and sizes] で、[次へ] をクリックします。
[Configure accepted certificate request methods] で、[次へ] をクリックします。
[パブリッシュ オプションを設定する] で、[Publish CA certificate to Cloud Storage bucket for CAs in this pool] の切り替えボタンをクリックします。
[Publish CRL to Cloud Storage bucket for CAs in this pool] の切り替えボタンをクリックします。
gcloud
次のコマンドを実行します。
gcloud privateca pools update POOL_ID --location LOCATION --publish-crl --publish-ca-cert
次のように置き換えます。
POOL_ID: CA プールの名前LOCATION: CA プールのロケーション。使用可能なロケーションのリストについては、CA サービス ロケーションをご覧ください。
gcloud privateca pools update コマンドの詳細については、gcloud privateca pools update をご覧ください。
証明書の取り消しのために CRL 公開を有効にする方法の詳細については、証明書の取り消しをご覧ください。
CA プールの公開を無効にする
CA プール内のすべての CA の CA 証明書と CRL の公開を無効にするには、次の操作を行います。
コンソール
Google Cloud コンソールで、[Certificate Authority Service] ページに移動します。
[CA プール マネージャー] タブで、編集する CA プールの名前をクリックします。
[CA プール] ページで、 [編集] をクリックします。
[許可される鍵アルゴリズムとサイズを構成する] で、[次へ] をクリックします。
[Configure accepted certificate request methods] で、[次へ] をクリックします。
[パブリッシュ オプションを設定する] で、[Publish CA certificate to Cloud Storage bucket for CAs in this pool] の切り替えボタンをクリックします。
[Publish CRL to Cloud Storage bucket for CAs in this pool] の切り替えボタンをクリックします。
gcloud
次のコマンドを実行します。
gcloud privateca pools update POOL_ID --location LOCATION --no-publish-crl --no-publish-ca-cert
次のように置き換えます。
POOL_ID: CA プールの名前LOCATION: CA プールのロケーション。使用可能なロケーションのリストについては、CA サービス ロケーションをご覧ください。
エンコード形式を選択する
公開された CA 証明書と CRL のエンコード形式を更新するには、次の手順を行います。
コンソール
Google Cloud コンソールで、[Certificate Authority Service] ページに移動します。
[CA プール マネージャー] タブで、編集する CA プールの名前をクリックします。
[CA プール] ページで、 [編集] をクリックします。
[許可される鍵アルゴリズムとサイズを構成する] で、[次へ] をクリックします。
[Configure accepted certificate request methods] で、[次へ] をクリックします。
[パブリッシュ オプションを設定する] で、[公開のエンコード形式] リストをクリックします。
公開エンコード形式を選択します。
gcloud
次のコマンドを実行します。
gcloud privateca pools update POOL_ID --location=LOCATION --publishing-encoding-format=PUBLISHING_ENCODING_FORMAT
次のように置き換えます。
POOL_ID: CA プールの名前LOCATION: CA プールのロケーション。使用可能なロケーションのリストについては、CA サービス ロケーションをご覧ください。PUBLISHING_ENCODING_FORMAT: エンコード形式はPEMまたはDERにできます。gcloud privateca pools updateコマンドの詳細については、gcloud privateca pools update をご覧ください。
次のステップ
- CA プールを作成する方法を学習する。
- ルート CA を作成する方法を学習する。
- 下位 CA を作成する方法を学習する。
- 外部 CA から下位 CA を作成する方法を確認する。