【Security Hub CSPM修復手順】 [EC2.182] Amazon EBS スナップショットはパブリックからアクセス可能であってはなりません。
はじめに
こんにちは、アノテーションの watabo です。
最近は、Security Hub CSPM のチェックに勤しんでおります。
さて、Security Hub CSPM に新しいコントロール [EC2.182] Amazon EBS Snapshots should not be publicly accessible が追加されました。
このコントロールは既存の [EC2.1] Amazon EBS snapshots should not be publicly restorable と名前が似ていますが、チェック内容と対処法が異なります。
本記事ではその違いと、対処方法を紹介します。
EC2.1 と EC2.182 の違い
両コントロールの違いは以下の通りです。
| 項目 | EC2.1 | EC2.182 |
|---|---|---|
| タイトル | EBS snapshots should not be publicly restorable | EBS Snapshots should not be publicly accessible |
| 重要度 | Critical | High |
| チェック対象 | 個別のスナップショットの共有設定 | アカウント全体のブロックパブリックアクセス設定 |
| リソースタイプ | AWS::::Account |
AWS::EC2::SnapshotBlockPublicAccess |
| Config Rule | ebs-snapshot-public-restorable-check |
ebs-snapshot-block-public-access |
| 対処方法 | 公開されている各スナップショットを個別にPrivateに変更 | アカウント単位でブロックパブリックアクセスを有効化 |
EC2.1 は既に公開共有されているスナップショットを検出するのに対し、EC2.182 はアカウント全体でスナップショットの公開共有を防ぐ仕組みが有効になっているかを確認します。
EC2.182 を満たすことで、今後誤ってスナップショットを公開してしまうリスクを予防できます。
対処方法
公式ガイドはこちらです。
マネジメントコンソールでの設定
- EC2コンソールを開く
- 左側のナビゲーションペインで「ダッシュボード / EC2 Dashboard」を選択
- 右側の「アカウントの属性 / Account attributes」セクションから「データ保護とセキュリティ / Data protection and security」を選択

- 「EBSスナップショットのブロックパブリックアクセス / Block public access for EBS snapshots」セクションで「管理 / Manage」をクリック

- 「パブリックアクセスをブロック / Block public access」 にチェックを入れ、すべての公開共有をブロック / Block all public sharing を選択
- 「更新 / Update」をクリック

※ 新しい公開共有をブロック / Block new public sharing では EC2.182 のコントロールを満たせません。
以上で完了です。
(画面ショットは「すべての共有がブロックされました」を選択した場合)

EC2 の設定反映と Security Hub CSPM の準拠状況への反映に時間がかかることがありますので、ご留意ください。
AWS CLIでの設定
現在の設定状態を確認
aws ec2 get-snapshot-block-public-access-state --region ap-northeast-1
出力例(未設定の場合)
{
"State": "unblocked",
"ManagedBy": "account"
}
特定のリージョンで有効化する場合
aws ec2 enable-snapshot-block-public-access \
--state block-all-sharing \
--region ap-northeast-1
全リージョンで一括有効化する場合
for region in $(aws ec2 describe-regions --region us-east-1 --query "Regions[*].[RegionName]" --output text); do
aws ec2 enable-snapshot-block-public-access \
--region $region \
--state block-all-sharing
done
設定後の確認
aws ec2 get-snapshot-block-public-access-state --region ap-northeast-1
出力例(設定後)
{
"State": "block-all-sharing",
"ManagedBy": "account"
}
API リファレンスは以下です。
Declarative Policy による設定 (Organizations 環境で推奨)
複数のアカウント・複数のリージョンを一括で管理したい場合は、AWS Organizations の Declarative Policy(宣言型ポリシー)を使用する方法が推奨されます。
Declarative Policy を使用することで、組織全体に対してブロックパブリックアクセスの設定を強制でき、個別のアカウントやリージョンごとに設定する手間を省けます。
詳細な設定方法については、以下の記事をご参照ください。
注意点
- マネジメントコンソール / AWS CLI を使った設定を行う場合は以下の点に注意です。
- リージョンごとに設定を行う必要があります
- Declarative Policy 経由で設定されている場合、アカウントから直接変更できません
- AWS Outposts のローカルスナップショットには対応していません。
おわりに
EC2.182 はアカウント全体でスナップショットの公開を防ぐ予防的なコントロールです。EC2.1 と併せて対応することで、より安全なEBS運用が実現できます。
まだ設定していない方は、この機会に全リージョンで有効化することをお勧めします。
本エントリがどなたかの役に立てば幸いです。
アノテーション株式会社について
アノテーション株式会社はクラスメソッドグループのオペレーション専門特化企業です。サポート・運用・開発保守・情シス・バックオフィスの専門チームが、最新 IT テクノロジー、高い技術力、蓄積されたノウハウをフル活用し、お客様の課題解決を行っています。当社は様々な職種でメンバーを募集しています。「オペレーション・エクセレンス」と「らしく働く、らしく生きる」を共に実現するカルチャー・しくみ・働き方にご興味がある方は、アノテーション株式会社 採用サイトをぜひご覧ください。









