パブリック読み取りアクセス権を持つ Amazon S3 バケットからの 403 アクセス拒否エラーのトラブルシューティング方法を教えてください。

最終更新日: 2021 年 4 月 29 日

パブリック読み取りアクセスを許可する Amazon Simple Storage Service (Amazon S3) バケット内のオブジェクトにアクセスしようとしています。しかし、403 アクセス拒否エラーが表示されています。このエラーのトラブルシューティングを行う方法を教えてください。

解決方法

パブリック S3 バケットからオブジェクトにアクセスする際の問題を診断するには、AWS Systems Manager で AWSSupport-TroubleshootS3PublicRead オートメーションドキュメントを実行します。この記事では、バケットポリシーやオブジェクトアクセスコントロールリスト (ACL) など、バケットおよびオブジェクトに影響するアクセス許可の設定を分析します。

注: AWSSupport-TroubleshootS3PublicRead ドキュメントは、パブリックに読み取り可能なオブジェクトからの 403 エラーを分析します。このドキュメントは、プライベートオブジェクトのアクセス許可は評価しません。

Systems Manager コンソールを使用して AWSSupport-TroubleshootS3PublicRead オートメーションドキュメントを実行するには、次の手順に従います。

1.    Systems Manager コンソールを開きます。

2.    ナビゲーションペインで [オートメーション] を選択します。

3.    [オートメーションの実行] を選択します。

4.    [ドキュメントの選択] で、[Amazon 所有] タブを選択します。

5.    [Automation document] (オートメーションドキュメント) 検索バーで、AWSSupport-TroubleshootS3PublicRead と入力し、Enter キーを押します。

6.    [AWSSupport-TroubleshootS3PublicRead] を選択します。

7.    [Execute automation] (オートメーションの実行) を選択します。

8.    [Simple execution] (シンプルな実行) を選択します。

9.    (オプション) [AutomationAssumeRole] では、バケットにリクエストを送信するために Systems Manager が引き受けることができる AWS Identity and Access Management (IAM) ロールを選択できます。このフィールドを空白のままにすると、Systems Manager はドキュメントの設定に使用している IAM ID を使用します。

重要: 選択する IAM ロールの信頼ポリシーで、Systems Manager Automation がロールを引き受けることを許可する必要があります。さらに、IAM ロールには、AWSSupport-TroubleshootS3PublicRead オートメーションドキュメントを実行するためのアクセス権限が必要です。

10.    [S3BucketName] で、トラブルシューティングする S3 バケットの名前を入力します。

11.    (オプション) [S3PrefixName] で、分析するプレフィックスを指定できます。このフィールドを空白のままにすると、オートメーションドキュメントによってバケットがリスト化され、最初のいくつかのオブジェクトが辞書的に評価されます。

12.    (オプション) [StartAfter] で、オートメーションドキュメントのリスト化を開始するキー名を指定できます。

13.    [MaxObjects] で、オートメーションドキュメントで評価するオブジェクトの最大数を入力します。デフォルト値は 5 です。

14.    [IgnoreBlockPublicAccess] は、ベストプラクティスとしては値を [false] のままにしておきます。

警告: 値を [true] に変更すると、アクセスをブロックしている可能性のある Amazon S3 ブロックパブリックアクセスの設定は無視されます。

15.    [HttpGet] では、各オブジェクトに対する部分的な HTTP GET リクエスト (最初のバイト) をオートメーションドキュメントで実行する場合、値を [true] のままにします。オートメーションドキュメントで完全な GET リクエストを実行する場合は、値を [false] に変更します。

16.    分析中に詳細情報を表示する場合は、[Verbose] (詳細) で true と入力します。警告メッセージとエラーメッセージのみを表示する場合は、false と入力します。

17.    (オプション) [CloudWatchLogGroupName] で、分析結果の送信先となる Amazon CloudWatch ロググループ名を入力できます。名前を指定してもロググループが存在しない場合、オートメーションドキュメントはその名前のロググループの作成を試みます。

18.    (オプション) [CloudWatchLogStreamName] で、分析結果の送信先となる CloudWatch ログストリーム名を入力できます。名前を指定してもロググループが存在しない場合、オートメーションドキュメントはその名前のロググループの作成を試みます。このフィールドを空白のままにすると、オートメーションドキュメントはログストリーム名として当該ドキュメントの実行 ID を使用します。

19.    [ResourcePartition] で、S3 バケットが格納されているパーティションを選択します。オプションは、awsaws-us-govaws-cn のいずれかです。

20.    (オプション) [Tags] (タグ) には、最大 5 つのキーと値のペアタグを入力します。

21.    [Execute] (実行) を選択します。

22.    ドキュメントの進行状況を追跡するには、[Execution status] (実行ステータス) を使用します。

23.    ステータスが [Success] (成功) と表示されたら、[Outputs] (出力) にリストされた結果を確認します。結果には、評価される各オブジェクトのエラーコードが含まれることがあります。エラーコードは、各オブジェクトに対する匿名リクエストのアクセス拒否エラーの原因を診断するのに役立ちます。

ヒント: 評価の各ステップの結果を確認するには、[実行されたステップ] で関連するステップ ID を選択します。[実行されたステップ] は、[実行ステータス] の下に一覧表示されます。


この記事は役に立ちましたか?


請求に関するサポートまたは技術サポートが必要ですか?