誤ったバケットポリシーを設定したり、バケットポリシーで特定のVPCエンドポイントからのみのアクセスを許可していてそのVPCエンドポイントを消してしまったりしてS3バケットに一切アクセスできず文鎮化してしまった場合の対処法。root アカウントのシークレットアクセスキーを作成して AWS CLI からバケットポリシーを削除して復旧することができる*1。
手順
rootアカウントのシークレットアクセスキー作成
- AWSマネジメントコンソールにrootアカウントでログインする
- ナビゲーションバー右上のアカウント名を選択し、[セキュリティ認証情報]を選択する。
- [アクセスキー (アクセスキー ID とシークレットアクセスキー)]-[新しいアクセスキーの作成]をクリックし、[キーファイルのダウンロード]をクリックしてダウンロードする。
文鎮化したS3バケットのバケットポリシーを削除
$ export AWS_DEFAULT_REGION=ap-northeast-1 $ export AWS_ACCESS_KEY_ID="ROOT_KEY_ID" ★アクセスキーを指定 $ export AWS_SECRET_ACCESS_KEY="ROOT_SECRET_KEY" ★シークレットキーを指定
- バケットポリシーを削除する
$ aws s3api delete-bucket-policy --bucket az-private
rootアカウントのシークレットアクセスキー削除
- ナビゲーションバー右上のアカウント名を選択し、[セキュリティ認証情報]を選択する。
- [アクセスキー (アクセスキー ID とシークレットアクセスキー)]で[削除]をクリックし、シークレットアクセスキーを削除する。