Amazon Web Services ブログ
AWS Certificate Manager がパブリック証明書のエクスポートをサポート
本ブログは 2025 年 6 月 30 日に公開された AWS Blog “AWS Certificate Manager now supports exporting public certificates” を翻訳したものです。
AWS Certificate Manager (ACM) は、AWS サービスやオンプレミス、ハイブリッドアプリケーション向けのパブリックおよびプライベート TLS 証明書のプロビジョニング、管理、デプロイを簡素化するサービスです。多様なワークロードに対する ACM の柔軟性をさらに高めるため、AWS は強力な新機能である ACM エクスポート可能なパブリック証明書を導入しました。この機能により、ACM からパブリック TLS 証明書と関連するプライベートキーをエクスポートできるようになります。エクスポートした証明書は、Amazon Elastic Compute Cloud (Amazon EC2) インスタンス、Amazon Elastic Kubernetes Service (Amazon EKS) Pod、オンプレミスサーバー、または他のクラウドプロバイダーでホストされているサーバー上のワークロードを保護するために使用できます。この機能は、AWS アカウントで新しく作成されたパブリック証明書をサポートしています。
このブログでは、多様なインフラストラクチャ全体でエクスポート可能なパブリック証明書のエクスポートとデプロイを自動化する方法を紹介します。EC2 インスタンスやハイブリッド環境の仮想マシンなど、複数の宛先に証明書を自動的にデプロイするワークフローの作成手順を説明します。この自動化の仕組み、メリット、および開始するためのステップバイステップガイドを提供します。さらに、Amazon EventBridge との統合により、証明書が発行または更新されたときに自動的に証明書のエクスポートをトリガーする方法についても説明します。これにより、異種環境全体での証明書のデプロイが効率化され、管理オーバーヘッドが大幅に削減されます。
背景: ACM と証明書管理
ACM は、TLS 証明書の購入、アップロード、更新の複雑さを取り除くマネージドサービスです。Elastic Load Balancing (ELB)、Amazon CloudFront、Amazon API Gateway など、ACM と統合された AWS サービス向けに追加料金なしでパブリック証明書を提供します。ACM は、サードパーティのパブリック証明書のインポートや、AWS Private Certificate Authority を通じたプライベート証明書の発行もサポートしています。本日 (2025 年 6 月 30 日) のリリース以前、ACM パブリック証明書は CloudFront などの ACM と統合された AWS サービス向けに設計されており、それらのサービスにシームレスな TLS 暗号化を提供していました。サードパーティのコンテンツ配信ネットワーク (CDN) や EC2 インスタンスで TLS を終端するワークロードでは、お客様は通常、他のプロバイダーから証明書を取得するか、一元管理のために ACM にインポートしていました。お客様からは、これらのユースケースにも ACM を使用し、そのシンプルさとスケーラビリティをより幅広い環境に拡張したいというご要望をいただいていました。新しい ACM エクスポート可能なパブリック証明書機能は、このニーズに応えるものであり、一元管理と自動更新を維持しながら、ACM で管理されたパブリック証明書をカスタムワークロードで使用するためにエクスポートできるようになりました。
ACM を使用すると、パブリック証明書をリクエストし、ドメインの所有権が検証された後、Apache、NGINX、Microsoft IIS などの TLS を終端するソフトウェアで使用するために証明書をエクスポートできるようになりました。ACM は証明書の更新を処理するため、アプリケーションを中断させる可能性のある証明書の有効期限切れのリスクが軽減されます。
仕組み: ACM パブリック証明書の発行と更新
ACM エクスポート可能なパブリック証明書を使用するには、発行と更新のプロセスを理解し、証明書管理を自動化する方法を把握する必要があります。このセクションでは、これらのプロセスと自動化機能について説明します。これらは証明書のデプロイと維持に不可欠です。
ACM パブリック証明書の発行
ACM パブリック証明書の発行には、以下の手順が含まれます。
- 証明書のリクエスト: ACM の AWS マネジメントコンソール、または AWS コマンドラインインターフェイス (AWS CLI) や API で、保護したいドメイン名 (例: example.com や *.example.com) を指定して証明書をリクエストします
- ドメイン所有権の検証: ACM では、ドメインの管理権限を証明する必要があります。ドメインが Amazon Route 53 でホストされている場合、ACM にドメインの所有権を検証するようリクエストできます。AWS 外でホストされているドメインの場合、DNS 検証 (CNAME レコードの追加) または E メール検証 (ドメイン連絡先に送信されたメールへの応答) を使用できます
- 証明書の発行: ドメインの所有権が検証されると、ACM は公開鍵、プライベートキー、証明書チェーンを含む証明書を発行します
- 統合された AWS サービスへの証明書の関連付け: 統合された AWS サービスに証明書を関連付ける方法については、ACM と統合されたサービスを参照してください
- 証明書のエクスポート: 新機能により、ACM コンソール、AWS CLI、または API を使用して、ACM と統合されていないサーバーで使用するためにパブリック証明書、プライベートキー、証明書チェーンをエクスポートできるようになりました
- アプリケーションへのバインド: エクスポートした証明書をサーバー (例: Apache や NGINX) にインストールして、TLS 終端を有効にします
この新機能のリリースにより、ACM で作成したパブリック証明書をエクスポートできるようになりました。エクスポートの可否は証明書の作成時に指定します。
エクスポート可能なパブリック証明書を作成するには、ACM コンソールを使用して新しいパブリック証明書を作成します。開始するには、ACM コンソールで [証明書をリクエスト] を選択し、[パブリック証明書をリクエスト] ページの [エクスポートを許可] で [エクスポートを有効にする] を選択します。[エクスポートを無効にする] を選択すると、この証明書のプライベートキーは ACM からのエクスポートが許可されなくなり、証明書の発行後に変更することはできません。
図 1: パブリック証明書をリクエストしてエクスポートを有効化
[エクスポートを有効にする] オプションを選択して証明書を作成し、ドメインの所有権の検証を完了したら、図 2 のようにエクスポートプロセスに進むことができます。証明書をエクスポートするには、証明書のリストから証明書を選択し、[その他のアクション] を選択して、[エクスポート] を選択します。
図 2: 証明書のエクスポート
ACM パブリック証明書の更新
ACM は証明書の更新プロセスを自動化します。このプロセスには以下が含まれます。
- 更新の開始: ACM は証明書の有効期限の 60 日前に自動的に更新プロセスを開始します
- ドメインの再検証: ACM は初回発行時と同じ方法 (DNS または E メール) を使用してドメインの所有権を再検証します
- 証明書の更新: 再検証が成功すると、ACM は同じ Amazon リソースネーム (ARN) で有効期限が更新された新しい証明書を発行します
- ACM で証明書が更新されると、サービスは自動的に EventBridge イベントを送信し、新しい証明書が利用可能になったことを通知します。更新が失敗した場合、ACM は AWS Health Dashboard と EventBridge の両方に通知を送信します。これらの証明書イベントに関する情報を受け取るには、特定の証明書関連イベントを監視する EventBridge ルールを作成します。これらのルールを設定して Amazon Simple Notification Service (Amazon SNS) トピックに通知を送信することで、関係者が証明書のステータスに関するタイムリーな更新を受け取ることができます
新しい EventBridge スキーマフィールド: ACM 証明書の更新が成功すると、ACM Certificate Available イベントに exportable フィールドが含まれるようになりました。このフィールドは、パブリック証明書がエクスポート可能かどうかを TRUE|FALSE で示します。
- エクスポートと更新: 更新された証明書をエクスポートし、手動でサーバーに更新するか、EventBridge ルールによってトリガーされる AWS Systems Manager Automation ドキュメントなどの EventBridge ターゲットを使用して更新できます。詳細については、Amazon EventBridge のイベントバスターゲットを参照してください
EventBridge ルールを使用して特定のイベントを監視し、処理のために 1 つ以上のターゲット (Amazon SNS トピック、AWS Lambda 関数、その他の AWS サービスなど) に配信できます。たとえば、DNS 設定の問題によりドメイン検証が失敗した場合、ACM は ACM Certificate Renewal Action Required EventBridge イベントを生成します。SNS トピックをターゲットとする EventBridge ルールを作成することで、E メールアラートを受信するようサブスクライブし、必要な是正措置を講じることができます。
EventBridge を使用した更新済み証明書のデプロイの自動化
証明書の更新プロセスにより、手動介入なしで TLS 証明書の有効性を維持できますが、多様な環境全体で証明書を更新するには依然として手間がかかる場合があります。ACM が証明書を更新すると、EventBridge イベントが生成されます。このイベントに基づいてターゲットをトリガーする EventBridge ルールを設定できます。
- 通知の送信: イベントを Amazon SNS に配信して、管理者に E メールまたは SMS 通知を送信します
- 証明書デプロイの自動化: Lambda 関数または Systems Manager Automation ドキュメントをトリガーして、ACM API を使用して更新された証明書を取得し、サーバーに更新します
- 更新失敗の監視: ACM 証明書の更新失敗イベントに基づいてアラートを設定します。これらのイベントは通知チャネルに直接配信して、ドメイン検証エラーなどの問題を通知できます
これを設定するには、ACM 更新イベントに一致する EventBridge ルールを作成し、ターゲット (SNS トピックや Lambda 関数など) を指定します。この自動化により手動介入が最小限に抑えられ、インフラストラクチャ全体でシームレスな証明書更新が実現します。
ソリューションの概要
このセクションでは、2 つのワークフローについて説明します。1 つ目は、既存の ACM パブリック証明書をエクスポートし、ターゲットの EC2 インスタンスまたは仮想マシンにインストールする自動化プロセスです。2 つ目は、ACM でパブリック証明書が自動更新されて利用可能になったときにトリガーされ、対象の EC2 インスタンスと仮想マシンの証明書を更新するワークフローです。このソリューションではターゲットシステムとして EC2 インスタンスと仮想マシンを使用していますが、同じ方法を適用して、さまざまな種類のシステム全体でパブリック証明書を大規模に更新できます。
前提条件
- この自動化されたパブリック証明書のエクスポートと更新プロセスを拡張するには、以下を行います。
- EC2 インスタンスの管理: Systems Manager による EC2 インスタンスの管理の手順に従ってください
- オンプレミスや他のクラウド環境の仮想マシンの管理: Systems Manager によるハイブリッドおよびマルチクラウド環境のノード管理の手順に従ってください
- 更新された証明書をデプロイする EC2 インスタンスと仮想マシンに
TargetTagKeyタグを追加します。自動化はこれらのタグを使用してターゲットインスタンスを識別します ExportCertificateAPI の操作には証明書のパスフレーズが必要です。セキュリティのベストプラクティスを維持するため、パスワードはプレーンテキストではなく、暗号化して安全に保存することをお勧めします。この実装では、AWS Secrets Manager を使用してこれらの機密認証情報を安全に保存します。このソリューションでは、Amazon DynamoDB を使用して証明書メタデータを維持します。これには、Secrets Manager に保存されている対応するシークレット名への参照が含まれます。セキュリティを強化するため、DynamoDB テーブルのデータは AWS Key Management Service (AWS KMS) を使用して保存時に自動的に暗号化されます
ACM 証明書のエクスポート
図 3: ACM 証明書の発行とエクスポートのワークフロー
図 3 のワークフローは、既存の ACM パブリック証明書を API 駆動のプロセスでエクスポートし、対象のシステムにデプロイする自動化プロセスです。
- プロセスは、ユーザーが API Gateway エンドポイントにリクエストを送信することから始まります。リクエストには、エクスポートする証明書を識別する
CertificateArn、証明書の識別用のCertName、証明書をインストールするターゲット EC2 インスタンスを識別するためのTargetTagKeyとTargetTagValueなどの必須パラメータが含まれます。以下は API Gateway に送信されるペイロードの例です。 - リクエストを受信すると、API Gateway は複数のオーケストレーションされた状態を含む AWS Step Functions ワークフローをトリガーします
- 最初の状態では、
acm-Exportという Lambda 関数が実行され、プライベートキー用のパスフレーズを生成します acm-ExportLambda 関数は、生成されたパスフレーズを Secrets Manager に安全に保存し、そのパスフレーズを使用して ACM 証明書をエクスポートしますacm-Export関数の完了後、Step Functions ワークフローはssm-runLambda 関数を呼び出します- この関数は 2 つの操作を実行します。DynamoDB (インベントリ追跡システムとして機能) で証明書の存在を確認し、レコード管理を行います。既存の
certificateARNが見つかった場合、関数は現在のCertExpiryDateとLastExportedDateのタイムスタンプ値でレコードを更新します。初めてエクスポートされる証明書の場合、一致するエントリが存在しなければ、Lambda 関数は DynamoDB に新しいレコードを作成します。この新しいレコードには、証明書の詳細と追跡情報を含むメタデータが記録されます。図 4 は、このメタデータがコンソールの DynamoDB テーブルエントリでどのように構造化されているかの例です
図 4: DynamoDB テーブル内の証明書メタデータ
- DynamoDB でのメタデータ検証ステップの後、Lambda 関数は
Install-ACMCertificateというカスタム Systems Manager ドキュメントの実行も開始します。このドキュメントは、新しくエクスポートされたパブリック証明書を指定された EC2 インスタンスにインストールする処理を行います。同じ Systems Manager ドキュメントを使用して、オンプレミスサーバーへの証明書のインストールや更新も行うことができ、証明書デプロイの柔軟性を提供します - Systems Manager ドキュメントの実行が成功すると、
TargetTagKeyに一致する EC2 インスタンスに新しくエクスポートされたパブリック証明書がデプロイされます。デフォルトでは、Linux サーバーでは証明書は/etc/ssl/certsと/etc/ssl/privateに保存されますが、これらのパスは Systems Manager ドキュメントでカスタマイズできます - Systems Manager ドキュメントの実行が成功した後、Step Functions ワークフローは次の状態に進み、
Statuscheckという別の Lambda 関数をトリガーします。この関数は、先に開始された Systems Manager ドキュメントの実行ステータスを監視します。Step Functions ワークフローは、ターゲットの EC2 インスタンスへの証明書のインストールが成功したことを確認した後、実行を完了します
ACM 証明書の更新とエクスポート
図 5: ACM 証明書と更新プロセス
証明書の有効期限が 60 日以内になると、ACM は自動的に更新プロセスを開始します。ACM が証明書の更新を正常に完了すると、以下の例のように EventBridge でイベントを生成します。
図 5 のワークフローは、既存の ACM パブリック証明書を API 駆動のプロセスでエクスポートし、対象のシステムにデプロイする自動化システムです。
- このソリューションでは、証明書の更新通知を監視し、それに応じて
acm-renewLambda 関数をトリガーする EventBridge ルールを使用します。関数は ACM イベントから証明書 ARN を受け取って実行を開始します。この ARN をルックアップキーとして使用し、DynamoDB テーブルをクエリして関連する証明書メタデータを取得します。このクエリから、Certificate Nameや、更新された証明書が必要なリソースを識別するTargetTag Key-Valueペアなど、重要な証明書の詳細を抽出します。これらの詳細は、その後の証明書デプロイプロセスに必要であり、更新が正しいシステムに適用されることを確認するのに役立ちます - この情報はペイロードにフォーマットされ、Step Functions ワークフローをトリガーするために使用されます。この Step Functions ワークフローは、ACM 証明書のエクスポートセクションで説明したのと同じプロセスに従います
- ステップ 3 から 9 は、ACM 証明書のエクスポートセクションで説明したプロセスに従います。ステップ 9 が正常に完了すると、Step Functions ワークフローは実行を完了します。この時点で、更新されたパブリック証明書はターゲットの EC2 インスタンスに正常にインストールされ、自動化された証明書のエクスポートとインストールプロセスが完了します
ソリューションのダウンロード、実行、証明書エクスポートの検証、AWS アカウントへのデプロイの詳細な手順は、GitHub で入手できます。
料金と利用可能なリージョン
ACM エクスポート可能なパブリック証明書は、AWS 商用リージョン、AWS GovCloud (US) リージョン、および中国リージョンで利用可能であり、前払いなしの従量課金制の料金モデルに従います。ELB、CloudFront、API Gateway などの ACM と統合された AWS サービス向けのパブリック証明書は、引き続き追加料金なしで利用できます。詳細な料金については、AWS Certificate Manager の料金を参照してください。
まとめ
ACM エクスポート可能なパブリック証明書機能により、統合されたマネージド証明書ソリューションで多様なワークロードを保護できるようになりました。EC2、コンテナ、オンプレミスサーバー、他のクラウドプロバイダー向けの証明書エクスポートが可能になったことで、ACM は一元管理、自動更新、コスト効率の高い料金を提供しながら、TLS 管理を簡素化します。ぜひ ACM コンソールでこの機能をお試しいただき、証明書管理ワークフローを効率化してください。
FAQ
ACM はパブリック証明書の有効期間の短縮をサポートしますか?
ACM は、今後数か月以内に CA/Browser Forum の TLS 証明書に関する要件に合わせて、パブリック証明書の有効期間を短縮する予定です。ACM は既に証明書の更新を自動的に処理し、新しい証明書がデプロイ可能になったときに通知する機能を提供しています。Amazon Trust Services (ATS) は、公的に信頼される TLS 証明書の標準が設定される CA/Browser Forum に積極的に参加しています。CA/Browser Forum の要件を満たすため、AWS は以下のスケジュールで TLS 証明書の最大有効期間を適用します。
- 2026 年 3 月 11 日まで、発行される TLS 証明書の最大有効期間は 398 日
- 2026 年 3 月 1 日以降、発行される TLS 証明書の最大有効期間は 200 日
- 2027 年 3 月 1 日以降、発行される TLS 証明書の最大有効期間は 100 日
- 2029 年 3 月 1 日以降、発行される TLS 証明書の最大有効期間は 47 日
有効期間が短い証明書の料金はどうなりますか?
ACM のエクスポート可能なパブリック証明書をご利用の場合、証明書の最大有効期間の変更に伴うコスト増加についてご懸念があることを理解しています。AWS は ACM を通じて発行される証明書の公正な料金を維持することをお約束します。業界標準の変更に伴い、年間の証明書コストを現在の料金と同等に維持することを目指して、料金体系を適宜調整する予定です。料金変更が適用される前に、詳細をお知らせします。
このブログについてご質問がある場合は、AWS サポートにお問い合わせください。