AWS Certificate Manageryとは?
AWS Certificate Manager (ACM)は、AWSが提供するマネージドSSL/TLS証明書を発行、管理するサービス
料金体系
基本的には無料で使えますが、 AWS Private Certificate Authorityを使用したい場合には$50~$400くらいの金額が月間でかかります。
※異なる場合がありますので、使う際は必ず料金表を確認してください。
AWS Certificate Managery ←通常使用はこちらで十分
AWSが提供する公共のルートCA (認証局) を使用して一般的な証明書を発行するサービス
AWSが提供するサービス (Elastic Load Balancer, CloudFront, API Gateway)などで使用する
AWS Private Certificate Authority
カスタムルートCA (認証局) を作成し、独自の証明書を発行することができるサービス
オンプレミスサーバーや仮想サーバーに対しても使用することができる
AWS Certificate Managerと一般的な証明書の違い
一般的な証明書には、pemやkeyファイルをサーバー(NginxやApache、EC2など)に紐づけることで、自身の存在を証明し、セキュアな通信が可能となります。
しかし、AWS Certificate Manageryを使用する場合は、AWS側で証明書を発行して AWSが提供するサービス (Elastic Load Balancer, CloudFront, API Gatewayなど)と紐づけることで簡単にセキュアな通信を行うことができます。
AWS Certificate Managerのメリット・デメリット
■メリット
・無料で使用できる
・物理的な鍵ファイルの管理が必要なくなり、証明書の更新などの手間を自動化できる
・AWS(Route53)以外でドメインを購入しても証明書が発行できる
・ドメインや証明書の管理など、UIがわかりやすいので、使いやすい
■デメリット
・サーバーと証明書を直接紐づけることができない (ACM for Nitro Enclavesを使用すれば可能)
・使用にはAWSのユーザー(クレジットカード)が必要になる
AWS Certificate Managerの具体的な手順
やり方は色々な記事があふれているので、よさげな記事のリンクを置いておきます。
ちなみに
上でもお伝えした通り、AWS Certificate Manageryではpemやkeyファイルといった実態を伴うものが存在しません。
そのため、そのままではNginxやApache、EC2といったサーバーで直接使用することはできず、AWSが提供するサービス (Elastic Load Balancer, CloudFront, API Gatewayなど)と紐づけることで使用することになります。
しかし、少し変則的にはなりますが、ACM for Nitro Enclavesを使用すれば、サーバー(NginxやApache、EC2など)に直接紐づけること可能になります。
こちらも記事は色々あるので、良さげな記事を張っておきます。
使ってみて思うこと
無料で証明書を発行することができ、更新などの管理もいらなくなるので、AWSが提供するサービス(Elastic Load Balancer, CloudFront, API Gatewayなど)でホスティングを行うのであれば、使用しない理由が存在しないくらい便利です。
ただ、ELBなどを使用しない場合には、サーバーに直接紐づけることが難しいため、使用するかどうかは検討が必要になります。
(まぁ、Nitro Enclavesを使えば問題ないのですが。。。)
参考資料