LoginSignup
0
0

AWS S3のオブジェクト(画像や動画)を特定のドメインからのみ開けるようにする方法

Posted at

AWS S3のオブジェクト(画像や動画)を特定のドメインからのみ開けるようにする方法

開発している際に、特定のドメインの時のみURLが開けるように設定したい場合があったので、備忘録として残しておく。

1. パブリックアクセスの一部無効

下記で対応するBucket Policyの編集で競合するため下記2つを無効にする
・ 新しいパブリックバケットポリシーまたはアクセスポイントポリシーを介して付与されたバケットとオブジェクトへのパブリックアクセスをブロックする

・ 任意のパブリックバケットポリシーまたはアクセスポイントポリシーを介したバケットとオブジェクトへのパブリックアクセスとクロスアカウントアクセスをブロックする

スクリーンショット 2024-01-22 12.34.40.png


2. Bucket Policyの編集

  1. AWS Management Consoleにサインインし、開くAmazon S3 コンソール。
  2. ポリシーを適用するバケットを選択します。
  3. [Permissions] タブを選択し, [Bucket Policy] をクリックします。
  4. Bucket Policy Editor に上記のポリシーテキストを入力または貼り付けて、yourbucketを実際のバケット名,example.comを許可するドメインに置き換えます。
  5. [Save] をクリックします。

ドメインとバケットは各自のものを使用する

{
    "Version":"2012-10-17",
    "Id":"http referer policy example",
    "Statement":[
        {
            "Sid":"Allow get requests referred by any subdomain of example.com",
            "Effect":"Allow",
            "Principal":"*",
            "Action":"s3:GetObject",
            "Resource":"arn:aws:s3:::yourbucket/*",
            "Condition":{
                "StringLike":{
                    "aws:Referer":[
                        "http://*.example.com/*",
                        "https://*.example.com/*",
                        "http://example.com/*",
                        "https://example.com/*"
                    ]
                }
            }
        }
    ]
}

完成物

下記HTMLを許可したドメインとそれ以外のドメインに入れて検証した.

<video controls="" width="250">
  <source src="s3のバケットのオブジェクトURL" type="video/webm">
</video>

設定したドメインからアクセスすると下記のようになる

スクリーンショット 2024-01-22 12.42.34.png

それ以外のURLのアクセス

スクリーンショット 2024-01-22 12.42.41.png

URLを直接開いても開けない

スクリーンショット 2024-01-22 12.43.44.png


0
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
0
0