Submit Search
CloudFront経由でのCORS利用
11 likes
12,458 views
Yuta Imai
CloudFront経由でCORSを利用する際にハマったのでその原因とワークアラウンドのメモ。
Read more
1 of 10
1
2
3
4
Most read
5
6
Most read
7
8
Most read
9
10
More Related Content
PDF
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
Trainocate Japan, Ltd.
PDF
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
Amazon Web Services Japan
PDF
マルチテナント化で知っておきたいデータベースのこと
Amazon Web Services Japan
PPT
インフラエンジニアのためのcassandra入門
Akihiro Kuwano
PDF
20200630 AWS Black Belt Online Seminar Amazon Cognito
Amazon Web Services Japan
PDF
20191016 AWS Black Belt Online Seminar Amazon Route 53 Resolver
Amazon Web Services Japan
PDF
AWSのログ管理ベストプラクティス
Akihiro Kuwano
PDF
20190226 AWS Black Belt Online Seminar Amazon WorkSpaces
Amazon Web Services Japan
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
Trainocate Japan, Ltd.
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
Amazon Web Services Japan
マルチテナント化で知っておきたいデータベースのこと
Amazon Web Services Japan
インフラエンジニアのためのcassandra入門
Akihiro Kuwano
20200630 AWS Black Belt Online Seminar Amazon Cognito
Amazon Web Services Japan
20191016 AWS Black Belt Online Seminar Amazon Route 53 Resolver
Amazon Web Services Japan
AWSのログ管理ベストプラクティス
Akihiro Kuwano
20190226 AWS Black Belt Online Seminar Amazon WorkSpaces
Amazon Web Services Japan
What's hot
(20)
PDF
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介
Amazon Web Services Japan
PDF
Amazon Athena 初心者向けハンズオン
Amazon Web Services Japan
PDF
Google Cloud で実践する SRE
Google Cloud Platform - Japan
PDF
20191029 AWS Black Belt Online Seminar Elastic Load Balancing (ELB)
Amazon Web Services Japan
PDF
20190220 AWS Black Belt Online Seminar Amazon S3 / Glacier
Amazon Web Services Japan
PPTX
Azure Api Management 俺的マニュアル 2020年3月版
貴志 上坂
PDF
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
PDF
Fluentdのお勧めシステム構成パターン
Kentaro Yoshida
PPTX
Redisの特徴と活用方法について
Yuji Otani
PDF
AWS Black Belt Tech シリーズ 2015 - Amazon Redshift
Amazon Web Services Japan
PDF
Infrastructure as Code (IaC) 談義 2022
Amazon Web Services Japan
PDF
20210216 AWS Black Belt Online Seminar AWS Database Migration Service
Amazon Web Services Japan
PDF
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
Amazon Web Services Japan
PDF
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
Amazon Web Services Japan
PDF
[AKIBA.AWS] VPN接続とルーティングの基礎
Shuji Kikuchi
PDF
20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...
Amazon Web Services Japan
PDF
CloudFrontのリアルタイムログをKibanaで可視化しよう
Eiji KOMINAMI
PDF
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ
Amazon Web Services Japan
PDF
AWS Black Belt Online Seminar 2016 AWS CloudFormation
Amazon Web Services Japan
PDF
AWS BlackBelt AWS上でのDDoS対策
Amazon Web Services Japan
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介
Amazon Web Services Japan
Amazon Athena 初心者向けハンズオン
Amazon Web Services Japan
Google Cloud で実践する SRE
Google Cloud Platform - Japan
20191029 AWS Black Belt Online Seminar Elastic Load Balancing (ELB)
Amazon Web Services Japan
20190220 AWS Black Belt Online Seminar Amazon S3 / Glacier
Amazon Web Services Japan
Azure Api Management 俺的マニュアル 2020年3月版
貴志 上坂
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
Fluentdのお勧めシステム構成パターン
Kentaro Yoshida
Redisの特徴と活用方法について
Yuji Otani
AWS Black Belt Tech シリーズ 2015 - Amazon Redshift
Amazon Web Services Japan
Infrastructure as Code (IaC) 談義 2022
Amazon Web Services Japan
20210216 AWS Black Belt Online Seminar AWS Database Migration Service
Amazon Web Services Japan
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
Amazon Web Services Japan
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
Amazon Web Services Japan
[AKIBA.AWS] VPN接続とルーティングの基礎
Shuji Kikuchi
20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...
Amazon Web Services Japan
CloudFrontのリアルタイムログをKibanaで可視化しよう
Eiji KOMINAMI
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ
Amazon Web Services Japan
AWS Black Belt Online Seminar 2016 AWS CloudFormation
Amazon Web Services Japan
AWS BlackBelt AWS上でのDDoS対策
Amazon Web Services Japan
Ad
Viewers also liked
(20)
PDF
CloudFront、RedshiftなどAWSが支える動画広告の舞台裏~インフラのイノベーションがもたらす動画広告のイノベーション~
Takeshi Yako
PDF
送る言葉
Hiroshi Hasegawa
PDF
FluentdとAWSを使ったログの運用
Keisuke Izumiya
PPTX
いまNode Express4で書いてるディレクターが 初めて書き始める2ヶ月前くらいの自分に言っておく
Takahiro YAMAGUCHI
PDF
RICOH THETAの全天球画像でペーパークラフト
Takehiko YOSHIDA
PDF
EC2とVarnishで画像配信
Issei Naruta
PPTX
CloudFront最近の事例と間違った使い方
Hirokazu Ouchi
PPTX
GUERRA DE CANUDOS
Louise Caldart Colombo
PDF
例外設計における大罪
Takuto Wada
PPTX
Life of an Fluentd event
Kiyoto Tamura
PDF
AWS OpsWorksハンズオン
Amazon Web Services Japan
PPTX
How I learned to stop worrying and love the cloud
Shlomo Swidler
PPS
Pakistan ky wasail
jawed shaikh
PPTX
Ilan Goren @ German Israel Congress 2013, Berlin
ilangoren
PDF
Embedded projects
Senthil Kumar
PPTX
Bad Implementations of Good Ideas: How Systematic Inattention to Performance ...
Doug Sillars
PPTX
Over onze site
pgvanderpoel
PDF
STRATEGIC MANAGEMENT - DRGORAD
Deepak R Gorad
PPTX
Promotion on pinterest
ejpy
PDF
Como ser un gran maestro
Werton Bastos
CloudFront、RedshiftなどAWSが支える動画広告の舞台裏~インフラのイノベーションがもたらす動画広告のイノベーション~
Takeshi Yako
送る言葉
Hiroshi Hasegawa
FluentdとAWSを使ったログの運用
Keisuke Izumiya
いまNode Express4で書いてるディレクターが 初めて書き始める2ヶ月前くらいの自分に言っておく
Takahiro YAMAGUCHI
RICOH THETAの全天球画像でペーパークラフト
Takehiko YOSHIDA
EC2とVarnishで画像配信
Issei Naruta
CloudFront最近の事例と間違った使い方
Hirokazu Ouchi
GUERRA DE CANUDOS
Louise Caldart Colombo
例外設計における大罪
Takuto Wada
Life of an Fluentd event
Kiyoto Tamura
AWS OpsWorksハンズオン
Amazon Web Services Japan
How I learned to stop worrying and love the cloud
Shlomo Swidler
Pakistan ky wasail
jawed shaikh
Ilan Goren @ German Israel Congress 2013, Berlin
ilangoren
Embedded projects
Senthil Kumar
Bad Implementations of Good Ideas: How Systematic Inattention to Performance ...
Doug Sillars
Over onze site
pgvanderpoel
STRATEGIC MANAGEMENT - DRGORAD
Deepak R Gorad
Promotion on pinterest
ejpy
Como ser un gran maestro
Werton Bastos
Ad
Similar to CloudFront経由でのCORS利用
(18)
PDF
20180221 AWS Black Belt Online Seminar AWS Lambda@Edge
Amazon Web Services Japan
PDF
HTML5 Security & Headers - X-Crawling-Response-Header - by 重森 友行
CODE BLUE
PDF
20101220 pixiv tech_meeting
semind
PDF
Awsmeister cloudfront20120611-slideshare用
Yasuhiro Araki, Ph.D
PDF
XML Http Request Level2 の噂を聞いたので調べてみた
Shoot Morii
PDF
20120611 aws meister-reloaded-cloud-front-public
Amazon Web Services Japan
PDF
Rails と Rack と HTTP と通信の話
Progate, Inc.
PDF
AWS BlackBelt Online Seminar 2017 Amazon CloudFront + AWS Lambda@Edge
Amazon Web Services Japan
PDF
Aws summits2014 amazon_cloudfrontを利用したサイト高速化とセキュア配信
Boss4434
PDF
The Latest Specs of OpenID Connect at #idcon 9
Ryo Ito
PDF
[AWSマイスターシリーズ] Amazon CloudFront / Amazon Elastic Transcoderによるコンテンツ配信
Amazon Web Services Japan
PDF
CDNの仕組み(JANOG36)
J-Stream Inc.
PDF
What is cors??
Takuto
PDF
Beginning Java EE 6 勉強会(7) #bje_study
ikeyat
PPTX
AWSで認証機能のついたサイトを手軽に構築する(Cognito+CloudFront+API Gateway)
RyosukeTakeuchi8
PDF
Yahoo!ボックスAPI Hackathon向け資料
Yahoo!デベロッパーネットワーク
PPTX
AWSとmod_pagespeedで楽々サクサク高速化!!
aasakawa
PDF
Yahoo!ボックスAPI Hackday資料
Yahoo!デベロッパーネットワーク
20180221 AWS Black Belt Online Seminar AWS Lambda@Edge
Amazon Web Services Japan
HTML5 Security & Headers - X-Crawling-Response-Header - by 重森 友行
CODE BLUE
20101220 pixiv tech_meeting
semind
Awsmeister cloudfront20120611-slideshare用
Yasuhiro Araki, Ph.D
XML Http Request Level2 の噂を聞いたので調べてみた
Shoot Morii
20120611 aws meister-reloaded-cloud-front-public
Amazon Web Services Japan
Rails と Rack と HTTP と通信の話
Progate, Inc.
AWS BlackBelt Online Seminar 2017 Amazon CloudFront + AWS Lambda@Edge
Amazon Web Services Japan
Aws summits2014 amazon_cloudfrontを利用したサイト高速化とセキュア配信
Boss4434
The Latest Specs of OpenID Connect at #idcon 9
Ryo Ito
[AWSマイスターシリーズ] Amazon CloudFront / Amazon Elastic Transcoderによるコンテンツ配信
Amazon Web Services Japan
CDNの仕組み(JANOG36)
J-Stream Inc.
What is cors??
Takuto
Beginning Java EE 6 勉強会(7) #bje_study
ikeyat
AWSで認証機能のついたサイトを手軽に構築する(Cognito+CloudFront+API Gateway)
RyosukeTakeuchi8
Yahoo!ボックスAPI Hackathon向け資料
Yahoo!デベロッパーネットワーク
AWSとmod_pagespeedで楽々サクサク高速化!!
aasakawa
Yahoo!ボックスAPI Hackday資料
Yahoo!デベロッパーネットワーク
More from Yuta Imai
(20)
PPTX
Node-RED on device to Apache NiFi on cloud, via SORACOM Canal, with no Internet
Yuta Imai
PDF
HDP2.5 Updates
Yuta Imai
PDF
Deep Learning On Apache Spark
Yuta Imai
PDF
Hadoop in adtech
Yuta Imai
PDF
Hadoop/Spark セルフサービス系の事例まとめ
Yuta Imai
PDF
IoTアプリケーションで利用するApache NiFi
Yuta Imai
PDF
OLAP options on Hadoop
Yuta Imai
PDF
Apache ambari
Yuta Imai
PDF
Spark at Scale
Yuta Imai
PDF
Dynamic Resource Allocation in Apache Spark
Yuta Imai
PDF
Apache Hiveの今とこれから - 2016
Yuta Imai
PDF
Hadoop最新事情とHortonworks Data Platform
Yuta Imai
PDF
Benchmark and Metrics
Yuta Imai
PDF
Hadoop and Kerberos
Yuta Imai
PDF
Spark Streaming + Amazon Kinesis
Yuta Imai
PDF
オンラインゲームの仕組みと工夫
Yuta Imai
PDF
Amazon Machine Learning
Yuta Imai
PDF
Global Gaming On AWS
Yuta Imai
PDF
Digital marketing on AWS
Yuta Imai
PDF
EC2のストレージどう使う? -Instance Storageを理解して高速IOを上手に活用!-
Yuta Imai
Node-RED on device to Apache NiFi on cloud, via SORACOM Canal, with no Internet
Yuta Imai
HDP2.5 Updates
Yuta Imai
Deep Learning On Apache Spark
Yuta Imai
Hadoop in adtech
Yuta Imai
Hadoop/Spark セルフサービス系の事例まとめ
Yuta Imai
IoTアプリケーションで利用するApache NiFi
Yuta Imai
OLAP options on Hadoop
Yuta Imai
Apache ambari
Yuta Imai
Spark at Scale
Yuta Imai
Dynamic Resource Allocation in Apache Spark
Yuta Imai
Apache Hiveの今とこれから - 2016
Yuta Imai
Hadoop最新事情とHortonworks Data Platform
Yuta Imai
Benchmark and Metrics
Yuta Imai
Hadoop and Kerberos
Yuta Imai
Spark Streaming + Amazon Kinesis
Yuta Imai
オンラインゲームの仕組みと工夫
Yuta Imai
Amazon Machine Learning
Yuta Imai
Global Gaming On AWS
Yuta Imai
Digital marketing on AWS
Yuta Imai
EC2のストレージどう使う? -Instance Storageを理解して高速IOを上手に活用!-
Yuta Imai
CloudFront経由でのCORS利用
2.
はじめに • CloudFront経由でS3のCORS(Cross Origin
Resource Sharing)を利用しようと思って少し ハマったので、CORSの仕様自体 (http://www.w3.org/TR/cors/)から一度ちゃん と読んでまとめてみた。
3.
通常のCORSリクエスト リクエストにはOriginヘッダが必要!サーバー側の実装に依 存するが、仕様上ではOriginヘッダがあるときのみ、CORSリ クエストとして認識し、レスポンスのヘッダ内でAccess- Control-*を返す。
ヘッダ Origin: http://test-domain GETリクエスト WEB Browser サー バー レスポンス ヘッダ Access-Control-Allow-Origin: http://test-domain Access-Control-Allow-Methods: GET Access-Control-Max-Age: 3000 Access-Control-Allow-Credentials: true
4.
CORSレスポンス CORSのレスポンスには、ヘッダ内に以下のような項目が含 まれている。これらが含まれていないとCORSにはならな い。リクエストにOriginヘッダがなかったり、後述のpreflight リクエストに失敗したりするとこれらのヘッダはつかない。 •
Access-Control-Allow-Origin • Access-Control-Allow-Methods • Access-Control-Max-Age • Access-Control-Allow-Credentials 最低限、Access-Control-Allow-Originが含まれていればブラウ ザ側で解釈してくれる。(少なくともChromedでは) ex. Access-Control-Allow-Origin: http://test-domain
5.
カスタムヘッダ付きCORSリクエスト リクエスト内にX-hogeのようなカスタムヘッダが存在する場 合にはpreflightリクエストが発生する。OPTIONSメソッドで 利用可能なヘッダかどうかを確認する。
ヘッダ x-hogeが利用可 Access-Control-Request-Headers: x-hoge 能かどうかを聞 きに行く OPTIONSリクエスト(preflightリクエスト) レスポンス ヘッダ WEB Browser Access-Control-Allow-Headers: x-hoge サー バー GETリクエスト x-hogeは利用 OK!と返答 レスポンス
6.
S3のCORS S3はOPTIONSによるpreflightリクエストを正しく解釈する。 許可対象を*で設定した場合、リクエストがあるごとにリク エストに沿ったAllowed Headerを返す。
ヘッダ Access-Control-Request-Headers: origin, accept, x-hoge OPTIONSリクエスト ヘッダ レスポンス Access-Control-Allow-Headers: x-hoge Browser ヘッダ S3 Access-Control-Request-Headers: origin, accept, x-test OPTIONSリクエスト ヘッダ レスポンス Access-Control-Allow-Headers: x-test
7.
CloudFront + S3
通常のCORS 通常のリクエストなのでpreflightリクエストは飛ばないが、 CloudFrontからS3へのリクエストのところでいくつかのカス タムヘッダがつくので、そこで動作がおかしくなるケースが ある。 ヘッダ ヘッダ Origin: http://test-domain Origin: http://test-domain X-Amz-Cf-Id: xxxx X-Forwarded-For: xxx GETリクエスト GETリクエスト Browser CF S3 たとえば今回のケースでは ここで、preflightによる確 X-Amz-Cf-Idなどをハード 認なしで飛んできたカスタ コーディング的にS3の ムヘッダがあるのでCORS Allowed Headerに設定する とは認識されず、Access- と動くこともあるが、動い Control-*ヘッダを返せない たり動かなかったり。 ことがある。
8.
CloudFront + S3
カスタムヘッダ付きCORS Cloud FrontがOPTIONSメソッドを禁止しているので、 preflightに失敗する。 ヘッダ Access-Control-Request-Headers: origin, accept, x-hoge OPTIONSリクエスト Browser 403 Forbidden CF S3
9.
CloudFront + EC2でCORS EC2上にApache等を起動するケース。強制的にAccess- Control-*ヘッダ群を返してやればうまく動く。
ヘッダ ヘッダ Origin: http://test-domain Origin: http://test-domain X-Amz-Cf-Id: xxxx X-Forwarded-For: xxx GETリクエスト GETリクエスト Browser CF EC2 レスポンス レスポンス ヘッダ Access-Control-Allow-Origin: http://test-domain Access-Control-Allow-Methods: GET Access-Control-Max-Age: 3000 Access-Control-Allow-Credentials: true
10.
まとめ • 現状、CloudFront経由でS3のCORSはうまく
動かないケースがある。これはCORSの preflightリクエストの仕様上しようがないお 話。 • ワークアラウンドとしては、EC2にWEBサー バーを立てて、強制的にAccess-Control- Allow-Originヘッダ等を返してあげるのがい いと思う。