背景
重要なデータのバックアップのためにクロスリージョンレプリケーションを使用していても、その転送プロトコルに欠陥があれば問題である。こういった背景からレプリケートする際のデータ転送に使用されるSSL/TLSバージョンを知りたかった。以下の書き方ではSSLなのかTLSなのか、また、詳しいバージョンについてもわからない。
Q: レプリケーションプロセス全体で、オブジェクトは安全に転送され、暗号化されますか?
はい。オブジェクトはレプリケーションプロセスの間ずっと暗号化されたままとなります。暗号化されたオブジェクトは、SSL 経由で送信元リージョンから送信先リージョンまで (CRR) または同じリージョン内で (SRR) 安全に転送されます。
以下はIPAの資料だが、バージョンによって推奨・非推奨が分かれている。
SSL/TLS 暗号設定ガイドライン改定及び鍵管理ガイドライン作成のための調査・検討 -調査報告書-
AWSもドキュメントに記載している通り、TLS1.2 以降を推奨している。単にHTTPSだからといって安心できない。
検証方法
クロスアカウントによるレプリケーションの際、バケットポリシーでs3:ReplicateObject
の条件キーとして、s3:TlsVersion
を指定する。これを0.1ずつ増減させる。
"Action": [
"s3:ReplicateObject",
"s3:ReplicateDelete"
],
"Resource": "arn:aws:s3:::cross-account-bucket/*",
"Condition": {
"NumericGreaterThan": {
"s3:TlsVersion": 1.1
}
}
クロスアカウントなので明示的にAction
を許可する必要がある。つまり、上記ポリシーでレプリケートできるならば、TLSのバージョンは少なくとも1.2であることがいえる。
検証の結果、東京-東京、東京-バージニアはいずれもTLS1.2であることがわかった。
参考記事