こんにちは、小寺です。
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アカウントレベルでのブロックとありますが、本リリース時にはリージョン毎の機能になっています。
先ほどまで確認していたのは東京リージョンでしたが、大阪リージョンでは「パブリック共有」が無効化されていたわけではないです。
もし、全リージョンで対応したい場合はリージョン毎に設定が必要です。