Amplify Console にホスティングした環境で TLS 1.0/1.1 が無効化されているか確認してみた
こんにちは、アノテーション テクニカルサポートチームの中野です。
Amplify Console でホスティングした環境は、デフォルトで暗号化されます。
Amplify Hosting provides encryption for data in-transit by default.
一方、各企業のポリシーによっては、特別な理由がない限り TLS1.0/1.1 の利用は禁止や非推奨としているところもあるかと考えられます。
そのため、Amplify Console が TLS1.0 や TLS1.1 を適用しているか確認してみました。
SSL/TLS の動向
IPA の「TLS 暗号設定ガイドライン」にも記載の通り、TLS 1.0/1.1 の利用を非推奨としており、以下のブログでも紹介されている通り、各ブラウザで無効化が行われています。
主要ブラウザの開発元が2020年前半にかけてTLS 1.0/1.1を無効化すると発表がありました。無効化が行われるとTLS 1.0/1.1を利用しているサイトで警告の表示や、表示できない問題が発生しますので事前に準備が必要です。
まず、結論
- Amplify Console では、TLS バージョンの無効化や指定はできない
- Amplify Console のセキュリティポリシーは、すべてのアプリケーションで TLSv1.2_2019 が適用済み
- TLSv1.2_2019 の最小 TLS バージョンは、TLS1.2
確認したこと
確認したことを以下に記載します。
GitHub Issue の報告
2022/3 現在、GitHub Issue の報告だと、Amplify Console で作成されたアプリは、TLSv1.2_2019 が全アプリに適用済みとのことでした。
All existing apps in all regions have been updated to use the TLSv1.2_2019 policy. New apps will use that policy as well.
TLSv1.2_2019 のドキュメント
以下のブログにも記載の通り、Amplify Console でホスティングした環境は、自動で CloudFront をセットアップしてくれます。
一方、こちらの CloudFront は我々から確認することはできないので、CloudFront の SSL/TLS のセキュリティポリシーを手動で設定することもできません。
Amplify Console の静的サイトのホスティングは、コンテンツ配信に CDN である CloudFront を自動でセットアップしてくれます。だがしかし、ここで作られる CloudFront のリソースはユーザには見えないのです。
しかしながら、前述の通り、Amplify Console では TLSv1.2_2019 のセキュリティポリシーが全アプリで適用されているため、最低のセキュリティーポリシーである TLSv1.2 以上が適用されています。
ツールで確認してみた
Amplify Console で Web サイトをホスティングして確認してみました。
sslscan を利用して、Amplify Console の SSL/TLS のバージョンをチェックしてみます。
インストール方法などは以下のブログを参照ください。
以下の実行結果の通り、TLS1.0/1.1 は無効化されています。 一方で、TLS1.2/1.3 が有効化されていることが確認できました。
$ sslscan https://dev.********.amplifyapp.com/ Version: 2.0.12-static OpenSSL 1.1.1n 15 Mar 2022 Connected to xx.xx.xx.xx Testing SSL server dev.********.amplifyapp.com on port 443 using SNI name dev.********.amplifyapp.com SSL/TLS Protocols: SSLv2 disabled SSLv3 disabled TLSv1.0 disabled TLSv1.1 disabled TLSv1.2 enabled TLSv1.3 enabled TLS Fallback SCSV: Server supports TLS Fallback SCSV TLS renegotiation: Session renegotiation not supported TLS Compression: OpenSSL version does not support compression Rebuild with zlib1g-dev package for zlib support Heartbleed: TLSv1.3 not vulnerable to heartbleed TLSv1.2 not vulnerable to heartbleed Supported Server Cipher(s): Preferred TLSv1.3 128 bits TLS_AES_128_GCM_SHA256 Curve 25519 DHE 253 Accepted TLSv1.3 256 bits TLS_AES_256_GCM_SHA384 Curve 25519 DHE 253 Accepted TLSv1.3 256 bits TLS_CHACHA20_POLY1305_SHA256 Curve 25519 DHE 253 Preferred TLSv1.2 128 bits ECDHE-RSA-AES128-GCM-SHA256 Curve 25519 DHE 253 Accepted TLSv1.2 256 bits ECDHE-RSA-AES256-GCM-SHA384 Curve 25519 DHE 253 Accepted TLSv1.2 256 bits ECDHE-RSA-CHACHA20-POLY1305 Curve 25519 DHE 253 Server Key Exchange Group(s): TLSv1.3 128 bits secp256r1 (NIST P-256) TLSv1.3 192 bits secp384r1 (NIST P-384) TLSv1.3 128 bits x25519 TLSv1.2 128 bits secp256r1 (NIST P-256) TLSv1.2 192 bits secp384r1 (NIST P-384) TLSv1.2 128 bits x25519 SSL Certificate: Signature Algorithm: sha256WithRSAEncryption RSA Key Strength: 2048 Subject: *.xxxxxxxxxx.amplifyapp.com Altnames: DNS:*.xxxxxxxxxx.amplifyapp.com, DNS:xxxxxxxxxx.amplifyapp.com Issuer: Amazon Not valid before: Mar 24 00:00:00 2022 GMT Not valid after: Apr 23 23:59:59 2023 GMT
最後に
Amplify Console はフルマネージド型の Web ホスティングしてくれる便利なサービスですが、セキュリティ面で問題がないか心配になるかと思います。そういった場合は、公式のドキュメントや GitHub Issue など確認してみると情報が見つかるかもしれません。
アノテーション株式会社について
アノテーション株式会社は、クラスメソッド社のグループ企業として「オペレーション・エクセレンス」を担える企業を目指してチャレンジを続けています。「らしく働く、らしく生きる」のスローガンを掲げ、様々な背景をもつ多様なメンバーが自由度の高い働き方を通してお客様へサービスを提供し続けてきました。現在当社では一緒に会社を盛り上げていただけるメンバーを募集中です。少しでもご興味あれば、アノテーション株式会社 WEB サイトをご覧ください。