s3/cloudfront 経由で提供している html ファイルの Content-Security-Policy ヘッダーを設定しようとしています。ウェブベースの AWS コンソールを使用しています。ヘッダーを追加しようとするたびに:
尊重していないようです。このヘッダーが確実に配信されるようにするにはどうすればよいですか?
s3/cloudfront 経由で提供している html ファイルの Content-Security-Policy ヘッダーを設定しようとしています。ウェブベースの AWS コンソールを使用しています。ヘッダーを追加しようとするたびに:
尊重していないようです。このヘッダーが確実に配信されるようにするにはどうすればよいですか?
私は同じ問題を抱えています (S3/CloudFront を使用)。現在、これを簡単にセットアップする方法がないようです。
S3 には許可されたヘッダーのホワイトリストがあり、Content-Security-Policy はそこにありません。接頭辞付きの x-amz-meta-Content-Security-Policy を使用できるのは事実ですが、ブラウザーのサポートがないため、これは役に立ちません。
私が見ることができる2つのオプションがあります。
1) EC2 インスタンス上のウェブサーバーから html コンテンツを提供し、それを別の CloudFront オリジンとして設定できます。本当に素晴らしい解決策ではありません。
2) CSP を HTML ドキュメント内のメタ タグとして含めます。
<!doctype html>
<html>
<head>
<meta http-equiv="Content-Security-Policy" content="default-src http://*.foobar.com 'self'">
...
このオプションは、ブラウザーで広くサポートされているわけではありませんが、Webkit と Firefox の両方で動作するように見えるため、現在の Chrome、Firefox、Safari (および IOS 7 Safari) がサポートしているようです。
2 を選択したのは、よりシンプル/安価/高速なソリューションであり、AWS が将来 CSP ヘッダーを追加することを願っています.
CloudFront を介してテストしている場合、キャッシュされたオブジェクトを無効にしたことを確認しましたか? まったく新しいファイルをアップロードしてから、CF 経由でアクセスしてみて、ヘッダーがまだそこにないかどうかを確認できますか?
アップデート
カスタム メタデータは、DOC に従って期待どおりに機能しないようです。S3 でサポートされているもの (ドロップダウンに表示されるもの) 以外のメタデータには、x-amz-meta- というプレフィックスを付ける必要があります。