1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

CloudFrontを使用してS3オリジンへのアクセスで403エラーが発生する原因を調べた

Last updated at Posted at 2024-11-04

403とは

Webサイトの閲覧禁止を意味するコード

考えられる原因

オブジェクトの公開設定

S3バケット内のオブジェクトが「パブリックにアクセス可能」となっているか確認してください。オブジェクトが非公開の場合、CloudFront経由でのアクセスが制限される可能性があります。

AWS KMSによる暗号化

S3のオブジェクトがAWS Key Management Service (KMS) で暗号化されていないことを確認してください。KMSで暗号化されたオブジェクトにはCloudFrontからアクセスできません。

S3バケットポリシー

S3バケットポリシーで"s3:GetObject"のアクセス許可が設定されているか確認してください。特にCloudFrontのオリジンアクセスアイデンティティ(OAI)またはオリジンアクセスコントロール(OAC)が使用されている場合、それらが適切に許可されている必要があります。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::<CloudFront OAI ID>:root"
      },
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::<your-bucket-name>/*"
    }
  ]
}

オブジェクトの所有権

S3バケットが「パブリックリードアクセス」を許可している場合、バケットとオブジェクトが同じAWSアカウントによって所有されている必要があります。オブジェクトが他のアカウントでアップロードされた場合、403エラーが発生する可能性があります。

オブジェクトの存在

CloudFront経由でリクエストしているオブジェクトがバケット内に実際に存在しているか確認してください。存在しないオブジェクトへのリクエストは403または404エラーを引き起こします。

Amazon S3 Block Public Access設定

S3バケットで「パブリックアクセスをブロックする」設定が有効になっている場合、バケットやオブジェクトへのパブリックアクセスがブロックされます。この設定を無効にすることで、CloudFront経由でのアクセスを許可する必要があります。

Requester Pays設定

バケットで「Requester Pays」が有効になっている場合、リクエストにrequest-payerパラメータを含める必要があります。この設定があると、リクエストを行う側が料金を支払う形になるため、適切なパラメータが必要です。

Refererヘッダーの確認

RefererヘッダーでCloudFrontからのアクセスを制限している場合、カスタムヘッダー設定を確認してください。Refererヘッダーが不一致の場合、403エラーが発生します。

CloudFront キャッシュの確認

CloudFrontでキャッシュが残っている場合、キャッシュのクリアを試みてください。設定変更が反映されていないことが403エラーの原因となる場合もあります。

CloudFrontディストリビューション設定の変更が反映されていない

CloudFrontのディストリビューション設定に変更を加えた場合、設定の反映に時間がかかることがあります。ステータスが「Deployed」となるまで待ってから再確認してみてください。

参考サイト

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?