こんにちは、小寺です。
EC2のAMIは別アカウントへ共有することができます。
今回は別アカウントへ共有する際のパブリック共有機能がAWSアカウントレベルでブロックできるようになりました。
https://aws.amazon.com/about-aws/whats-new/2023/09/amazon-ec2-block-public-access-machine-images/

AMI共有方法

Amazon マシンイメージ (AMI) は、AWSがサポートおよび管理するイメージで、インスタンスの起動に必要な情報です。
自己所有、プライベート、パブリックの3つに分かれます。

・自己所有
当該AWSアカウントで所有しているAMI

・プライベート
組織やアカウントなど共有先を指定されたAMI

・パブリック
全てのAWSアカウントに共有されたAMI

共有方法としてプライベートを選んでいれば、共有先が限定されるのですがパブリックを選んだ場合全てのAWSアカウントに共有がされてしまいます。
もし、プライベートとパブリックを間違えてしまったら機密情報が流出する恐れも。

アップデート内容

そんな課題を解決するために、「AMI のパブリック共有を禁止する」機能が発表されました。

従来まではAMI が誤って公開されたかどうかを検出するには、AMI 設定を手動で確認するか、カスタム スクリプトを実行する必要がありました。本アップデートではAWSアカウントレベルでのブロックができるようになっています。

意図しないパブリック共有による AMI への不正アクセスがブロックされ、潜在的なリスクの低減ができます。また、今パブリック共有されているAMIには影響はありません。

確認してみる

(1)EC2のコンソールから「①EC2ダッシュボード」を選びます。「②Data protection and security」が確認できます。

(2)Data protection and securityをクリックします。「Block public access for AMIs」で設定が可能です。

(3)「Manage」をクリックして設定してみます。
「①Block new public sharing」にチェックをつけ、「②Update」をクリックします。

(4)完了メッセージが表示されます。AMIパブリック共有の無効化には10分ほどかかるようです。

(5)パブリック共有が無効化されました。以下のように表示されます。

(6) AMIを選択し、「AMI許可を編集」をクリックしてみました。「パブリック」がぐレイアウトされてパブリック共有ができなくなっています。

(7) 本機能ではパブリック共有ができないだけなので、特定のAWSアカウントへのプライベート共有は問題なくできました。

ちなみにこのパブリック共有無効化設定はAWSアカウントレベルでのブロックとありますが、本リリース時にはリージョン毎の機能になっています。

先ほどまで確認していたのは東京リージョンでしたが、大阪リージョンでは「パブリック共有」が無効化されていたわけではないです。

もし、全リージョンで対応したい場合はリージョン毎に設定が必要です。