レスポンスヘッダーポリシーの作成 - Amazon CloudFront

レスポンスヘッダーポリシーの作成

レスポンスヘッダーポリシーを使用して、Amazon CloudFront が HTTP レスポンスで追加または削除する HTTP ヘッダーを指定できます。レスポンスヘッダーポリシーおよびそれらを使用する理由の詳細については、「ポリシーを使用して CloudFront レスポンスの HTTP ヘッダーを追加または削除する」を参照してください。

レスポンスヘッダーポリシーは、CloudFront コンソールで作成できます。または、AWS CloudFormation、AWS Command Line Interface (AWS CLI)、CloudFront API のいずれかを使用して作成することもできます。レスポンスヘッダーポリシーを作成したら、CloudFront ディストリビューションの 1 つ以上のキャッシュ動作にアタッチします。

カスタムレスポンスヘッダーポリシーを作成する前に、マネージドレスポンスヘッダーポリシーの 1 つがユースケースに適合するかどうか確認します。適合する場合は、そのポリシーをキャッシュ動作にアタッチできます。これにより、独自のレスポンスヘッダーポリシーを作成したり管理したりする必要はありません。

Console
レスポンスヘッダーポリシーを作成するには (コンソール)
  1. AWS Management Console にサインインしてから、https://console.aws.amazon.com/cloudfront/v4/home#/policies/responseHeaders の CloudFront コンソールの [Policies] (ポリシー) ページで [Response headers] (レスポンスヘッダー) タブに行きます。

  2. [Create response headers policy] (レスポンスヘッダーポリシーの作成) を選択します。

  3. [Create response headers policy] (レスポンスヘッダーポリシーの作成) フォームで、次の操作を行います。

    1. [Details] (詳細) パネルで、レスポンスヘッダーポリシーおよび (任意で) ポリシーの目的を説明する [Description] (説明) に「名前」を入力します。

    2. [Cross-Origin Resource Sharing (CORS)] パネルで、[Configure CORS] (CORS を設定する) トグルを選択し、ポリシーに追加する CORS ヘッダーを設定します。CloudFront がオリジンから受信するヘッダーを上書きするためにヘッダーを設定する場合は、[Origin override] (オリジンの上書き) チェックボックスをオンにします。

      CORS ヘッダー設定の詳細については、「CORS ヘッダー」を参照してください。

    3. [Security headers] (セキュリティヘッダー) パネルで、トグルを選択し、ポリシーに追加する各セキュリティヘッダーを設定します。

      セキュリティヘッダー設定の詳細については、「セキュリティヘッダー」を参照してください。

    4. [Custom headers] (カスタムヘッダー) パネルで、ポリシーに含めるカスタムヘッダーを追加します。

      カスタムヘッダー設定の詳細については、「カスタムヘッダー」を参照してください。

    5. [Remove headers] (ヘッダーの削除) パネルで、CloudFront でオリジンのレスポンスから削除し、CloudFront からビューワーに送信するレスポンスには含めないヘッダーの名前を追加します。

      ヘッダーの削除設定の詳細については、「ヘッダーを削除」を参照してください。

    6. [Server-Timing header] (Server-Timing ヘッダー) パネルで、[Enable] (有効化) トグルを選択して、サンプリングレート (0~100 の数値) を入力します。

      Server-Timing ヘッダーの詳細については、「Server-Timing ヘッダー」を参照してください。

  4. [Create] (作成) を選択して、ポリシーを作成します。

レスポンスヘッダーポリシーを作成したら、CloudFront ディストリビューションのキャッシュ動作にアタッチできます。

既存のディストリビューションにレスポンスヘッダーポリシーをアタッチするには (コンソール)
  1. https://console.aws.amazon.com/cloudfront/v4/home#/distributions で CloudFront コンソールの [Distributions] (ディストリビューション) ページを開きます。

  2. 更新するディストリビューションを選択し、[動作] タブを選択します。

  3. 更新するキャッシュ動作を選び、[Edit] (編集) を選択します。

    または、新しいキャッシュ動作を作成するには、[動作を作成] を選択します。

  4. [Response headers policy] (レスポンスヘッダーポリシー) の場合は、キャッシュ動作に追加するポリシーを選択します。

  5. [Save changes] (変更を保存) を選択して、キャッシュ動作を更新します。新しいキャッシュ動作を作成する場合は、[Create behavior] (動作を作成) を選択します。

