AWS Certificate Managerについて
AWSの無料でSSLサーバー証明書が使用できる機能AWS Certificate Manager(ACM)が、2016年5月より東京リージョンでも使用できるようになりました。
・AWS Certificate Manager
https://aws.amazon.com/jp/certificate-manager/
ACMの特徴は以下のとおりです。
- ELB(ロードバランサー)とCloudFront(CDN)でのみ使用できる。(EC2では使用できない)
- 複数ドメイン、ワイルドカードドメインも可能。
- ドメイン認証(DV)タイプの証明書。
- 証明書リクエスト時の検証は、ドメインの公開連絡アドレスおよびadmin@等の管理者アドレスに届くメールでの承認クリック。
- 有効期限は13ヶ月で、期限が近づくと自動更新される。
比較的簡単に取得できて、ワイルドカードの証明書も含めて、無料・無期限で使用できるすばらしい機能ですね。
自己証明書の危険性
6月20日(月)に開催された、第19回JAWS-UG札幌勉強会でも、アグレックス和田さんより、ACMに関する発表がありました。
ACMを使用するメリットや証明書の発行手順がとても丁寧に説明されているすばらしい発表だったのですが、僕がハっとさせられたのは5ページ目のところ。
Webサイト公開前の検証のとき、諸事情により正式な証明書の入手が遅れているため、自己証明書(いわゆるオレオレ証明書)を使用することはわりとよくあります。
この状態でお客様にWebサイトを確認していただく際に
「ブラウザでアラートが出ても気にしないで進んでください」
と当たり前のように言ってしまっていたんですが、これは実はものすごくよくないことでした。
SSLの仕組みをよく知っているエンジニアならまだよいのですが、そうではない方に
「(どのWebサイトを見たときでも)ブラウザでアラートが出ても気にせずに進んでいいんだ!」
と認識されてしまうと、業務やプライベートにおけるWeb閲覧でフィッシングサイトに気づかないことも起こり得ます。
今後は、検証環境でも可能な限り、ACMやLet’s Encryptなどを使用して、Webブラウザでアラートが表示されない正式な証明書を使用するようにしたいと思います。
ACMを使用するメリット
JAWS-UG札幌勉強会のあとの懇親会でも
「opensslの脆弱性対応でたびたびメンテナンスアップデートする手間を考えたら、サーバー1台でもELBを使ったほうがいいかも」
という話題がありました。
この視点も、僕は今まであまり考えていませんでしたが、マネージドロードバランサーならではのメリットですね。
※opensslはSSH等のソフトウェアでも使用されているので、HTTPS通信がなくてもアップデートはすべきですが、一般公開しているHTTPSに比べて脆弱性の影響が小さいケースが多いといえるでしょう。
また、それ以外にも、
- ACMの使用で証明書の新規取得・更新時の作業(CSRの作成→お客様から認証局に申請・発行していただく→証明書の設置のフロー)が削減される。
- ELBやCloudFront(+AWS WAF)を使用することで、一部DDoS攻撃を軽減できる。(*1)
といったメリットもあります。
※(*1)については、AWSの以下の資料を参照してください。
CloudFrontにはDDoS緩和技術が含まれています。
また、CloudFrontやELBを使用してHTTP(S)のみにアクセスを限定することで、SynフラッドやUDP増幅などの攻撃がEC2に届かなくなります。
・AWS初心者向けWebinar AWS上でのDDoS対策
https://www.slideshare.net/AmazonWebServicesJapan/awswebinar-awsddos
コスト面の比較
コスト的には、ELBの料金は $0.027/hour + 転送量課金$0.008ですので、だいたい2,500円/月、30,000円/年ぐらいでしょう。
認証局の証明書を購入すると、たとえば、グローバルサインのドメイン認証(DV)タイプである「クイック認証SSL」は、34,800円/年で、ワイルドカードオプションをつけるとさらに94,000円/年追加となります。(この記事を書いている2016年6月29日現在)
・グローバルサイン SSLサーバ証明書 価格表
https://jp.globalsign.com/service/ssl/price.html
ドメイン認証(DV)タイプについては、「EC2+グローバルサインの証明書」よりも「ELB+EC2+ACMの証明書」のほうが安く、かつ、セキュリティや運用管理におけるメリットもあるのでお得だといえるでしょう。
※もっと安い証明書もあるのでしょうし、Let’s Encryptのような無料証明書もありますが。
まとめ
AWS Certificate Managerについて思うことを書きました。
Googleの検索ランキングアルゴリズムでHTTPSを考慮することやHTTP/2化のこともあり、今後WebサイトのHTTPS化の流れは進んでいくでしょう。
「Webアクセスが少ないからEC1台でよい」
という場合でも上記のようなコスト、セキュリティ、運用管理等のメリットがありますので、HTTPSが必要でドメイン認証(DV)タイプで問題なければ、ACM + ELB/CloudFront + EC2の組み合わせでの使用を検討するケースが増えていきそうです。