SEC09-BP01 安全な鍵および証明書管理を実装する - セキュリティの柱

SEC09-BP01 安全な鍵および証明書管理を実装する

Transport Layer Security (TLS) 証明書は、ネットワーク通信を保護し、インターネットやプライベートネットワーク上のウェブサイト、リソース、ワークロードの ID を確立するために使用されます。

期待される成果: 公開鍵基盤 (PKI) で証明書をプロビジョニング、デプロイ、保存、更新できる、安全な証明書管理システム。安全な鍵と証明書の管理メカニズムは、証明書のプライベートキーの内容が漏洩するのを防ぎ、自動的に証明書の定期更新を行います。また、他のサービスと統合して、ワークロード内のマシンリソースに安全なネットワーク通信と ID を提供します。キーの内容は、決して人的 ID にアクセス可能なものであってはなりません。

一般的なアンチパターン:

  • 証明書のデプロイまたは更新プロセス中に手動で手順を実行する。

  • プライベート認証機関 (CA) を設計する際、CA 階層に十分な注意を払わない。

  • 公共リソースに自己署名証明書を使用する。

このベストプラクティスを活用するメリット:

  • 自動デプロイと自動更新により証明書管理を簡素化する

  • TLS 証明書を使用して転送中のデータの暗号化を奨励する

  • 認証機関による証明書アクションのセキュリティと可監査性を向上させる

  • CA 階層のさまざまなレイヤーにおける管理業務を整理する

このベストプラクティスを活用しない場合のリスクレベル:

実装のガイダンス

最新のワークロードでは、TLS などの PKI プロトコルを使用して暗号化されたネットワーク通信が広く利用されています。PKI 証明書の管理は複雑になる場合がありますが、証明書のプロビジョニング、デプロイ、更新を自動化することで、証明書管理に伴う手間を軽減できます。

AWS は、汎用 PKI 証明書を管理するための 2 つのサービス、 AWS Certificate Manager および AWS Private Certificate Authority (AWS Private CA) を提供しています。ACM は、パブリックとプライベートの AWS ワークロードの両方で使用するための証明書のプロビジョニング、管理、およびデプロイに使用できる主要なサービスです。ACM は AWS Private CA を使用して証明書を発行し、 他の多くの AWS マネージドサービスと統合して、 ワークロード用の安全な TLS 証明書を提供します。

AWS Private CA では、独自のルート認証機関または下位認証機関を確立し、API を通じて TLS 証明書を発行できます。こうした種類の証明書は、TLS 接続のクライアント側で信頼チェーンを制御し管理するシナリオで使用できます。TLS ユースケースに加えて、AWS Private CA は、Kubernetes ポッドへの証明書の発行、Matter デバイス製品認証、コード署名、 およびカスタムテンプレートを使用したその他のユースケースにも使用できます。また、 IAM Roles Anywhere を使用して、プライベート CA によって署名された X.509 証明書が発行されたオンプレミスのワークロードに、一時的な IAM 認証情報を提供することもできます。

ACM と AWS Private CA に加えて、 AWS IoT Core は、IoT デバイスへの PKI 証明書のプロビジョニング、管理、およびデプロイに特化したサポートを提供します。AWS IoT Core は、 公開鍵基盤に大規模に IoT デバイスをオンボーディングするための 特殊なメカニズムを提供します。

プライベート CA 階層を確立する際の考慮事項

プライベート CA を確立する必要がある場合、特別な注意を払って事前に CA 階層を適切に設計しておくことが重要です。プライベート CA 階層を作成する場合は、CA 階層の各レベルを個別の AWS アカウント にデプロイすることがベストプラクティスです。この意図的な手順により、CA 階層内の各レベルへの外部からのアクセスが減り、CloudTrail ログデータ内の異常をより簡単に発見できるようになります。また、いずれかのアカウントに不正アクセスがあった場合、アクセス範囲と影響が小さくなります。ルート CA はそれぞれ別のアカウントに保存し、1 件以上の中間 CA 証明書の発行にのみ使用すべきです。

次に、ルート CA のアカウントとは別のアカウントに 1 つ以上の中間 CA を作成し、エンドユーザー、デバイス、または他のワークロードに証明書を発行します。最後に、ルート CA から中間 CA に証明書を発行します。これにより、エンドユーザーまたはデバイスに証明書が発行されます。回復力の計画、クロスリージョンレプリケーション、組織全体での CA の共有など、CA デプロイの計画と CA 階層の設計の詳細については、 「Planning your AWS Private CA deployment」を参照してください。

実装手順

  1. ユースケースに必要となる適切な AWS サービスを判断します。

  2. 可能な限り、証明書の自動更新を実装してください。

  3. 認証機関を保有するアカウントへの

    • アクセスを追跡するための CloudTrail ログ を有効にします。CloudTrail でログファイルの整合性検証を設定して、ログデータの信頼性を検証することを検討してください。

    • プライベート CA が発行または取り消した 証明書を一覧表示する 監査レポートを定期的に生成し、レビューします。これらのレポートは S3 バケットにエクスポートできます。

    • プライベート CA をデプロイするときは、証明書失効リスト (CRL) を保存する S3 バケットも確立する必要があります。ワークロードの要件に基づいてこの S3 バケットを設定する場合のガイダンスについては、 「Planning a certificate revocation list (CRL)」を参照してください。

リソース

関連するベストプラクティス:

関連するドキュメント:

関連動画:

関連する例:

関連ツール: