AWS で SSL/TLS 証明書を使いたいときは ACM に統一すると良さそう
Posted on
- #aws
AWS で SSL/TLS 証明書を使うには主に 2 つの方法があります(nginx などミドルウェアで処理することもできますが、今回のテーマからは逸れるので触れません)。
- 自分で取得した証明書を IAM にアップロードする
- AWS Certificate Manager (ACM) で無料の DV 証明書を発行する
ACM は証明書の取得や管理をすべて任せられるのでとても便利ですが、Amazon が認証局となる DV 証明書しか使えないという制約があり、EV 証明書を使うには 1 番の方法しかありませんでした。ですが、それも過去の話です。
先日、ACM が SSL/TLS 証明書のインポートに対応しました!
これで、グローバルサインやシマンテックで取得した証明書も ACM で管理できるようになります。
ACM で管理するメリット
IAM と比べてどういうメリットがあるのか確認してみました。
- 証明書の更新が一括で行える
- どのリソースで使われているかが一目でわかる
- 使われていない証明書を確認・削除できる
一番のメリットは証明書の更新が圧倒的に楽になることでしょう。これまでの IAM 方式だと、新しい証明書を IAM にアップロードし、その証明書を使っている ELB や CloudFront の設定をひとつひとつ変更する必要がありました。その証明書がどこで使われているか把握していないと更新し忘れる可能性があります(ELB が何十個もあると更新するのもひと苦労です…)。
ACM 方式だと新しい証明書をインポートし直すだけで、その証明書に紐づくすべてのリソースが更新されます。 Management Console を見れば、どのリソースに紐づいているかも一目でわかります。
上のキャプチャは、このブログの実際の設定です(このブログは S3 + CloudFront + ACM という構成です)。インポートされた blog.manabusakai.com
の証明書が CloudFront と ELB で使われていることがわかります。また、使われていない証明書は In use?
のところに No と表示されるので、安心して削除できます。
まとめ
ACM は IAM に比べて格段に使いやすくなっているので、IAM にアップロードした証明書も ACM に切り替えようと思っています。
ちなみに当然ではありますが、インポートした証明書は自分で更新する必要があるので、Lambda を使って有効期限をチェックすると良いでしょう。