LoginSignup
1
0

More than 3 years have passed since last update.

cloudfront から S3 バケット内の特定のファイルへのアクセス制限をするためにはオリジンアクセスアイデンティティを使う

Posted at

概要

cloudfront で配信している SPA でメンテナンスページを作成するとき、静的な HTML ファイルを S3 に置くが cloudfront からは「/maintenance.html」のように URL 直打ちだとアクセスできないようにしたい、というケースがありました。maintenance.html は URL 直打ちではなく SPA の制御によってレンダリングされます。
その際のメモです。

オリジンアクセスアイデンティティを使う

S3 のバケットポリシーでオリジンアクセスアイデンティティを使って cloudfront からのアクセスを制御することによって上記のケースを実現できます。

{
    "Version": "2008-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity TESTTEST"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::test/*"
        },
        {
            "Effect": "Deny",
            "Principal": {
                "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity TESTTEST"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::test/maintenance.html"
        }
    ]
}

上記のポリシーでは Deny を使って maintenance.html への直アクセスを禁止しています。

参考:
オリジンアクセスアイデンティティを使用して Amazon S3 コンテンツへのアクセスを制限する

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