新しいディストリビューションにレスポンスヘッダーポリシーをアタッチするには (コンソール)
  1. https://console.aws.amazon.com/cloudfront/v4/home で CloudFront コンソールを開きます

  2. [ディストリビューションの作成] を選択します。

  3. [Response headers policy] (レスポンスヘッダーポリシー) の場合は、キャッシュ動作に追加するポリシーを選択します。

  4. その他のディストリビューションの設定を選択します。詳細については、「ディストリビューション設定リファレンス」を参照してください。

  5. [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)
  1. 次のコマンドを使用して、response-headers-policy.yaml という名前のファイルを作成します。このファイルには、create-response-headers-policy コマンドのすべての入力パラメータが含まれます。

    aws cloudfront create-response-headers-policy --generate-cli-skeleton yaml-input > response-headers-policy.yaml
  2. 先ほど作成した response-headers-policy.yaml ファイルを開きます。ファイルを編集してポリシー名と必要なレスポンスヘッダーポリシー設定を指定し、ファイルを保存します。

    レスポンスヘッダーポリシー設定の詳細については、「レスポンスヘッダーポリシーを理解する」を参照してください。

  3. 次のコマンドを使用してレスポンスヘッダーポリシーを作成します。作成するポリシーでは、response-headers-policy.yaml ファイルからの入力パラメータを使用します。

    aws cloudfront create-response-headers-policy --cli-input-yaml file://response-headers-policy.yaml

    コマンド出力の Id 値を書き留めます。これはレスポンスヘッダーポリシー ID です。ポリシーを CloudFront ディストリビューションのキャッシュ動作にアタッチするために必要です。

既存のディストリビューションにレスポンスヘッダーポリシーをアタッチするには (入力ファイルを含む CLI)
  1. 以下のコマンドを使用して、更新する CloudFront ディストリビューションのディストリビューション設定を保存します。distribution_ID をディストリビューション ID に置き換えます。

    aws cloudfront get-distribution-config --id distribution_ID --output yaml > dist-config.yaml
  2. 先ほど作成した dist-config.yaml という名前のファイルを開きます。ファイルを編集し、レスポンスヘッダーポリシーを使用するように、次の変更をキャッシュ動作に加えます。

    • キャッシュ動作で、ResponseHeadersPolicyId という名前のフィールドを追加します。フィールドの値には、ポリシーの作成後に書き留めたレスポンスヘッダーポリシー ID を使用します。

    • ETag フィールドの名前を IfMatch に変更します。ただし、フィールドの値は変更しないでください。

    完了したら、ファイルを保存します。

  3. レスポンスヘッダーポリシーを使用するようにディストリビューションを更新するには、次のコマンドを使用します。distribution_ID をディストリビューション ID に置き換えます。

    aws cloudfront update-distribution --id distribution_ID --cli-input-yaml file://dist-config.yaml
新しいディストリビューションにレスポンスヘッダーポリシーをアタッチするには (入力ファイルを含む CLI)
  1. 次のコマンドを使用して、distribution.yaml という名前のファイルを作成します。このファイルには、create-distribution コマンドのすべての入力パラメータが含まれます。

    aws cloudfront create-distribution --generate-cli-skeleton yaml-input > distribution.yaml
  2. 先ほど作成した distribution.yaml ファイルを開きます。デフォルトのキャッシュ動作の [ResponseHeadersPolicyId] フィールドに、ポリシーの作成後に書き留めたレスポンスヘッダーポリシー ID を入力します。ファイルの編集を続行して必要なディストリビューション設定を指定し、完了したらファイルを保存します。

    ディストリビューション設定の詳細については、「ディストリビューション設定リファレンス」を参照してください。

  3. 次のコマンドを使用して、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 リファレンスドキュメントを参照してください。