

# レスポンスヘッダーポリシーの作成
<a name="creating-response-headers-policies"></a>

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

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

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

------
#### [ Console ]

**レスポンスヘッダーポリシーを作成するには (コンソール)**

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

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

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

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

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

      CORS ヘッダー設定の詳細については、「[CORS ヘッダー](understanding-response-headers-policies.md#understanding-response-headers-policies-cors)」を参照してください。

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

      セキュリティヘッダー設定の詳細については、「[セキュリティヘッダー](understanding-response-headers-policies.md#understanding-response-headers-policies-security)」を参照してください。

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

      カスタムヘッダー設定の詳細については、「[カスタムヘッダー](understanding-response-headers-policies.md#understanding-response-headers-policies-custom)」を参照してください。

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

      ヘッダーの削除設定の詳細については、「[ヘッダーを削除](understanding-response-headers-policies.md#understanding-response-headers-policies-remove-headers)」を参照してください。

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

      `Server-Timing` ヘッダーの詳細については、「[Server-Timing ヘッダー](understanding-response-headers-policies.md#server-timing-header)」を参照してください。

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

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

**既存のディストリビューションにレスポンスヘッダーポリシーをアタッチするには (コンソール)**

1. [https://console.aws.amazon.com/cloudfront/v4/home#/distributions](https://console.aws.amazon.com/cloudfront/v4/home#/distributions) で CloudFront コンソールの [**Distributions**] (ディストリビューション) ページを開きます。

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

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

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

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

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

**新しいディストリビューションにレスポンスヘッダーポリシーをアタッチするには (コンソール)**

1. [https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home) で CloudFront コンソールを開きます

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

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

1. その他のディストリビューションの設定を選択します。詳細については、「[すべてのディストリビューション設定リファレンス](distribution-web-values-specify.md)」を参照してください。

1. [**Create distribution**] (ディストリビューションを作成) を選択して、ディストリビューションを作成します。

------
#### [ CloudFormation ]

CloudFormation を使用してレスポンスヘッダーポリシーを作成するには、`AWS::CloudFront::ResponseHeadersPolicy` リソースタイプを使用します。以下に例を示します。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](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-responseheaderspolicy.html)」を参照してください。

------
#### [ 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
   ```

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

   レスポンスヘッダーポリシー設定の詳細については、「[レスポンスヘッダーポリシーを理解する](understanding-response-headers-policies.md)」を参照してください。

1. 次のコマンドを使用してレスポンスヘッダーポリシーを作成します。作成するポリシーでは、`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\$1ID* をディストリビューション ID に置き換えます。

   ```
   aws cloudfront get-distribution-config --id distribution_ID --output yaml > dist-config.yaml
   ```

1. 先ほど作成した `dist-config.yaml` という名前のファイルを開きます。ファイルを編集し、レスポンスヘッダーポリシーを使用するように、次の変更をキャッシュ動作に加えます。
   + キャッシュ動作で、`ResponseHeadersPolicyId` という名前のフィールドを追加します。フィールドの値には、ポリシーの作成後に書き留めたレスポンスヘッダーポリシー ID を使用します。
   + `ETag` フィールドの名前を `IfMatch` に変更します。ただし、フィールドの値は変更しないでください。

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

1. レスポンスヘッダーポリシーを使用するようにディストリビューションを更新するには、次のコマンドを使用します。*distribution\$1ID* をディストリビューション 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
   ```

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

   ディストリビューション設定の詳細については、「[すべてのディストリビューション設定リファレンス](distribution-web-values-specify.md)」を参照してください。

1. 次のコマンドを使用して、`distribution.yaml` ファイルの入力パラメータを使用し、ディストリビューションを作成します。

   ```
   aws cloudfront create-distribution --cli-input-yaml file://distribution.yaml
   ```

------
#### [ API ]

CloudFront API を使用してレスポンスヘッダーポリシーを作成するには、「[CreateResponseHeadersPolicy](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_CreateResponseHeadersPolicy.html)」を使用します。この API コールで指定するフィールドの詳細については、「[レスポンスヘッダーポリシーを理解する](understanding-response-headers-policies.md)」と、AWS SDK またはその他 API クライアントの API リファレンスドキュメントを参照してください。

レスポンスヘッダーポリシーを作成したら、次の API コールのいずれかを使用して、それをキャッシュ動作にアタッチできます。
+ 既存のディストリビューションのキャッシュ動作にアタッチするには、[UpdateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html) を使用します。
+ 新しいディストリビューションのキャッシュ動作にアタッチするには、[CreateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_CreateDistribution.html) を使用します。

これらの API コールの両方について、キャッシュ動作内で、`ResponseHeadersPolicyId` フィールドにレスポンスヘッダーポリシー ID を指定します。これらの API コールで指定するその他フィールドの詳細については、「[すべてのディストリビューション設定リファレンス](distribution-web-values-specify.md)」と、AWS SDK またはその他 API クライアントの API リファレンスドキュメントを参照してください。

------