ACM パブリック証明書機能で出来ること出来ないことをリスト化してみた

2022.10.03

アノテーション、テクニカルサポートチームの村上です。

現在、ネットワークを経由するサービスにおいては暗号化がほぼ必須となっていることもあり、定期的に ACM 証明書関連のお問い合わせをいただきます。

本ブログでは、AWS Certificate Manager の ACM パブリック証明書機能(AWS Private CA を除く機能)について、今までいただいたご質問を振り返り、できることとできないことに分けてリスト化してみました。
「できること 2.」と「できないこと 4.」については、同じ内容なのですがあえて併記しています。

できることリスト

1. 以下の各種 AWS サービスと統合、連携しての利用

  • Elastic Load Balancing
  • Amazon CloudFront
  • Amazon API Gateway
  • AWS Nitro Enclaves
  • AWS CloudFormation
  • AWS Elastic Beanstalk
  • Amazon Cognito
  • AWS App Runner
  • AWS Amplify
  • Amazon OpenSearch Service

AWS Certificate Manager と統合されたサービス

2. Nginx と Apache をウェブサーバーとして実行する EC2 においての ACM パブリック証明書利用

※ Nitro Enclaves に対応している EC2 インスタンスタイプの利用が必要です。

2022 年 9 月 14 日より、Apache でも ACM パブリック証明書の利用が可能となりました。

3. サードパーティ証明書のインポートと展開

ACM パブリック証明書だけではなく、サードパーティ製の証明書も ACM へインポートしてご利用いただけます。

サードパーティが発行した TLS/SSL 証明書を ACM にインポートするにはどうすればよいですか。

サードパーティが発行した TLS/SSL 証明書を ACM にインポートするには、証明書、その秘密鍵、および証明書チェーンを提供する必要があります。

4. ACM パブリック証明書のマネージド証明書更新と自動適用

ドメイン検証用の CNAME レコードがホストゾーン(または DNS ネームサーバ)に登録されていて、かつ証明書が AWS サービスで利用されている必要があります。
証明書更新にあたり、証明書の Amazon リソースネーム (ARN) の変更はありません。

ACM 証明書のマネージド更新

これらのサービスは、パブリック ACM 証明書とプライベート ACM 証明書の両方に対して提供されます。

5. 既存の通信接続へ影響をあたえず更新された証明書を適用する

自動更新された ACM 証明書が、ご利用中の AWS サービスへ適用される際に、既存の接続に影響が無いよう配慮がされています。

6. ACM への操作履歴を CloudTrail で記録する

CloudTrail を利用することで、ACM への操作履歴を確認することができます。

AWS Certificate Manager での CloudTrail の使用

CloudTrail で収集された情報を使用して、ACM に対するリクエスト、リクエスト元の IP アドレス、リクエスト者、リクエスト日時などの詳細を確認できます。

できないことリスト

1. ACM パブリック証明書とご自身でインポートした証明書のエクスポート

ご自身でインポートしたサードパーティ証明書もエクスポートできません。

証明書のエクスポート  

パブリック証明書は、ACM で発行されたものでもインポートされたものでもエクスポートできません。

2. ACM パブリック証明書と紐づく秘密鍵のエクスポート

ACM パブリック証明書の秘密鍵もエクスポートできません。

ACM 証明書の特徴

ACM 証明書のプライベートキーをダウンロードすることはできません。

3. クライアント証明書への署名

AWS Client VPN でご利用中のクライアント証明書は、お客様ご自身で OpenVPN easy-rsa を利用して作成したものです。(AWS ドキュメント手順に従い作成した場合)
クライアント証明書を作成するには、AWS Private CA のご利用が必要となります。

4. Nginx と Apache 以外のウェブサーバーを実行する EC2 においての ACM パブリック証明書利用

できること 2. の裏返しとなりますが、2022/10/03 の時点では Nginx と Apache 以外のウェブサーバーによる ACM パブリック証明書の利用はできません。
他ウェブサーバーの利用が可能になったかのご確認は、下記 AWS ドキュメントに NGINX servers、Apache HTTP servers 以外のウェブサーバーが追加されているかをお確かめください。

Nitro Enclaves application: AWS Certificate Manager for Nitro Enclaves

Currently, ACM for Nitro Enclaves works with NGINX servers and Apache HTTP servers running on Amazon EC2 instances to install the certificate and seamlessly replace expiring certificates. Support for additional web servers will be added over time.

5. OV(企業認証)証明書、EV(Extended Validation) 証明書の発行

現在、ACM パブリック証明書に対応しているのはドメイン認証の証明書のみとなっております。
OV(企業認証)証明書、EV(Extended Validation) 証明書の利用が必要な場合は、サードパーティ証明書をご準備いただき ACM へインポートしていただく必要があります。

ACM 証明書の特徴

ACM は、拡張検証 (EV) 証明書または組織検証 (OV) 証明書を提供していません。

6. ACM へインポートしたサードパーティ証明書の自動更新

証明書の自動更新に対応しているのは、ACM 証明書のみとなります。

AWS Certificate Manager のよくある質問

インポートされた証明書の更新プロセスは、ACM で管理されません。インポートした証明書について、有効期限の監視と期限切れ前の更新は、ご自身で行ってください。

7. ACM パブリック証明書のリージョン間、アカウント間でのコピー

証明書のプライベートキーを暗号化する為に使用される KMS キーが、AWS リージョンおよび AWS アカウントごとに一意であるため ACM パブリック証明書のコピーはできません。
複数の AWS リージョンや AWS アカウントをまたいで同じドメインの ACM 証明書が必要な場合は、同じドメイン名で、リージョン毎、AWS アカウント毎の ACM 証明書を作成してご対応ください。

公開 ACM 証明書を他の AWS リージョンまたは AWS アカウントにエクスポートできますか?

ACM 証明書を 1 つの AWS リージョンから別の AWS リージョンに、または 1 つの AWS アカウントから別の AWS アカウントにエクスポートすることはできません。

まとめ

ACM パブリック証明書機能を利用して、何ができて何ができないかに迷った際は、上記リストをご活用ください。

なお、「できることリスト 2.」と「できないことリスト 4.」についての 2 つを併記した理由は、それだけ EC2 で ACM パブリック証明書が利用可能かというお問い合わせをいただく為です。

この記事がどなたかのお役に立てば幸いです。

参考資料