[アップデート]Amazon S3の新規バケットのブロックパブリックアクセスが有効化およびACLが無効化されました。

2023.04.17

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

こんにちは、コンサルティング部の南です。

皆さんこちらの公式のアナウンスを覚えていますか?

新規にバケットを作成する場合に、デフォルトでS3パブリックアクセスブロックが有効化、アクセスコントロールリストが無効化されるようになるというアップデートについてです。
AWSのアップデートでは珍しく、12月に事前アナウンスがありました。

こちらに関してdevelopers ioでも取り上げています。

このブログを執筆している2023年4月17日現在、どのようになっているか確認してみます。

2023年4月17日現在の対応まとめ

マネジメントコンソール

全リージョンにてデフォルトで対応済み

AWS CLI(API)

リージョン 対応可否
米国東部 (バージニア北部) us-east-1 未対応
米国東部 (オハイオ) us-east-2 対応済み
米国西部 (北カリフォルニア) us-west-1 未対応
米国西部 (オレゴン) us-west-2 未対応
カナダ (中部) ca-central-1 未対応
欧州 (ストックホルム) eu-north-1 未対応
欧州 (アイルランド) eu-west-1 未対応
欧州 (ロンドン) eu-west-2 未対応
欧州 (パリ) eu-west-3 未対応
欧州 (フランクフルト) eu-central-1 未対応
南米 (サンパウロ) sa-east-1 未対応
アジアパシフィック (東京) ap-northeast-1 未対応
アジアパシフィック (ソウル) ap-northeast-2 未対応
アジアパシフィック (大阪) ap-northeast-3 未対応
アジアパシフィック (ムンバイ) ap-south-1 未対応
アジアパシフィック (シンガポール) ap-southeast-1 未対応
アジアパシフィック (シドニー) ap-southeast-2 未対応

対応状況を確認してみる

まずは公式でのアナウンスを確認してみます。

Q: 2023 年 4 月に、新しく作成されたすべてのバケットに対して新しいデフォルト設定が有効になりますか?
A: はい。2023 年の 4 月中に、AWS GovCloud (米国) リージョンと AWS 中国リージョンを含むすべての AWS リージョンで、新しいデフォルト設定が徐々に展開されます。

Q: このロールアウトがすべての AWS リージョンをカバーするまでに、どれくらいの時間がかかりますか?
A: このアップデートの展開には数週間かかります。このアップデートの展開を開始したら、What's New の投稿を公開します。

Q: 更新が完了したことはどうすればわかりますか?
A: ロールアウトの完了は、新機能の投稿でお知らせします。更新が完了すると、すべての新しい S3 バケットで自動的にパブリック アクセスのブロックが有効になり、デフォルトで ACL が無効になります。これらの設定は、S3 バケットの作成後に調整できます。

Q: Amazon S3 は既存のバケット設定を更新しますか?
A: いいえ。既存のバケットの構成に変更はありません。AWS リージョンの更新が完了すると、新しいデフォルト設定が新しい S3 バケットにのみ適用されます。

Q: 更新が完了する前に、新しいバケットのパブリック アクセスのブロックを有効にしたり、ACL を無効にしたりできますか?
A: はい。この更新が AWS リージョンで完了する前に、S3 バケットを作成した後、Block Public Access を有効にするか、ACL を無効にすることができます。これらの設定の詳細については、Amazon S3 ストレージへのパブリック アクセスのブロックおよびオブジェクトの所有権の制御とバケットの ACL の無効化を参照してください。

Q: このアップデートの準備はどうすればよいですか?
A: S3 のユースケースの大部分では、パブリック アクセスや ACL は必要ありません。ほとんどの場合、アクションは必要ありません。パブリック バケット アクセスまたは ACL の使用が必要なユース ケースがある場合は、S3 バケットを作成した後で、Block Public Access を無効にするか、ACL を有効にすることができます。このような場合、これらの設定を構成するには、自動化スクリプト、AWS CloudFormation テンプレート、またはその他のインフラストラクチャ構成ツールを更新する必要がある場合があります。詳細については、Amazon S3 ストレージへのパブリック アクセスのブロックおよびオブジェクトの所有権の制御とバケットの ACL の無効化を参照してください。また、AWS::S3::Bucket PublicAccessBlockConfigurationおよび AWS::S3::Bucket OwnershipControlsも参照してください。AWS CloudFormation ユーザーガイドで。

