2023年4月からAmazon S3の新規バケットのブロックパブリックアクセスが有効化およびACLが無効化されます

2023年4月より、新規S3バケットのブロックパブリックアクセス(BPA)がデフォルトで有効化され、アクセスコントロールリスト(ACL)が無効化されます。
2022.12.14

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは。サービス部の武田です。

タイトルのとおりですが、2023年4月より、新規S3バケットのブロックパブリックアクセス(BPA)がデフォルトで有効化され、アクセスコントロールリスト(ACL)が無効化されます。

ブロックパブリックアクセスとは

BPAはS3バケットが誤って公開設定され、機密データなどが公開されてしまうのを防ぐための機能です。

アカウントレベルとバケットレベルがあり、アカウントレベルで設定すると既存のS3バケットも含めすべてに適用されるため非常に強力です。ただし意図した公開設定のS3バケットも防がれてしまうため、運用開始しているアカウントに設定する場合には注意が必要です。バケットレベルは、S3バケットごとにBPAを設定します。

これまでマネジメントコンソールからS3バケットを作成する際には、デフォルトでチェックが入っていたため、意識しなくてもBPAを有効化していたでしょう。しかしAWS CLIやBoto3などのSDKで作成する場合は、明示的に有効化する必要がありました。今回のアナウンスはこの差異をなくし、S3バケット作成方法に関係なくデフォルトでBPAが有効化されるものとなります。

反対に、無効化したい場合は明示的に無効化する必要があります。

アクセスコントロールリストとは

ACLはS3バケットのアクセス制御をする機能です。ただし現在はレガシーな機能となっており無効化が推奨され、代わりにバケットポリシーの使用が推奨されています。

S3バケットのアクセス制御は歴史的な経緯があり複雑になっています。ACLを使わなければいけないケースというのは非常にレアで、基本的に有効化する必要はありません。こちらもマネジメントコンソールから作成する場合はデフォルト無効化となっています。AWS CLIなどから作成する場合は、明示的に無効化する必要がありました。今回のアナウンスで作成方法による差異がなくなり、(ないと思いますが)有効化したい場合は明示的に有効化する必要があります。

まとめ

S3は古参なサービスですが今でも多くのアップデートがあります。今回のアナウンスはセキュリティ面のデフォルト設定を変更し、S3バケットをより安全にします。セキュリティ事故は「うっかり」で起きることが多い反面、インパクトが大きいです。より安全にAWSを使っていきましょう!