DEVELOPMENT
S3で静的サイトを公開するのですが、その際、直接S3へのアクセスを許可したくないので、特定のディストリビューションでのCloudfront経由のみから「Origin Access Identity」を使い特定アクセスを許可するよう設定を進めていました。
S3の設定で、
- 静的ウェブサイトホスティング」 = OFF
- アクセス権限やパケットポリシーなし = Privete
とし、Cloudfrontの設定を下記の記事を参考に設定しました。
▶ 参考 classmethod記事
※大変参考になりました。ありがとうございます。
ただ、設定を完了し、いざ試す際に想定どおり動きませんでした。
S3直アクセスは、403でアクセスできないのはわかるのですが、
Cloudfrontで生成されるURLにアクセスすると、s3のURLへリダイレクトされてしまい、S3に直でアクセスしているのと同じ挙動になってしまいました。
色々と調べてたら、時間が立てばリダイレクトしなくなる
▶ 参考 AWS Forums
ということでした笑。
cloudfrontのディストリビューションは「deployed」になってるのに、その後も時間が少しかかるみたいですね。 落ち着いて待ちましょう。
一応、s3の設定内容の整理です。
静的ウェブサイトホスティング
これは、そのままの意味で、webとして、ホスティングする際に必ずONにする必要があります。 cloudfront経由のみのアクセスを可能にする場合OFFにします。
アクセス権限やパケットポリシーについて
アクセス権限は、あくまで、そのパケット自体や、各ファイルに設定するアクセスの権限です。 パケット全体のアクセスをパブリックにせず、特定のファイルのみ、パブリックにすることも可能です。
Cloudfront経由のみのパブリック・アクセスにしたい場合は、パブリックにしない
株式会社UKAI 代表取締役CEO。建築を専攻していたが、新卒でYahoo!Japanにエンジニアとして入社。その後、転職、脱サラ、フリーランスエンジニアを経て、田舎へ移住し、ゲストハウスの開業、法人成り。ゲストハウス2軒、焼肉店、カフェ、食品製造業を運営しています。詳細はこちらから