私のバケットポリシーに間違った VPC または VPC エンドポイント ID が登録されます。ポリシーを修正してバケットにアクセスできるようにするにはどうすれば良いですか?

最終更新日: 2019 年 4 月 9 日

Amazon Virtual Private Cloud (Amazon VPC) の ID またはバケットポリシーの VPC エンドポイント ID が間違っているため、Amazon Simple Storage Service (Amazon S3) バケットにアクセスできません。ポリシーを修正して、バケットに再びアクセスできるようにするにはどうすれば良いですか?

解決方法

VPC ID または VPC エンドポイント ID は有効ですが、VPCは間違っている

バケットポリシーの VPC ID または VPC エンドポイント ID は有効ですが、間違った VPC を指している場合は、以下の手順を実行してください。

注: バケットポリシーで VPC ID を指定した場合、VPC は関連付けられている VPC エンドポイントによりバケットにアクセスし、ポリシーを訂正しなければなりません。

1.    現在許容されている VPCにあり、またVPC エンドポイント経由で Amazon S3 へのトラフィックを許可するルートテーブルも使用する、Amazon Elastic Compute Cloud(Amazon EC2) インスタンスに接続します。このインスタンスはバケットにアクセスする権限を 持つ ロールまたは認証情報も必要です。

2.    インスタンスから、次のAWSラインインターフェイス (AWS CLI) コマンドを実行して、バケットポリシーを取得します。

aws s3api get-bucket-policy --bucket example_bucket

3.    既存のバケットポリシーをコピーして、後のステップのための参考として保持できます。

4.    バケットポリシーを削除するには、このコマンドを実行してください。

警告: 次のコマンドはバケットポリシー全体を削除します。参照のため、必ず既存のバケットポリシーのコピーを保持してください。

aws s3api delete-bucket-policy --bucket example_bucket

5.    以前のバケットポリシーを編集し、正しい VPC または VPC エンドポイントを指します。または、VPC によって制限されているアクセスが必要ない場合は、VPC 制限を完全に削除します。次に、正しいポリシーを JSON ドキュメントとして保存します。

6.    バケットへのアクセス権を持つ AWS アカウントから、次のコマンドを実行することにより、修正されたバケットポリシーをバケットに追加します。

aws s3api put-bucket-policy --bucket example_bucket --policy file://policy.json

VPC ID または VPC エンドポイント ID が有効ではありません

バケットポリシーの VPC ID または VPC エンドポイント ID が有効ではない場合 (たとえば、VPC が存在しなくなったか、誤入力された) は、AWS アカウントのルートユーザーがアクセスして間違ったポリシーを削除または編集できます。管理者レベルのアクセスを持つ AWS Identity and Access Management (IAM) ユーザーまたはロールでも、ポリシーを編集または削除することはできません。

注: これらの手順は、AWS GovCloud (米国) には適用されません。AWS GovCloud (米国) ユーザーの場合は、AWS サポートにお問い合わせください。

Amazon S3 コンソールを使用して以下の手順を実行し、バケットポリシーを修正します:

1.    Amazon S3 コンソールにルートユーザーとしてサインインします。

2.    バケットポリシーで削除または編集したいバケットを選択します。

注 : バケットを開く と、コンソールに「アクセスが拒否されました」というエラーが表示される場合があります。このエラーが表示されても次のステップに進むことができます。

3.    許可 ビューを選択します。

4.    バケットポリシー を選択します。

5.    完全にバケットポリシーを削除するには、 削除する を選択します。VPC ID または VPC エンドポイント ID のみを編集するには、バケットポリシーエディタで ID を修正し、[保存] を選択します。

警告: バケットポリシーを完全に削除する場合は、必ず既存のバケットポリシーのコピーを参照のため保持してください。

AWS CLI を使用してバケットポリシーを修正するには、以下の手順を実行してください。

警告: この手順は、AWS が緊急時または復旧時のシナリオに限り使用を推奨するルートユーザー認証情報 (アクセスキー) を使用します。必要でない限り、ルートアカウント認証情報の使用は避けてください。詳細については、AWS アカウントのルートユーザーアクセスキーをロックするを参照してください。

1.    AWS CLI を設定するには、次のコマンドを実行します:

aws configure

2.    このコマンドは、認証情報を入力するプロンプトを返します。ルートユーザーの認証情報を入力します。これらの認証情報を生成する方法については、ルートユーザーのアクセスキーの 作成を参照してください

3.    バケットポリシーを取得するには、次のコマンドを実行します:

aws s3api get-bucket-policy --bucket example_bucket

4.    既存のバケットポリシーをコピーして、後のステップのための参考として保持できます。

5.    バケットポリシーを削除するには、このコマンドを実行してください。

警告: 次のコマンドはバケットポリシー全体を削除します。参照のため、必ず既存のバケットポリシーのコピーを保持してください。

aws s3api delete-bucket-policy --bucket example_bucket

6.    以前のバケットポリシーを編集し、正しい VPC または VPC エンドポイントを指します。または、VPC によって制限されているアクセスが必要ない場合は、VPC 制限を完全に削除します。次に、正しいポリシーを JSON ドキュメントとして保存します。

7.    次のコマンドを実行して、バケットに修正されたバケットポリシーを追加します。

aws s3api put-bucket-policy --bucket example_bucket --policy file://policy.json

重要: AWS セキュリティのベストプラクティスとして、バケットポリシーの修正後、必ず以下のことを行ってください。


このページは役に立ちましたか?

改善できることはありますか?


さらにサポートが必要な場合