2020年9月30日以前に作成済みの S3 バケットはパス形式廃止対象から除外されました
先日、2020年9月30日以降に S3 パス形式での API リクエストが受け付けられなくなる記事を投稿しました。
その後、AWS 公式ブログにて、2020年9月30日以前に作成されている S3 バケットについては、パス形式廃止除外とする方針に変更したことが発表されましたので、あらためてシェアいたします。(前回のエントリーにも追記させていただきました)
パス形式の廃止対象
Original Plan – Support for the path-style model ends on September 30, 2020. Revised Plan – Support for the path-style model continues for buckets created on or before September 30, 2020. Buckets created after that date must be referenced using the virtual-hosted model.
バケットの作成日 | 2020年9月30日以降のパス形式利用 |
---|---|
〜2020年9月30日 | 継続利用が可能 |
2020年10月1日〜 | パス形式の利用不可 |
create on or before September 30
と記載されていますので、2020年9月30日は含まれるようです。(ただし、日本時間ではなく UTC であると思われます)
パス形式では利用できない機能
パス形式での利用は継続できますが、今後の追加機能などは仮想ホスト形式を基本として検討されているようですので、必要に応じて仮想ホスト形式への移行は検討されるのが良さそうですね。
In With the New As just one example of what becomes possible when using virtual-hosted references, we are thinking about providing you with increased control over the security configuration (including ciphers and cipher versions) for each bucket. If you have ideas of your own, feel free to get in touch.
今後の計画
同ブログにて、今後の計画についてもいくつか紹介されていました。
パス形式利用の識別
- S3 アクセスログの
Host Header
を確認 - CloudTrail Data Event の
requestParameters
エントリー内のhost
要素を確認
プログラムによるアクセス
- 最新の SDK を使用している場合、"." が含まれる S3 バケットを除き、仮想ホスト形式で参照している
ドット(ピリオド)付きのバケット名
- "." 付きのバケット名の場合、仮想ホスト形式では TLS および SSL 証明書でいくつかの問題がある。
- 前回エントリーで記載している、SSL ワイルドカード証明書(*.s3.amazonaws.com)に一致しないため https 利用出来ないことかと思います。
- 仮想ホスト形式でもサポートするための計画があり取り組んでいる。2020年9月30日より前に詳細をシェアする予定
ルーティング不可能な名前
- 大文字を含むバケット名などは、仮想ホスト形式では利用できないので、先日 GA された S3 Batch Operations を使用して、データ移動する
ドキュメント
- 仮想ホスト形式を使用してアプリケーション構築を奨励するために、S3 ドキュメントを更新する予定
さいごに
前回のエントリーについて多くの方にシェアいただきました。今回の発表によって、既存バケットを含めて当面作成されるバケットについては、パス形式廃止対象から除外となりましたので、急ぎ対応いただく必要性はかなり下がったかと思います。
とはいえ、今後の機能アップデートについては仮想ホスト形式に依存する可能性が高く、基本的には仮想ホスト形式が推奨であることは変わりないかと思いますので、必要に応じて仮想ホスト形式への移行を検討ください。
また、S3 アクセスログ、Cloud Trail を使ったパス形式の検出方法、S3 Batch Operations でのデータ移行方法なども記事化していきたいと思います。
以上!大阪オフィスの丸毛(@marumo1981)でした!