AWS Private Certificate Authority
組織内部用のプライベート X.509 証明書を CA 階層に基づいて発行・管理し、mTLS や IoT デバイス認証に活用するマネージド認証局
概要
AWS Private Certificate Authority (Private CA) は、組織内部で使用するプライベート X.509 証明書を発行・管理するマネージドサービスです。パブリック認証局を経由せずに、社内システム間の TLS 通信、mTLS 認証、IoT デバイスの識別、コード署名などに必要な証明書を自前の認証局から発行できます。HSM で保護された CA 秘密鍵の管理、証明書の自動更新、失効リスト (CRL) の配布を AWS が運用するため、オンプレミスで CA を構築・維持する負担を大幅に軽減します。
CA 階層設計とルート CA の運用
Private CA では、ルート CA と下位 (従属) CA の階層構造を構築できます。一般的な設計では、ルート CA を最上位に配置し、用途別の下位 CA (サーバー証明書用、クライアント証明書用、IoT デバイス用など) を作成します。ルート CA の秘密鍵は AWS が管理する FIPS 140-2 Level 3 認定の HSM に格納され、外部に取り出すことはできません。ルート CA は証明書の直接発行には使わず、下位 CA への署名のみに使用するのがベストプラクティスです。CA の作成時にはキーアルゴリズム (RSA 2048/4096、ECDSA P256/P384) と有効期間を指定します。ルート CA の有効期間は 10 年程度、下位 CA は 3〜5 年が一般的です。CA の有効期限が切れると配下の全証明書が無効になるため、有効期限の監視と計画的な更新が不可欠です。CloudWatch メトリクスで CA の有効期限残日数を監視し、閾値を下回った時点でアラートを発報する運用を推奨します。料金は CA 1 台あたり月額 400 USD で、短期証明書モードを選択すると月額 50 USD に抑えられます。
証明書テンプレートと自動発行
Private CA は、証明書の用途に応じたテンプレートを提供しています。サーバー認証用 (EndEntityServerAuthCertificate)、クライアント認証用 (EndEntityClientAuthCertificate)、コード署名用 (CodeSigningCertificate)、OCSP 署名用など、X.509 拡張フィールドが事前設定されたテンプレートを選択するだけで、用途に適した証明書を発行できます。カスタムテンプレートを API パススルーで作成すれば、Subject Alternative Name (SAN) や独自の拡張フィールドを含む証明書も発行可能です。ACM (AWS Certificate Manager) との統合により、証明書の自動更新が実現します。ACM が Private CA から発行した証明書は、有効期限の 60 日前に自動的に更新され、ELB、CloudFront、API Gateway に適用されている証明書がダウンタイムなしで切り替わります。大量の証明書を発行する場合は、IssueCertificate API をバッチ的に呼び出すスクリプトを用意し、証明書のライフサイクルを自動化します。
mTLS と IoT デバイス証明書のユースケース
Private CA の代表的なユースケースが mTLS (相互 TLS 認証) です。サーバーとクライアントの双方が証明書を提示して相互に認証するため、API キーやパスワードに依存しないゼロトラストな通信を実現します。API Gateway のカスタムドメインで mTLS を有効化し、Private CA が発行したクライアント証明書を持つリクエストのみを受け付ける構成が典型的です。トラストストアに CA 証明書チェーンを登録し、クライアント証明書の検証を API Gateway に委任します。IoT デバイスの証明書管理では、AWS IoT Core のジャストインタイムプロビジョニング (JITP) と組み合わせます。デバイス製造時に Private CA から発行した証明書を書き込み、デバイスが初回接続した際に IoT Core が証明書を検証してデバイスを自動登録します。証明書の失効は CRL (証明書失効リスト) または OCSP で管理し、S3 に配置した CRL ファイルを CloudFront 経由で配布する構成が一般的です。