[アップデート]AMIのブロックパブリックアクセスがデフォルトで有効化されるようになりました

2023.10.23

はじめに

10/20のアップデートでAMIのブロックパブリックアクセスが、全リージョンデフォルトで有効化されるようになりました。

AMIのパブリック共有を防止したい場合、ブロックパブリックアクセスを有効にすることでパブリックへの公開を禁止できます。今回のアップデートにより、デフォルトでこの機能が有効化されるようになりました。

既存アカウントについては、パブリックなAMIがない場合は有効化されることが事前に告知されていました。

AWSドキュメントを確認したところ、「デフォルト」の設定は以下のように新規・既存アカウントとパブリックAMIを持つかどうかで分かれるようです。

AWSアカウント AMI のパブリック アクセスをブロックするデフォルト設定
新しいアカウント 有効
パブリック AMI を持たない既存のアカウント ¹ 有効 
1 つ以上のパブリック AMI を持つ既存のアカウント 無効

¹ 2023 年 7 月 15 日以降、アカウントに 1 つ以上のパブリック AMI があった場合、 その後すべての AMI をプライベートにしたとしても、アカウントの AMI へのパブリック アクセスのブロックはデフォルトで無効になります。

パブリックAMIを持つ既存アカウントがなかったので、今回はパブリックAMIを持たない既存のアカウントと、新規アカウント発行時の設定を確認してみます。

パブリックAMIを持たない既存のアカウント

上述したブログで紹介されていた全リージョンのステータスを表示するコマンドを実行してみます。

aws ec2 describe-regions --query "Regions[].[RegionName]" --output text \
| while read region; do
  echo "##### AMI Public Access Block in ${region}"
  aws --region ${region} ec2 get-image-block-public-access-state --output text
done

結果はblock-new-sharingが出力され、全リージョンで有効化されていることが確認できました。元々は有効化していなかったので、アップデートによって有効化されたと考えられます。

##### AMI Public Access Block in ap-south-1
block-new-sharing
##### AMI Public Access Block in eu-north-1
block-new-sharing
##### AMI Public Access Block in eu-west-3
block-new-sharing
##### AMI Public Access Block in eu-west-2
block-new-sharing
##### AMI Public Access Block in eu-west-1
block-new-sharing
##### AMI Public Access Block in ap-northeast-3
block-new-sharing
##### AMI Public Access Block in ap-northeast-2
block-new-sharing
##### AMI Public Access Block in ap-northeast-1
block-new-sharing
##### AMI Public Access Block in ca-central-1
block-new-sharing
##### AMI Public Access Block in sa-east-1
block-new-sharing
##### AMI Public Access Block in ap-southeast-1
block-new-sharing
##### AMI Public Access Block in ap-southeast-2
block-new-sharing
##### AMI Public Access Block in eu-central-1
block-new-sharing
##### AMI Public Access Block in us-east-1
block-new-sharing
##### AMI Public Access Block in us-east-2
block-new-sharing
##### AMI Public Access Block in us-west-1
block-new-sharing
##### AMI Public Access Block in us-west-2
block-new-sharing

CloudTrailでは本アップデートによる既存アカウントへの有効化は確認できない

既存アカウントへの変更がCloudTrailに記録されてるかもと思いましたが、AWSによる操作のため確認できませんでした。

これはあくまでAWSによる操作によるもののため、ユーザーによる操作であればもちろん確認できます。CloudTrailのEC2関連の操作は全て記録対象となっているので、AMIのブロックパブリックアクセスの変更(EnableImageBlockPublicAccess/DisableImageBlockPublicAccess)も確認可能です。

AWS CloudTrail を使用した Amazon EC2、Amazon EBS、および Amazon VPC API コールのログ - Amazon Elastic Compute Cloud

自分で有効化/無効化した際はCloudTrailに記録されていましたのでご安心ください。

新規アカウント

新規アカウントを発行してみて、初期設定がどうなっているのか確認します。Control Towerから新しいアカウントを発行してみました。

既存アカウントと同じようにコマンドでステータスを確認してみると、全リージョン有効化されているのが確認できました。

##### AMI Public Access Block in ap-south-1
block-new-sharing
##### AMI Public Access Block in eu-north-1
block-new-sharing
##### AMI Public Access Block in eu-west-3
block-new-sharing
##### AMI Public Access Block in eu-west-2
block-new-sharing
##### AMI Public Access Block in eu-west-1
block-new-sharing
##### AMI Public Access Block in ap-northeast-3
block-new-sharing
##### AMI Public Access Block in ap-northeast-2
block-new-sharing
##### AMI Public Access Block in ap-northeast-1
block-new-sharing
##### AMI Public Access Block in ca-central-1
block-new-sharing
##### AMI Public Access Block in sa-east-1
block-new-sharing
##### AMI Public Access Block in ap-southeast-1
block-new-sharing
##### AMI Public Access Block in ap-southeast-2
block-new-sharing
##### AMI Public Access Block in eu-central-1
block-new-sharing
##### AMI Public Access Block in us-east-1
block-new-sharing
##### AMI Public Access Block in us-east-2
block-new-sharing
##### AMI Public Access Block in us-west-1
block-new-sharing
##### AMI Public Access Block in us-west-2
block-new-sharing

もしControl Towerなどでアカウント発行する際、AMIのブロックパブリックアクセスを有効化するフローを組んでいる場合は、本アップデートにより不要となるので確認しておきましょう。

まとめ

既存アカウントと新規アカウントの設定値をアップデート後に確認してみました。全リージョンデフォルトで有効化されているので、AMIの共有ミスなどを未然に防ぐいいアップデートだと感じました。

SCPを利用することで、そもそもAMIブロックパブリックアクセスの無効化を拒否することも可能です。こちらもOrganizations環境であれば有用なので、是非活用していきましょう。

参考