導入
データは保存されている間だけでなく、ネットワークを流れている間にも盗聴のリスクがあります。「転送中のデータ」を守るのがTLS/HTTPSであり、その証明書を手軽に扱えるのがACMです。
説明
転送時の暗号化(Encryption in Transit) とは、通信経路上でデータを暗号化することです。Webでは TLS(旧SSL) によるHTTPS通信がその代表です。
HTTPS通信には SSL/TLS証明書 が必要ですが、これを自前で取得・更新するのは手間がかかります。AWS Certificate Manager(ACM) は、この証明書を無料で発行し、自動的に更新してくれるマネージドサービスです。
sequenceDiagram
participant U as "利用者"
participant CF as "CloudFront / ALB"
participant ACM as "ACM"
participant BE as "バックエンド(EC2など)"
ACM->>CF: "証明書を発行・自動更新"
U->>CF: "HTTPSリクエスト(TLSで暗号化)"
CF->>BE: "バックエンドへ転送"
ACMの証明書は、ELB(ALB/NLB)や CloudFront にアタッチしてTLSを終端(Terminate) する使い方が基本です。証明書はこれらのマネージドサービス側に置かれ、ロードバランサーやCDNがHTTPSの復号・暗号化処理を肩代わりしてくれるため、バックエンドのEC2側で証明書を管理する必要がなくなります。
| 終端場所 | 用途 |
|---|---|
| CloudFront | グローバル配信の入口でTLS終端(オリジンとの通信は別途設定) |
| ALB/NLB | リージョン内のロードバランサーでTLS終端 |
| EC2上(自己管理) | 証明書の更新を自分で運用する必要があり、通常は推奨されない |
読んでみよう
「証明書の管理・更新の手間を減らしたい」という要件が出たら、まず答えはACMです。「どこでTLSを終端させるか」を問う問題では、グローバル配信ならCloudFront、リージョン内の負荷分散ならALB、と使い分けを覚えておきましょう。