本文へスキップ
BecomeCoder

AWS SAA(ソリューションアーキテクト)コース · 第3章 セキュアなアーキテクチャ設計 · レッスン14

転送時の暗号化とACM

導入

データは保存されている間だけでなく、ネットワークを流れている間にも盗聴のリスクがあります。「転送中のデータ」を守るのが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、と使い分けを覚えておきましょう。