Amazon Simple Storage Service (Amazon S3) バケットへのすべてのユーザーのアクセスを拒否するようにバケットポリシーを誤って設定しました。
解決方法
バケットポリシーの条件が満たされない
バケットポリシーの条件が満たされない場合でも、Amazon S3 バケットへのアクセスを回復できます。バケットへのアクセスを回復するには、次の手順を実行してください。
- AWS マネジメントコンソールをルートユーザーアカウントで開きます。
**重要:**ルートユーザーを日常業務に使用しないでください。root ユーザーアカウントの認証情報は、ルートユーザーとしてサインインする必要があるタスクにのみ使用してください。ルートユーザー認証情報は、完全な管理者アクセス権を持つ AWS Identity Access Management (IAM) ユーザーまたはロールとは異なります。許可または拒否の権限を持つ IAM ポリシーをルートユーザーアカウントにアタッチすることはできません。アカウント管理者がルートユーザーアカウントのパスワードをローテーションするのがベストプラクティスです。
- Amazon S3 コンソールを開きます。
- 正しく設定されていないバケットに移動します。
- [アクセス権限] タブを選択します。
- [バケットポリシー] を選択します。
- [編集] を選択します。
- バケットポリシーで、バケットロックアウトの原因となった条件を特定します。次に、今後のロックアウトを防ぐために、それらの条件を編集または削除します。
- [変更を保存] を選択してください。
- AWS マネジメントコンソールからサインアウトします。
ルートユーザーがバケットポリシーを変更してアクセス権限を回復すると、バケットアクセス権を持つ IAM ユーザーは修正されたバケットポリシーを適用できます。詳細については、「Amazon S3 バケットポリシーの例」と「Amazon S3 コンソールを使用してバケットポリシーを追加する」を参照してください。
バケットポリシーの条件を満たすことができます
バケットポリシーの条件を満たすことができるけれども、ルートユーザーアカウントを使用できない場合は、ポリシーを変更してください。ただし、変更するにはバケットポリシーの条件を満たす必要があります。バケットへのアクセスを回復するには、次の手順を実行してください。
- バケットポリシーを確認して、設定されているバケットの条件を満たすことができるかを判断してください。
- バケットポリシーの条件を満たすには、必要なアクションをすべて実行して、ポリシーが True と評価されるようにします。S3 バケットアクセスをブロックできるバケットポリシー条件の次の例を参照してください。
クライアントの IP アドレスはホワイトリストに登録されていません。
VPC エンドポイントはホワイトリストに登録されていません。
リクエストは VPC 内から行われていますが、VPC には Amazon S3 エンドポイントがありません。
DENY 条件によって一部またはすべてのプリンシパルがブロックされ、条件ブロックが欠落している。
- アクセスを回復したら、バケットロックアウトの原因となった状況を特定します。次に、今後のロックアウトを防ぐために、それらの条件を編集または削除します。
- 変更をテストし、アクセス制御のレベルが正しいことを確認します。
ロックアウト前にバケットに適用されているポリシーがわからない場合は、AWS CloudTrail を使用してイベントを確認してください。CloudTrail を使用してアカウントの最近の PutBucketPolicy アクションを検索するには、以下の手順を実行してください。
- CloudTrail コンソールを開きます。
- ナビゲーションペインで、[イベント履歴] を選択します。
- イベント履歴ページの [検索属性] で、[イベント名] を選択します。
- [イベント名を入力] フィールドで、[PutBucketPolicy] を選択し、[Enter] キーを押します。
- 最新のイベントを選択し、イベントの詳細を確認します。イベントには、リクエストとレスポンスのパラメータが表示されます。これには、バケット名と完全なバケットポリシーが含まれます。