This is not an officially supported Google product. This code creates PoC demo environment for CSA Certificate Authority Service demo. This demo code is not built for production workload.
このアーキテクチャ ガイドにより、認証局サービス (CAS) の合理的かつ安全な導入が可能になります。ルート認証局を 2 つの下位認証局と 1 つのリーフ証明書とともに作成します。これらの認証局は可用性が高く、スケーラビリティが高く、保守が簡単であるため、秘密の公開キー基盤 (PKI) を構築して、証明書を介して ID を主張し、ワークロード全体にわたって信頼のルートを確立できます。
このアーキテクチャ ガイドは、完全な CAS デプロイメント(以下の図ではアーキテクチャ 1 として示されています)(つまり、すべての認証局が Google Cloud でホストされているもの)に焦点を当てていますが、CAS は非常に柔軟であり、組織がさまざまな形式でプライベート PKI を作成できるようにします。以下の図に示すように、さまざまな方法があります。
また、CSR (証明書署名リクエスト) を使用して、CA が GCP の外部に常駐できるハイブリッド アーキテクチャを実装する方法についても詳しく説明します (アーキテクチャ #2~3)。
Certificate Authority Service(CAS) - Certificate Authority Service は、プライベート認証局(CA)のデプロイ、管理、セキュリティを簡素化、自動化、カスタマイズできるようにする、可用性が高くスケーラブルな Google Cloud サービスです。
キー管理サービス (KMS) - クラウド キー管理サービスを使用すると、暗号化キーを作成、インポート、管理し、単一の一元化されたクラウド サービスで暗号化操作を実行できます。これらの鍵を使用し、これらの操作を実行するには、Cloud KMS を直接使用するか、Cloud HSM または Cloud External Key Manager を使用するか、他の Google Cloud サービス内の顧客管理の暗号鍵(CMEK)統合を使用します。
Google Cloud Storage (GCS) - Cloud Storage は、非構造化データを保存するためのマネージド サービスです。任意の量のデータを保存し、いつでも取得できます。
GCP CAS を使用して PKI を設計する場合は、割り当て、制限、既知の制限に加えて、次の制限を考慮する必要があります。
リソース | ユニット | 価値 |
---|---|---|
保留中の CA 1 | 場所ごと、プロジェクトごと | 100 |
CA | 場所ごと、プロジェクトごと | 1,000 |
期限切れになっていない取り消された証明書2 | CA または証明書失効リスト (CRL) ごと | 500,000 |
1 個の保留中の認証局 (CA) は、作成されたもののまだアクティブ化されていない下位 CA であり、AWAITING_USER_ACTIVATION 状態にあります。
2 CRL には、期限切れになっていない取り消された証明書を最大 500,000 個含めることができます。この制限を超えて取り消そうとすると、取り消しリクエストは失敗します。 500,000 を超える証明書を取り消す必要がある場合は、取り消された既存の証明書の有効期限が切れるまで待つか、発行元の CA 証明書を取り消すことをお勧めします。
##Terraform の手順:
組織にサインインし、展開に使用するプロジェクトに対するCA サービス管理者ロールと Cloud KMS 管理者ロールを自分に割り当てます。
新しいプロジェクトを作成して課金を有効にする必要がある場合。このガイドの手順に従ってください。
Cloud Shell を開き、以下のコマンドを使用して次の Git リポジトリのクローンを作成します。
git clone https://github.com/GCP-Architecture-Guides/csa-certificate-authority-service.git
csa-certificate-authority-service フォルダーに移動します。
cd csa-certificate-authority-service</th>
Terraform 変数のプロジェクト ID をエクスポートします。
export TF_VAR_demo_project_id=[YOUR_PROJECT_ID]
csa-certificate-authority-service フォルダー内で、以下のコマンドを順番に実行します。
terraform init terraform plan terraform apply
プロンプトが表示されたら、API 呼び出しを承認します。
デプロイが完了すると、調整されたアセットの出力概要が公開されます。リソースは 5 分以内にデプロイされます。
デモが完了したら、certificate-authority-service フォルダーに移動し、以下のコマンドを実行してすべてのデモ リソースを破棄します。
terraform destroy
##Terraform の概要:
プール | カリフォルニア州 | 有効 | 州 | 件名名 | 地域 | 階層 |
---|---|---|---|---|---|---|
デモルートプール | ルート CA | 10年 | 有効 | 組織:デモ CA CN:デモ リソースID: [デフォルト] | us-central1 (アイオワ州) | 企業 |
デモサブプール | Google Cloud のルート CA を持つサブ CA | 3年 | 有効 | 組織:デモ CA CN:デモ リソースID: [デフォルト] | us-central1 (アイオワ州) | 企業 |
デモ サブプール 2 | Google Cloud のルート CA を持つサブ CA | 3年 | 有効 | 組織:デモ CA CN:デモ リソースID: [デフォルト] | 米国東部1 | 企業 |
プール | 認められたCSR手法 | 許可されるキーとアルゴリズム | 鍵のサイズとアルゴリズム | 公開オプション | 設定されたベースライン値 | 構成された拡張制約 | 構成されたアイデンティティ制約 |
---|---|---|---|---|---|---|---|
デモルートプール | すべてを許可する | 制限なし | RSA_PKCS1_4096_SHA256 | PEM形式のGCSバケットへ | なし | 証明書リクエストからすべての拡張子をコピーします | 証明書リクエストからサブジェクトと SAN をコピーします |
デモサブプール | すべてを許可する | 制限なし | RSA_PKCS1_4096_SHA256 | PEM形式のGCSバケットへ | なし | 証明書リクエストからすべての拡張子をコピーします | 証明書リクエストからサブジェクトと SAN をコピーします |
デモ サブプール 2 | すべてを許可する | 制限なし | RSA_PKCS1_4096_SHA256 | PEM形式のGCSバケットへ | なし | 証明書リクエストからすべての拡張子をコピーします | 証明書リクエストからサブジェクトと SAN をコピーします |
認証局サービスのベスト プラクティス
Google Cloud の認証局サービスには、サービスのセキュリティと整合性を確保するために、いくつかのロギングとモニタリングの要件があります。これらの要件には次のものが含まれます。
監査ログ: 証明書の発行、更新、失効など、サービス上で実行されたログ操作はログに記録され、顧客が監査できます。
イベント通知: お客様は、証明書の有効期限などの重要なイベントの通知を電子メールまたは Webhook 経由で受け取ることができます。
証明書の透明性: 発行されたすべての証明書は透明性ログに記録されるため、証明書の発行と失効の監査が可能になります。
セキュリティと可用性の監視: セキュリティ チームと運用チームは、潜在的なセキュリティの脅威と可用性の問題についてサービスを常に監視します。
コンプライアンス: Google Cloud の認証局サービスは、認証局のセキュリティと運用要件を指定するさまざまな標準に準拠しています。
全体として、これらのログ記録と監視の要件は、サービスのセキュリティと可用性を確保しながら、顧客にサービスの透明性と可視性を提供することを目的としています。
Google Cloud サービスは監査ログを書き込み、「誰が、どこで、いつ、何をしたか?」という質問に答えるのに役立ちます。 Google Cloud リソース内で。
CA サービスでは、次のタイプの監査ログを使用できます。
管理アクティビティ監査ログ
メタデータまたは構成情報を書き込む「管理書き込み」操作が含まれます。
管理アクティビティ監査ログを無効にすることはできません。
データアクセス監査ログ
メタデータまたは構成情報を読み取る「管理読み取り」操作が含まれます。ユーザーが提供したデータの読み取りまたは書き込みを行う「データ読み取り」および「データ書き込み」操作も含まれます。
データ アクセス監査ログを受信するには、それらを明示的に有効にする必要があります。
認証局サービスによって作成される特定の監査ログについては、を参照してください。
管理アクティビティ監査ログは常に有効になっています。それらを無効にすることはできません。
データ アクセス監査ログはデフォルトで無効になっており、明示的に有効にしない限り書き込まれません。
データ アクセス監査ログの一部またはすべてを有効にする方法については、「データ アクセス監査ログを有効にする」を参照してください。
Google Cloud コンソールでは、ログ エクスプローラーを使用して、Cloud プロジェクト、フォルダ、または組織の監査ログ エントリを取得できます。
Google Cloud コンソールで、[ロギング] > [ログ エクスプローラー] ページに移動します。
既存のクラウド プロジェクト、フォルダー、または組織を選択します。
[クエリ ビルダー] ペインで、次の操作を実行します。
protoPayload.serviceName="privateca.googleapis.com"
Cloud Monitoring を使用して、Certificate Authority Service のリソースに対して実行される操作を監視できます。
推奨アラートを有効にするには、次の手順に従ってください。
Google Cloud コンソールの [CA サービスの概要] ページに移動します。
「概要」ページの右上にある「 + 5 推奨アラート」をクリックします。
各アラートの説明を読んで、有効または無効にします。
一部のアラートはカスタムしきい値をサポートしています。たとえば、CA 証明書の有効期限が切れる場合にアラートを受け取るタイミングや、証明書作成の失敗率が高い場合のエラー率を指定できます。
すべてのアラートは通知チャネルをサポートしています。
必要なアラートをすべて有効にしたら、 [送信]をクリックします。
証明書ポリシーとテンプレートを文書化する
アイデンティティの制約
拡張制約
主な利用条件
ポリシー識別子
拡張機能
悪用のリスクを軽減するには、証明書ポリシーを見直して、テンプレートが承認および定義された機能を備えていることを確認する必要があります。
CA 侵害対応計画の作成
すべての関係者を教育する
CA のセキュリティおよび通信ポリシーを少なくとも年に 1 回見直します
バックアップ CA 計画を確立する
インベントリ CA
承認された CA のみが使用されていることを確認する
承認されたルートのみが信頼されるようにする
証明書利用者システムで信頼されるインベントリ ルート CA
既存の証明書テンプレートの権限を確認および検証する
証明書利用者システムで失効チェックを強制する
監査ログとアラートを有効にする
アラートとレポートの設計に基づいて侵害を特定する
何が起こったのかを明確に理解する
誰が事件を発見したのか。
可能な場合は、事件の実行者。
CA が侵害されたとき。
事件が起きた場所。
インシデントの影響を受けたルート、サブ CA、およびエンドユーザー証明書の数。
事件の根本的な原因と考えられています。
インシデントの根本的な原因に対処するためにどのような是正措置が講じられたか、または今後講じられるか。
侵害に関与した証明書とドメインのリスト。
事件はどのようにして発見されたのでしょうか?
エクスプロイトの詳細な説明。
どのインフラストラクチャが侵害されたかに関する詳細。
インフラストラクチャがどのように侵害されたかについての詳細。
イベントの詳細なタイムライン。
脆弱性は通常の操作で検出されましたか?そうでなかった場合、なぜですか?
脆弱性は最新の監査で発見されましたか? 「はい」の場合、脆弱性は修正されましたか?脆弱性が修正されなかった場合、なぜ修正されないのでしょうか?
この脆弱性は最新の監査で検出されましたか?そうでない場合は、その理由を説明してください。
どのようなポリシー変更を行う必要がありますか?
その他の適切な情報。
インシデント対応チームを活性化する
影響を受ける CA 環境を封じ込めて隔離します。 CA が証明書を発行できないようにするには、次を参照してください。
影響を受ける利害関係者 (内部/外部) に影響と次の段階の緩和策を伝える計画を確立する
調査が完了し、封じ込めが確認されたら、次の手順を実行します。
CA および関連するポリシー/テンプレートに昇格されたアクセス許可を提供するロールにマップされていた、侵害された ID の資格情報を取り消してリセットします。/templates.reference-1 および Reference-2
侵害された CA および関連する証明書を取り消し、新しい CA 参照を確立します
OCSP レスポンダーの CRL/更新ステータスに追加して (自動化されていない場合)、サブジェクト、信頼当事者、ベンダーに通知します。
既存の証明書を取り消し、新しい CA から証明書を再発行するリファレンス
ルート証明書の削除/置換
証明書利用者システムで失効チェックが有効になっていることを検証する
証明書とルートの置換を検証する
進捗状況を追跡して報告する
このデモンストレーション環境を実行するための推定月額コストを以下で参照してください。これはパターンの作成時に推定されたものであることに注意してください。推定値は時間の経過とともに変化し、リージョンごとに異なる場合があります。Google Cloud 料金計算ツールで各リソースのコストを確認してください。
DevOps SKU | エンタープライズ SKU | |
---|---|---|
月額CA料金 | 20ドル | 200ドル |
証明書手数料 | 0-50,000 @ $0.3 50,000 -100,000 @ $0.03 100,000+ @ $0.0009 CA 間の階層化 | 0-50,000 @ $0.5 50,000 -100,000 @ $0.05 100,000+ @ $0.001 CA 間の階層化 |
CA キーの HSM サポート | ||
BYO CA キー | × | |
証明書の追跡と失効 | × | |
QPS | 25 | 7 |
...向けに最適化 | 大量生産、短命 | 少量、長寿命 |
CASの概要
CAS ブログのご紹介
CAS 説明ビデオ
CAS GitHub リポジトリ