レスポンスヘッダーポリシーの作成
レスポンスヘッダーポリシーを使用して、Amazon CloudFront が HTTP レスポンスで追加または削除する HTTP ヘッダーを指定できます。レスポンスヘッダーポリシーおよびそれらを使用する理由の詳細については、「ポリシーを使用して CloudFront レスポンスの HTTP ヘッダーを追加または削除する」を参照してください。
レスポンスヘッダーポリシーは、CloudFront コンソールで作成できます。または、AWS CloudFormation、AWS Command Line Interface (AWS CLI)、CloudFront API のいずれかを使用して作成することもできます。レスポンスヘッダーポリシーを作成したら、CloudFront ディストリビューションの 1 つ以上のキャッシュ動作にアタッチします。
カスタムレスポンスヘッダーポリシーを作成する前に、マネージドレスポンスヘッダーポリシーの 1 つがユースケースに適合するかどうか確認します。適合する場合は、そのポリシーをキャッシュ動作にアタッチできます。これにより、独自のレスポンスヘッダーポリシーを作成したり管理したりする必要はありません。
- Console
-
レスポンスヘッダーポリシーを作成するには (コンソール)
-
AWS Management Console にサインインしてから、https://console.aws.amazon.com/cloudfront/v4/home#/policies/responseHeaders
の CloudFront コンソールの [Policies] (ポリシー) ページで [Response headers] (レスポンスヘッダー) タブに行きます。 -
[Create response headers policy] (レスポンスヘッダーポリシーの作成) を選択します。
-
[Create response headers policy] (レスポンスヘッダーポリシーの作成) フォームで、次の操作を行います。
-
[Details] (詳細) パネルで、レスポンスヘッダーポリシーおよび (任意で) ポリシーの目的を説明する [Description] (説明) に「名前」を入力します。
-
[Cross-Origin Resource Sharing (CORS)] パネルで、[Configure CORS] (CORS を設定する) トグルを選択し、ポリシーに追加する CORS ヘッダーを設定します。CloudFront がオリジンから受信するヘッダーを上書きするためにヘッダーを設定する場合は、[Origin override] (オリジンの上書き) チェックボックスをオンにします。
CORS ヘッダー設定の詳細については、「CORS ヘッダー」を参照してください。
-
[Security headers] (セキュリティヘッダー) パネルで、トグルを選択し、ポリシーに追加する各セキュリティヘッダーを設定します。
セキュリティヘッダー設定の詳細については、「セキュリティヘッダー」を参照してください。
-
[Custom headers] (カスタムヘッダー) パネルで、ポリシーに含めるカスタムヘッダーを追加します。
カスタムヘッダー設定の詳細については、「カスタムヘッダー」を参照してください。
-
[Remove headers] (ヘッダーの削除) パネルで、CloudFront でオリジンのレスポンスから削除し、CloudFront からビューワーに送信するレスポンスには含めないヘッダーの名前を追加します。
ヘッダーの削除設定の詳細については、「ヘッダーを削除」を参照してください。
-
[Server-Timing header] (Server-Timing ヘッダー) パネルで、[Enable] (有効化) トグルを選択して、サンプリングレート (0~100 の数値) を入力します。
Server-Timing
ヘッダーの詳細については、「Server-Timing ヘッダー」を参照してください。
-
-
[Create] (作成) を選択して、ポリシーを作成します。
レスポンスヘッダーポリシーを作成したら、CloudFront ディストリビューションのキャッシュ動作にアタッチできます。
既存のディストリビューションにレスポンスヘッダーポリシーをアタッチするには (コンソール)
-
https://console.aws.amazon.com/cloudfront/v4/home#/distributions
で CloudFront コンソールの [Distributions] (ディストリビューション) ページを開きます。 -
更新するディストリビューションを選択し、[動作] タブを選択します。
-
更新するキャッシュ動作を選び、[Edit] (編集) を選択します。
または、新しいキャッシュ動作を作成するには、[動作を作成] を選択します。
-
[Response headers policy] (レスポンスヘッダーポリシー) の場合は、キャッシュ動作に追加するポリシーを選択します。
-
[Save changes] (変更を保存) を選択して、キャッシュ動作を更新します。新しいキャッシュ動作を作成する場合は、[Create behavior] (動作を作成) を選択します。
新しいディストリビューションにレスポンスヘッダーポリシーをアタッチするには (コンソール)
https://console.aws.amazon.com/cloudfront/v4/home
で CloudFront コンソールを開きます -
[ディストリビューションの作成] を選択します。
-
[Response headers policy] (レスポンスヘッダーポリシー) の場合は、キャッシュ動作に追加するポリシーを選択します。
-
その他のディストリビューションの設定を選択します。詳細については、「ディストリビューション設定リファレンス」を参照してください。
-
[Create distribution] (ディストリビューションを作成) を選択して、ディストリビューションを作成します。
-
- AWS CloudFormation
-
AWS CloudFormation を使用してレスポンスヘッダーポリシーを作成するには、
AWS::CloudFront::ResponseHeadersPolicy
リソースタイプを使用します。以下に例を示します。AWS CloudFormationレスポンスヘッダーポリシーを作成するための YAML 形式のテンプレート構文。Type: AWS::CloudFront::ResponseHeadersPolicy Properties: ResponseHeadersPolicyConfig: Name: EXAMPLE-Response-Headers-Policy Comment: Example response headers policy for the documentation CorsConfig: AccessControlAllowCredentials: false AccessControlAllowHeaders: Items: - '*' AccessControlAllowMethods: Items: - GET - OPTIONS AccessControlAllowOrigins: Items: - https://example.com - https://docs.example.com AccessControlExposeHeaders: Items: - '*' AccessControlMaxAgeSec: 600 OriginOverride: false CustomHeadersConfig: Items: - Header: Example-Custom-Header-1 Value: value-1 Override: true - Header: Example-Custom-Header-2 Value: value-2 Override: true SecurityHeadersConfig: ContentSecurityPolicy: ContentSecurityPolicy: default-src 'none'; img-src 'self'; script-src 'self'; style-src 'self'; object-src 'none'; frame-ancestors 'none' Override: false ContentTypeOptions: # You don't need to specify a value for 'X-Content-Type-Options'. # Simply including it in the template sets its value to 'nosniff'. Override: false FrameOptions: FrameOption: DENY Override: false ReferrerPolicy: ReferrerPolicy: same-origin Override: false StrictTransportSecurity: AccessControlMaxAgeSec: 63072000 IncludeSubdomains: true Preload: true Override: false XSSProtection: ModeBlock: true # You can set ModeBlock to 'true' OR set a value for ReportUri, but not both Protection: true Override: false ServerTimingHeadersConfig: Enabled: true SamplingRate: 50 RemoveHeadersConfig: Items: - Header: Vary - Header: X-Powered-By
詳細については、AWS CloudFormationユーザーガイド内の「AWS:: CloudFront:: ResponseHeadersPolicy」を参照してください。
- CLI
-
AWS Command Line Interface (AWS CLI) でレスポンスヘッダーポリシーを作成するには、aws cloudfront create-response-headers-policy コマンドを使用します。コマンドの入力パラメータは、コマンドライン入力として個別に指定せずに、入力ファイルを使用して指定できます。
レスポンスヘッダーポリシーを作成するには (入力ファイルを含む CLI)
-
次のコマンドを使用して、
response-headers-policy.yaml
という名前のファイルを作成します。このファイルには、create-response-headers-policy コマンドのすべての入力パラメータが含まれます。aws cloudfront create-response-headers-policy --generate-cli-skeleton yaml-input > response-headers-policy.yaml
-
先ほど作成した
response-headers-policy.yaml
ファイルを開きます。ファイルを編集してポリシー名と必要なレスポンスヘッダーポリシー設定を指定し、ファイルを保存します。レスポンスヘッダーポリシー設定の詳細については、「レスポンスヘッダーポリシーを理解する」を参照してください。
-
次のコマンドを使用してレスポンスヘッダーポリシーを作成します。作成するポリシーでは、
response-headers-policy.yaml
ファイルからの入力パラメータを使用します。aws cloudfront create-response-headers-policy --cli-input-yaml file://response-headers-policy.yaml
コマンド出力の
Id
値を書き留めます。これはレスポンスヘッダーポリシー ID です。ポリシーを CloudFront ディストリビューションのキャッシュ動作にアタッチするために必要です。
既存のディストリビューションにレスポンスヘッダーポリシーをアタッチするには (入力ファイルを含む CLI)
-
以下のコマンドを使用して、更新する CloudFront ディストリビューションのディストリビューション設定を保存します。
distribution_ID
をディストリビューション ID に置き換えます。aws cloudfront get-distribution-config --id
distribution_ID
--output yaml > dist-config.yaml -
先ほど作成した
dist-config.yaml
という名前のファイルを開きます。ファイルを編集し、レスポンスヘッダーポリシーを使用するように、次の変更をキャッシュ動作に加えます。-
キャッシュ動作で、
ResponseHeadersPolicyId
という名前のフィールドを追加します。フィールドの値には、ポリシーの作成後に書き留めたレスポンスヘッダーポリシー ID を使用します。 -
ETag
フィールドの名前をIfMatch
に変更します。ただし、フィールドの値は変更しないでください。
完了したら、ファイルを保存します。
-
-
レスポンスヘッダーポリシーを使用するようにディストリビューションを更新するには、次のコマンドを使用します。
distribution_ID
をディストリビューション ID に置き換えます。aws cloudfront update-distribution --id
distribution_ID
--cli-input-yaml file://dist-config.yaml
新しいディストリビューションにレスポンスヘッダーポリシーをアタッチするには (入力ファイルを含む CLI)
-
次のコマンドを使用して、
distribution.yaml
という名前のファイルを作成します。このファイルには、create-distribution コマンドのすべての入力パラメータが含まれます。aws cloudfront create-distribution --generate-cli-skeleton yaml-input > distribution.yaml
-
先ほど作成した
distribution.yaml
ファイルを開きます。デフォルトのキャッシュ動作の [ResponseHeadersPolicyId
] フィールドに、ポリシーの作成後に書き留めたレスポンスヘッダーポリシー ID を入力します。ファイルの編集を続行して必要なディストリビューション設定を指定し、完了したらファイルを保存します。ディストリビューション設定の詳細については、「ディストリビューション設定リファレンス」を参照してください。
-
次のコマンドを使用して、
distribution.yaml
ファイルの入力パラメータを使用し、ディストリビューションを作成します。aws cloudfront create-distribution --cli-input-yaml file://distribution.yaml
-
- API
-
CloudFront API を使用してレスポンスヘッダーポリシーを作成するには、「CreateResponseHeadersPolicy」を使用します。この API コールで指定するフィールドの詳細については、「レスポンスヘッダーポリシーを理解する」、および AWS SDK やその他の API クライアントの API リファレンスドキュメントを参照してください。
レスポンスヘッダーポリシーを作成したら、次の API コールのいずれかを使用して、それをキャッシュ動作にアタッチできます。
-
既存のディストリビューションのキャッシュ動作にアタッチするには、UpdateDistribution を使用します。
-
新しいディストリビューションのキャッシュ動作にアタッチするには、CreateDistribution を使用します。
これらの API コールの両方について、キャッシュ動作内で、
ResponseHeadersPolicyId
フィールドにレスポンスヘッダーポリシー ID を指定します。これらの API コールで指定するその他フィールドの詳細については、「ディストリビューション設定リファレンス」と、AWS SDK またはその他 API クライアントの API リファレンスドキュメントを参照してください。 -