【AWS】AWS Certificate Manager (ACM) ~ 入門編 ~

■ はじめに

 今回は、
SSL証明書を発行するサービス「AWS Certificate Manager (ACM)」
について、取り上げる。

目次

【1】AWS Certificate Manager (ACM)
 1)料金
 2)サポートしているAWSサービス
【2】証明書検証方法
 1)「DNS」と「Eメール」どっちがいい?

 【1】AWS Certificate Manager (ACM)

* AWS自身が認証局(CA; Certification Authority)になって
 SSL/TLS 証明書を提供してくれるAWSサービス

 1)料金

https://aws.amazon.com/jp/certificate-manager/pricing/

 * 無料

2)サポートしているAWSサービス

[1] Elastic Load Balancing (ELB) => ALBのみ
[2] Amazon CloudFront
[3] Amazon API Gateway
[4] AWS Elastic Beanstalk
[5] AWS CloudFormation
[6] AWS Nitro Enclaves

補足1:[1] - [5] について
https://aws.amazon.com/jp/certificate-manager/faqs/

の「Q: ACM 証明書は、どの AWS のサービスで使えますか?」を参照

補足2:「[6] AWS Nitro Enclaves」について
https://aws.amazon.com/jp/about-aws/whats-new/2020/10/announcing-aws-certificate-manager-for-nitro-enclaves/

 注意:CloudFrontでの使用について

 * CloudFrontで使用する場合、
 リージョンは「米国東部(バージニア北部)」で作成する必要あり

https://docs.aws.amazon.com/ja_jp/AmazonCloudFront/latest/DeveloperGuide/cnames-and-https-requirements.html#https-requirements-aws-region

より抜粋
~~~~~~~~~~~~
 証明書をリクエストする AWS リージョン (AWS Certificate Manager 用)

  ビューワーと CloudFront との間で HTTPS を必須にするには、
 証明書をリクエストまたはインポートする前に AWS Certificate Manager コンソールで
 AWS リージョンを 米国東部(バージニア北部) に変更する必要があります。
~~~~~~~~~~~~
* CloudFront については、以下の関連記事を参照のこと。 

https://dk521123.hatenablog.com/entry/2017/12/18/233136

 【2】証明書検証方法

1)DNS での検証
2)Eメールでの検証

 1)「DNS」と「Eメール」どっちがいい?

 * 『1)DNS での検証』がいいと思う

https://aws.amazon.com/jp/blogs/news/easier-certificate-validation-using-dns-with-aws-certificate-manager/
https://aws.amazon.com/jp/about-aws/whats-new/2017/11/aws-certificate-manager-easier-certificate-validation-using-dns/
理由

 * 「Eメールでの検証」だと、ドメイン検証の仕方として、HTTPS(ポート番号443)接続でアクセスする
  Case1 : 成功 => 自動更新
  Case2 : 失敗 => Email送信され、ユーザが手動更新しなければならない (やり忘れたらSSL接続ができない)

失敗するケースは?

 => 例えば、セキュリティグループで、内部から接続できるが、外部接続ができない環境(開発環境など)だった場合

一方「DNS 検証」の検証方法は?

 *  指定されたCNAME (正規名) レコードが登録されているかを確認したら、証明書を自動更新

関連する公式ページ
https://docs.aws.amazon.com/ja_jp/acm/latest/userguide/how-domain-validation-works.html

より抜粋

証明書を更新する前に、ACM は証明書の各ドメイン名を自動的に検証することを試行します。

https://docs.aws.amazon.com/ja_jp/acm/latest/userguide/gs-acm-validate-dns.html

より抜粋

DNS 検証は、E メール検証よりも多数のメリットがあります。

 * DNS では、ACM 証明書をリクエストするときに、ドメイン名あたり 1 つの CNAME レコードのみを作成する必要があります。
   E メール検証では、ドメイン名あたり最大 8 つの E メールメッセージが送信されます。

 * DNS レコードが残っていれば、FQDN 用に追加の ACM 証明書をリクエストできます。
   つまり、同じドメイン名を持つ複数の証明書を作成できます。新しい CNAME レコードを取得する必要はありません。
   これを行うことには、いくつか理由があります。
   たとえば、異なるサブドメインを対象とする新しい証明書を作成する、複数のリージョンで同じ証明書を作成する 
    (認証トークンはどのリージョンでも使用できます)、削除した証明書を置き換えるなどです。

 * ACM は、DNS を使用して、検証した ACM 証明書を自動的に更新します。
   証明書は使用中で DNS レコードが残っている状態であれば、各証明書は有効期限が切れる前に ACM によって更新されます。

 * Route 53 を使用している場合は、ACM によって CNAME レコードが追加され、パブリック DNS レコードを管理できます。

 * DNS 検証プロセスは、E メール検証プロセスよりも簡単に自動化できます。

ただし、ドメインの DNS レコードを修正する権限がない場合は、E メール検証が必要となる場合があります。

 関連記事

Amazon CloudFront ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2017/12/18/233136
AWS の セキュリティを考える
https://dk521123.hatenablog.com/entry/2017/08/31/235847