問題
- AWS S3の署名バージョン2が廃止予定ですが、Liferay DXPに影響はありますか
環境
- Liferay Portal 6.2, Liferay DXP 7.0, Liferay DXP 7.1
解決策
- LiferayDXPをご利用中であれば署名バージョン4に対応しているため、基本的にLiferay側の対応は不要です。
LiferayではAWS S3へ接続するためにAWS SDKを使用しています。
AWSの公式サイトによると、推奨バージョンは1.11.xとなっております。
Liferayが使用しているSDKのバージョンはFixPackによって異なっており、FixPack41以上を適用することでAWSの推奨バージョンとなります。
エンジニア側のテストでは、署名バージョン4のみをサポートする地域のバケットに対して、FixPack41とそれより古いバージョンのFixPackを使ったテストが実施されました。
どちらの場合でも、特に問題なく通信ができることを確認しております。
現在、署名バージョン2と4の両方が使えるバケットへ接続中の場合、通信で使用される署名バージョンが混在している場合があります。
これは、AWSの地域ごとに優先される署名バージョンが異なるためで、Liferay側の設定には依存しません。(AWS SDKが常に最適な署名バージョンを選択します)
署名バージョン2が廃止された場合でも問題は発生しないと思われますが、可能であればFixPack41以上へのアップグレードをお勧めします。
何らかの要件によってFixPackのアップグレードが難しい場合は、使用する署名バージョンを4に固定することも可能です。
こちらのAWS公式ページをご確認の上、Javaの起動オプションを調整できます。
追加情報
- https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/dev/UsingAWSSDK.html?shortFooter=true#UsingAWSSDK-move-to-Sig4
- https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/dev/UsingAWSSDK.html#UsingAWSSDK-sig2-deprecation
- https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region
- https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version