Q: この変更の結果、Amazon S3 の料金に変更はありますか?
A: いいえ。通常どおり、ストレージ、リクエスト、およびその他の Amazon S3 機能に対して請求されます。料金については、Amazon S3 の料金を参照してください。

マネジメントコンソール

マネジメントコンソールの方は以下画像のようにデフォルトでブロックパブリックアクセスが有効化、ACLが無効化されています。

マネジメントコンソールに関してはかなり前からデフォルトでこのような状態であったと思います。

AWS CLI(API)

今回のアップデートでは、APIでバケット作成する場合に、デフォルトでブロックパブリックアクセスが有効化、ACLが無効化されるというものです。

実施に、CloudFormationなどIaCでS3バケットを構築した際に、ブロックパブリックアクセスの有効化、ACLの無効化を忘れた方もいるんじゃないでしょうか?

それではスクリプトで利用可能な全リージョンでS3バケットを作成してみます。

#!/bin/bash

# プレフィックスを設定(バケット名の先頭に追加されます)
bucket_prefix="test"

# 現在のタイムスタンプを取得
timestamp=$(date +%Y%m%d-%H%M%S)

# 利用可能な全リージョンを取得
regions=$(aws ec2 describe-regions --query 'Regions[].RegionName' --output text)

# 各リージョンでS3バケットを作成
for region in $regions; do
    # バケット名を生成
    bucket_name="${bucket_prefix}-${region}-${timestamp}"

    # バケットを作成
    aws s3api create-bucket --bucket "${bucket_name}" --region "${region}" --create-bucket-configuration LocationConstraint="${region}"

    # 結果を表示
    if [ $? -eq 0 ]; then
        echo "S3バケットが正常に作成されました: ${bucket_name} in ${region}"
    else
        echo "S3バケットの作成に失敗しました: ${bucket_name} in ${region}"
    fi
done

結果としてはこちらとなります。 2023年4月17日現在ではus-east-2のみ対応してます。
アップデートの展開には数週間かかるとのことなので、もう少しかかるのかもしれませんね。

リージョン 対応可否
米国東部 (バージニア北部) us-east-1 未対応
米国東部 (オハイオ) us-east-2 対応済み
米国西部 (北カリフォルニア) us-west-1 未対応
米国西部 (オレゴン) us-west-2 未対応
カナダ (中部) ca-central-1 未対応
欧州 (ストックホルム) eu-north-1 未対応
欧州 (アイルランド) eu-west-1 未対応
欧州 (ロンドン) eu-west-2 未対応
欧州 (パリ) eu-west-3 未対応
欧州 (フランクフルト) eu-central-1 未対応
南米 (サンパウロ) sa-east-1 未対応
アジアパシフィック (東京) ap-northeast-1 未対応
アジアパシフィック (ソウル) ap-northeast-2 未対応
アジアパシフィック (大阪) ap-northeast-3 未対応
アジアパシフィック (ムンバイ) ap-south-1 未対応
アジアパシフィック (シンガポール) ap-southeast-1 未対応
アジアパシフィック (シドニー) ap-southeast-2 未対応

最後に

2023年4月17日現在ではus-east-2のみ対応していました。
公式のアナウンスでは、「4月中に、AWS GovCloud (米国) リージョンと AWS 中国リージョンを含むすべての AWS リージョンで、新しいデフォルト設定が徐々に展開されます。」とのことなので、もう少しかかるようですね。

今回のアップデートやS3のデフォルト暗号化などS3に関するセキュリティに関するアップデートが続々リリースされ、AWSを安全に使いやすくなっています。
今後もセキュリティについて感度を高くして、より安全にAWSを使っていきましょう!