Amazon Web Services ブログ

お知らせ: Amazon S3 のセキュリティに関する変更が 2023 年 4 月に予定されています

2023 年 4 月より、バケットセキュリティに関する最新のベストプラクティスを自動的に適用するために、Amazon Simple Storage Service (Amazon S3) に 2 つの変更を加えます。この変更は 4 月に有効になり、数週間以内にすべての AWS リージョンに展開される予定です。

ターゲットリージョンで変更が有効になると、そのリージョンで新しく作成されたすべてのバケットでは、デフォルトで S3 Block Public Access が有効になり、アクセスコントロールリスト (ACL) が無効になります。これらのオプションはどちらも既にコンソールのデフォルトであり、ベストプラクティスとして長い間推奨されてきました。これらのオプションは、S3 APIS3 CLIAWS SDK、または AWS CloudFormation テンプレートを使用して作成されたバケットのデフォルトになります。

少し歴史を振り返ると、S3 のバケットとオブジェクトはデフォルトで常にプライベートとなっていました。お客様がさらに強力に制御できるよう、2018 年には Block Public Access を追加し、2021 年には ACL を無効にする機能を追加しました。また、長期にわたって、より柔軟な最新の代替手段として、AWS Identity and Access Management (IAM) ポリシーの使用を推奨してきました。

この変更の観点からは、パブリックバケットや ACL に依存する新しいバケットの作成には、慎重で思慮深いアプローチが推奨されます。また、当社は、ほとんどのアプリケーションではいずれも必要ないと考えています。お客様のアプリケーションがパブリックバケットや ACL を必要とする場合には、以下で説明する変更を加える必要があります (コード、スクリプト、AWS CloudFormation テンプレート、および他のオートメーションを必ず確認してください)。

変更点
現在取り組んでいる変更点を詳しく見てみましょう。

S3 Block Public Accessこの記事で説明されている 4 つのバケットレベルの設定すべてが、新しく作成されるバケットで有効になります。

その後、パブリックアクセスを許可するバケットポリシーまたはアクセスポイントポリシーを設定しようとすると、「403 Access Denied」(403 アクセス拒否) エラーで拒否されます。新しいバケットでパブリックアクセスが必要な場合は、通常どおり作成してから、DeletePublicAccessBlock を呼び出してパブリックアクセスブロックを削除できます (この関数を呼び出すには、s3:PutBucketPublicAccessBlock 許可が必要です。関数と許可の詳細については、「Block Public Access」を参照してください)。

ACL が無効[Bucket owner enforced] (バケット所有者の強制) 設定は、新しく作成されたバケットで有効になるため、バケット ACL とオブジェクト ACL は無効になり、誰がオブジェクトをアップロードしたかにかかわらず、バケット所有者がオブジェクト所有者となります。バケットで ACL を有効にしたい場合は、CreateBucket リクエストで ObjectOwnership パラメータを ObjectWriter に設定するか、バケットを作成した後に DeleteBucketOwnershipControls を呼び出すことができます。パラメータを使用したり、関数を呼び出したりするには、s3:PutBucketOwnershipControls 許可が必要です。詳細については、「オブジェクトの所有権の制御」と「バケットの作成」を参照してください。

ご期待ください
この変更のデプロイを開始する際に「What’s New」(最新情報) の最初の記事を公開し、デプロイがすべての AWS リージョンに到達したときに別の記事を公開します。独自のテストを実行して、動作の変化を検出することもできます。

Jeff;

原文はこちらです。