NeoFS S3 Gateway v0.45.1がSDK RC21による読み書きパフォーマンスを最適化
重要ポイント
- •NeoFS S3 Gateway v0.45.1は、PUT操作中の少なくとも1つの中間データコピーを削除する書き込みパスの最適化を導入し、メモリ割り当てとCPUオーバーヘッドを低減します。
- •Ranged GETリクエストは個別のラウンドトリップの代わりに単一のネットワーク呼び出しでオブジェクトヘッダーとペイロードデータの両方を取得するようになり、ストリーミングメディアや部分ダウンロードのワークフローにメリットをもたらします。
- •拡張アクセス制御リスト(EACL)はコンテナ作成と同時に適用され、フォローアップリクエストを排除し、新規コンテナが指定されたアクセスポリシーなしで存在する可能性のあるウィンドウを閉じます。
- •メタデータの修正によりGetObjectレスポンスから内部NeoFSシステム属性がフィルタリングされ、ユーザー定義メタデータのみが返されることが保証され、マルチテナントデプロイメントにおける情報漏洩のリスクが軽減されます。
- •パッチにはgRPC依存関係のv1.82.1へのアップデートが含まれており、HTTP/2フレームフラッドサービス拒否攻撃を緩和し、xDSパーミッションマッチングの認可バイパスの脆弱性を解決します。

Neo SPCCは8月4日にNeoFS S3 Gateway v0.45.1をリリースしました。このパッチアップデートは、NeoFS分散型ストレージネットワークのS3互換インターフェースに対して3つのパフォーマンス最適化とメタデータの修正を導入します。Amazon S3 APIは集中型・分散型を問わずオブジェクトストレージのデファクトスタンダードとなっているため、S3ゲートウェイのスループットと正確性の向上は、開発者が馴染みのあるツールを使用してNeoFS上にアプリケーションを移行または構築する容易さに直接的な影響を与えます。
これらのパフォーマンス強化のうち2つは、数日前にNeoFS Node v0.55.0と共にリリースされたNeoFS SDK Go RC21によって支えられています。
7月のメジャーリリースであるS3 Gateway v0.45.0(ネームスペース設定、簡略化されたEACLルール、レガシーアクセスボックスサポートの削除をもたらした)を基盤とするこの新しいパッチは、既存のv0.45.0ユーザーに対して移行を必要としません。
書き込みバッファリングとRanged GETの最適化
最初の最適化は、SDK RC21で導入された機能であるオブジェクトペイロードライターにio.ReaderFromインターフェースを実装します。PUT操作中の少なくとも1つの中間データコピーを削除することで、このアップデートは書き込みパスにおけるメモリ割り当てとCPUオーバーヘッドを低減します(#1320)。
2番目の最適化はranged GETリクエストを改善します。以前は、これらのリクエストは指定範囲のデータを取得する前に、オブジェクトヘッダーをフェッチするための個別のラウンドトリップを必要としていました。SDK RC21のHTTP類似のバイト範囲パラメータを活用することで、ゲートウェイは単一のネットワーク呼び出しでヘッダーと範囲指定ペイロードの両方を取得できるようになりました(#1319)。この強化は、S3範囲読み取りに依存するストリーミングメディア、部分ダウンロード、マルチパートアップロードのワークフローに大きなメリットをもたらします。
コンテナ作成時の拡張アクセス制御リスト適用
拡張アクセス制御リスト(EACL)は、コンテナ作成と同じネットワーク呼び出しで同時に適用されるようになり、フォローアップリクエストの必要性が排除されました(#1304)。この調整により、S3バケット作成時のレイテンシが削減され、新しく作成されたコンテナが指定されたアクセスポリシーなしで存在する可能性のある短い脆弱性ウィンドウが閉じられます。
システム属性の修正
重要な正確性修正により、GetObjectメタデータレスポンスから内部NeoFSシステム属性がフィルタリングされます(#1321)。以前のバージョンでは、これらのプロトコルレベルの属性がS3レスポンス内のユーザー定義メタデータと共に含まれており、内部実装の詳細がクライアントに意図せず露出していました。この修正により、ユーザー定義メタデータのみが返されることが保証され、期待されるS3 API動作に準拠し、マルチテナントデプロイメントにおける情報漏洩のリスクが軽減されます。
依存関係のアップデート
SDK RC21のアップグレードに加えて、v0.45.1は以下を含むさまざまなセキュリティおよびメンテナンスアップデートを組み込んでいます:
golang.org/x/cryptov0.52.0golang.org/x/netv0.55.0google.golang.org/grpcv1.82.1
gRPCのアップデートは特に、HTTP/2フレームフラッドサービス拒否攻撃に対する緩和策と、xDSパーミッションマッチングで発見された認可バイパスシナリオの解決を含んでいます。これらのクラスのHTTP/2脆弱性は、より広範なインフラストラクチャエコシステム全体で実際に悪用されており、信頼されていないクライアントにさらされるストレージゲートウェイにとって、タイムリーな依存関係のアップデートがベースラインのセキュリティプラクティスとなっています。
完全なリリースノートは以下で確認できます:https://github.com/nspcc-dev/neofs-s3-gw/releases/tag/v0.45.1