AWS Certificate ManagerでTLS証明書を扱う
転送中のデータを暗号化する証明書を発行して関連付けます。
「AWS Certificate ManagerでTLS証明書を扱う」はCoddyKit上の無料AWS Security Academyレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAWS Security Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 AWS Security Academyコースには全4レッスンが含まれています。
転送中の暗号化
転送中の暗号化は、HTTPS の基盤となるプロトコルである TLS(Transport Layer Security)を使用して、ネットワーク間を移動するデータを保護します。
これがないと、通信経路上の攻撃者がトラフィックを読み取ったり改ざんしたりする可能性があります。TLS には証明書が必要であり、その管理を担うのが ACM です。
ACM が提供する機能
AWS Certificate Manager (ACM) は、AWS サービス用の TLS 証明書を発行、管理し、更新します。
- ACM のパブリック証明書は無料です。
- ACM が更新を自動的に処理するため、証明書の有効期限切れのリスクをなくせます。
ドメイン検証
パブリック証明書を発行するには、ACM がドメインを管理していることを確認する必要があります。
- DNS validation では CNAME レコードを追加します(推奨。自動更新が可能になります)。
- Email validation ではドメインの連絡先に確認メールを送信します。
手動対応なしで更新するには、DNS validation が推奨されます。
ACM 証明書を関連付ける場所
ACM は、TLS を終端する次のような AWS サービスと統合されます。
- Application and Network Load Balancers。
- CloudFront ディストリビューション。
- API Gateway。
証明書をリスナーに関連付けると、TLS ハンドシェイクはサービスが処理します。
秘密鍵は保護されたまま
統合サービスで使用する ACM 発行の証明書では、秘密鍵は ACM が管理し、外部に公開されることはありません。
秘密鍵をダウンロードすることはできませんが、これはセキュリティ上の利点です。漏えいする鍵ファイルが存在しないためです。証明書は、サポート対象のサービスでそのまま機能します。
自動更新
ACM は、検証状態(DNS レコードが存在すること)が維持されている限り、有効期限が切れる前に管理対象の証明書を自動的に更新します。
これにより、証明書の更新忘れによる停止という、典型的な運用上の障害を防げます。Email で検証した証明書では、手動対応が必要になる場合があります。
ACM Private CA
AWS Private CA(Certificate Authority)は、内部利用向けのプライベート証明書を発行します。
サービス間の mTLS、内部 API、パブリック CA ではなく独自の CA を信頼させるデバイスなどに使用します。内部 PKI のニーズに対応する有料サービスです。
証明書のインポート
統合サービスで使用するために、サードパーティの証明書を ACM にインポートできます。
ただし、インポートした証明書は自動更新されません。有効期限が切れる前に再インポートする必要があります。可能であれば、更新を自動化できる ACM 発行の証明書が推奨されます。
リージョンとサービスに関する注意点
ACM には、覚えておくべきリージョン固有の注意点があります。
- CloudFront 用の証明書は us-east-1 でリクエストする必要があります。
- リージョンリソース(ALB)用の証明書は、そのリソースのリージョンに存在します。
このリージョンに関するルールは、試験でよく問われるポイントです。
TLS ポリシーの選択
ロードバランサーまたは CloudFront に証明書を関連付ける際は、許可する TLS バージョンと暗号スイートを定義するセキュリティポリシーも選択します。
最新のポリシーではTLS 1.2 以上が要求され、脆弱な暗号スイートは除外されます。強力なポリシーを選択することで、有効な証明書があっても、クライアントが古く脆弱な暗号化方式を選択するのを防げます。
TLS の適用
証明書を提供するだけでなく、トラフィックが TLS を使用するように適用します。
- ロードバランサーと CloudFront で HTTP を HTTPS にリダイレクトします。
- バケットポリシー(aws:SecureTransport)を使用して、TLS 以外の S3 アクセスを拒否します。
証明書を発行するだけでは不十分です。使用を必須にする必要があります。
確認問題
ACM に関するポイントを思い出してください。
まとめ
ACM と TLS について学びました。
- ACM は無料のパブリック TLS 証明書を発行し、自動更新します。
- 証明書を ALB、CloudFront、API Gateway に関連付けます。秘密鍵は保護されたままです。
- CloudFront の証明書は us-east-1 に置く必要があり、TLS の使用も別途適用する必要があります。
よくある質問
「AWS Certificate ManagerでTLS証明書を扱う」レッスンは無料ですか?
はい。「AWS Certificate ManagerでTLS証明書を扱う」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、AWS Security Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 AWS Security Academyコースには全4レッスンが含まれています。
「AWS Certificate ManagerでTLS証明書を扱う」で何を学びますか?
転送中のデータを暗号化する証明書を発行して関連付けます。 ブラウザで直接実行するハンズオンコードでAWS Security Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
AWS Security Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのAWS Security Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。
「AWS Certificate ManagerでTLS証明書を扱う」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このAWS Security Academyレッスンでコードを書いて実行できますか?
はい。すべてのAWS Security Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- S3、EBS、RDSの保存時暗号化
- すべての環境でデフォルト暗号化を強制する
- AWS Certificate ManagerでTLS証明書を扱う
- Secrets Managerで認証情報を保存する