読者です 読者をやめる 読者になる 読者になる

リクルート住まいカンパニー Tech Blog

ITのちからで暮らしをよくしたい、エンジニア・デザイナーが発信するTech情報メディア

AWS Certificate managerの紹介

f:id:recruit-sumai:20170310185752p:plain

近年常時SSL化という言葉が一般的になっているのはご存知でしょうか?。

常時SSL化することで通信経路上でのなりすましやコンテンツ改ざんなどの攻撃への対策やSEOの順位の上昇が見込めるというメリットはあるのですが、AWSなどを使って実際にWebサービスをSSL化して運用することを考えるとやはりまだ以下のような課題があります。

  • CPU負荷増大(クライアントとの通信時に認証/暗号化オペレーションが行われるためCPU負荷が増加します)
  • 証明書更新オペレーション(SSL証明書には必ず有効期限があるため、定期的(1~3年毎)に証明書更新作業を行わなければ正常にHTTPS通信することができません)

この中でもCPU負荷の増大についてはあらかじめWebサーバのスペックを上げておくなどの手段を使えばあまり(費用はやや増大しますが)大きな問題はありません。 そうなると最後に残るのは”証明書更新”です。Webサービスの運用の実務に携わっている方であればご存知だと思いますがこれが実はわずらわしく、油断すると大きなトラブルの元になる処理です。

  • CA(証明書発行プロバイダ)毎に証明書の発行手続きが違い、さらに証明書のデプロイ方法がサービス稼働環境毎(Webサーバ、ELB、SSLアクセラレータ...)にまちまちで自動化が困難
  • 人間は忘却する葦である(三日前の自分すら他人なのに三年も前に設置した証明書のことなど覚えているはずが....)

そしてこの更新処理をうっかり忘れると容赦なく"サービス全停止“となるわけです。ここだけはクラウドやIaaSが普及しても同じように手間がかかり、進歩がありません。 こんな時限爆弾的な、そして労働集約的な作業から開放されたいと思いませんか?では、AWS Certificate Managerの紹介です。

AWS Certificate Managerとは

AWS Certificate Managerとは AWS上のSSL証明書を使用するサービス(ELB,CloudFrontなど)向けの証明書の発行、更新サービスです。 従来、ELBやCloudFrontでSSL証明書を利用する場合、ユーザ側で取得した証明書を手動でIAMに毎回アップロードする必要がありましたが、AWS Certificate Managerを使うことで 初回のみドメインの所有確認手続きが必要ですがそれ以降は自動的に更新されるため、サービス立ち上げ時を除けば一切メンテナンス不要となります。

AWS Certificate Managerで作成した証明書はELB又はCloudFront用に限定されていますので、今回はELBに設定してみます。

証明書を作成

指定する項目はとてもシンプルで、証明書のコモンネーム(ドメイン名)を指定するだけです。ちゃんとSAN(subject altername name)やワイルドカードドメインにも対応しています。

f:id:recruit-sumai:20170124112255p:plain

申請を行うと下記のようなドメインに通常存在する管理者アドレス宛に確認メールが送信されますので、本文記載のページを開いて承認ボタンを押してください。

  • postmaster@ドメイン名
  • webmaster@ドメイン名
  • admin@ドメイン名

メールの承認が完了すると発行済み状態となります。

 

f:id:recruit-sumai:20170124112257p:plain

ELBに証明書を組み込み

では作成した証明書をELBに組み込んでみましょう。といっても特殊な操作はなく、ELB作成時の証明書を選択する際にIAMではなくAWS Certificate Managerで作成した証明書を選択するだけでOKです。

f:id:recruit-sumai:20170124112300p:plain

動作チェック

とても簡単にHTTPS対応できました。証明書の期限は発行から13ヶ月、上位CAはStarFieldとなっていました。ドメイン認証の証明書のため、発行者情報は空欄となっています。

f:id:recruit-sumai:20170124112304p:plain

料金など

ELBやCloudFrontの費用はかかりますが、AWS Certificate Manager自体の証明書発行費用は無料です。短期間だけ必要なデモやステージング環境にも気軽に発行できます。

まとめ

AWS Certificate Managerを使うことで更新含めてとても人手を省いた形でWebサイトを常時SSL化することができました。これまでSSL化する場合、更新運用のために色々と煩わしい手間がかかっていたわけですが、今後は「何も考えずにとりあえずSSL化」が可能になります。AWS Certificate Manager自体は一見地味なサービスではありますが、安全なインターネットに向けて重要なサービスだと考えています。