AWS Private CA で構築するプライベート PKI - 証明書の自動発行とローテーション
プライベート認証局を構築し、内部サービス間の mTLS 証明書を自動発行する。証明書のライフサイクル管理と CRL の設計を紹介します。
Private CA の概要
Private CA はプライベート証明書の発行・管理を自動化するマネージド認証局サービスです。ACM (AWS Certificate Manager) がパブリック証明書を無料で発行するのに対し、Private CA は組織内部で使用するプライベート証明書を発行します。マイクロサービス間の mTLS、VPN クライアント認証、IoT デバイス認証など、パブリック証明書では対応できないユースケースに使用します。Private CA は RSA 2048/4096 および ECDSA P256/P384 の鍵アルゴリズムに対応しており、X.509 v3 拡張を含む証明書を発行します。CA の作成から証明書発行まで全操作が API で実行可能なため、手作業による運用ミスを排除し、監査証跡を CloudTrail に自動記録します。
証明書の発行と mTLS
Private CA で発行した証明書をサービス間の mTLS に使用すると、通信の暗号化に加えてクライアントの認証も実現できます。短期証明書 (有効期間数時間から数日) を使用すると、証明書の失効リスト (CRL) の管理が不要になります。証明書の有効期間が短いため、漏洩した証明書が悪用される時間窓が極めて小さくなります。ACM との統合で ALB にプライベート証明書を自動デプロイし、内部 ALB の HTTPS 化を実現できます。EKS 環境では cert-manager と Private CA Issuer プラグインを組み合わせ、Pod 単位で証明書を自動発行・ローテーションする構成が一般的です。App Mesh や Service Connect でのサイドカープロキシに mTLS 証明書を自動配布する設計では、証明書の有効期間を 24 時間以下に設定し、CRL を完全に不要とする運用が推奨されます。
証明書テンプレートと自動化
Private CA は証明書テンプレートでサーバー証明書、クライアント証明書、コード署名証明書など用途別の証明書を発行します。 ACM との統合で、 Private CA が発行した証明書を ALB や API Gateway に自動デプロイし、更新も自動化されます。短期証明書 (有効期間 7 日以下) は CRL (証明書失効リスト) の管理を簡素化し、証明書の失効処理が不要になります。 OCSP (Online Certificate Status Protocol) レスポンダーで証明書の有効性をリアルタイムに検証する構成も可能です。 CloudFormation や Terraform で CA の作成と証明書の発行を自動化し、 IaC で PKI インフラを管理します。 証明書管理の基礎から応用まで、書籍 (Amazon)で体系的に学べます。
ユースケース別の設計パターン
マイクロサービス間 mTLS では、サービスごとに短期証明書を発行し、証明書の SAN (Subject Alternative Name) にサービス名を記載してサービスディスカバリと統合します。IoT デバイス認証では、デバイス製造時に Private CA から証明書を事前発行し、AWS IoT Core のジャストインタイム登録 (JITR) と連携してデバイスの初回接続時に自動プロビジョニングします。VPN クライアント認証では、AWS Client VPN のサーバー証明書とクライアント証明書の両方を Private CA で発行し、相互認証を構成します。コード署名では、CI/CD パイプラインに Private CA の証明書を組み込み、ビルド成果物 (Lambda 関数のデプロイパッケージ等) に署名して改ざんを検知する仕組みを構築します。
設計のベストプラクティスと落とし穴
CA 階層は 2 層 (ルート CA + 中間 CA) または 3 層 (ルート CA + ポリシー CA + 発行 CA) で構成し、ルート CA の有効期間は 10 年以上に設定します。ルート CA は証明書発行後すぐに無効化 (disable) し、中間 CA のみを運用することで、ルート鍵の不正使用リスクを低減します。CRL の配布は S3 バケットに自動公開する設定が標準ですが、バケットのアクセスポリシーを誤るとサービス全体の証明書検証が失敗する障害を招くため、S3 バケットポリシーの管理は慎重に行います。OCSP レスポンダーを有効化すると CRL ダウンロードが不要になり検証速度が向上しますが、OCSP エンドポイントの可用性がサービス全体に影響するため、高可用性の設計が必要です。共通の失敗パターンとして、CA の有効期限切れに気づかずサービスが停止するケースがあります。CloudWatch アラームで CA の残り有効期間を監視し、有効期限の 6 か月前にアラートを発報する設計を組み込みます。
Private CA の料金
Private CA は月額約 400 ドル/CA で、発行した証明書数に応じた追加料金が発生します。最初の 1,000 枚は 1 枚あたり 0.75 ドル、10,000 枚までは 0.35 ドルです。短期証明書モードでは CA の月額料金が約 50 ドルに割引され、大量の短期証明書を発行するマイクロサービス環境でコスト効率が向上します。CA の階層構造 (ルート CA → 中間 CA) で、ルート CA をオフラインにして中間 CA のみを運用する設計がセキュリティのベストプラクティスです。
まとめ
Private CA は組織内部のプライベート証明書をマネージドに発行・管理するサービスです。短期証明書 (7 日以下) で CRL 管理を簡素化し、ACM 統合で証明書のデプロイと更新を自動化します。mTLS でサービス間の相互認証を実現し、CA の階層構造 (ルート CA + 中間 CA) でセキュリティのベストプラクティスに準拠した PKI を構築します。