

# API Gateway でカスタムドメインのセキュリティポリシーを選択する
<a name="apigateway-custom-domain-tls-version"></a>

*セキュリティポリシー*は、API Gateway が提供する TLS の最小バージョンと暗号スイートの事前定義された組み合わせです。クライアントが API またはカスタムドメイン名への TLS ハンドシェイクを確立すると、セキュリティポリシーにより、API Gateway で受け入れられる TLS バージョンと暗号スイートが適用されます。セキュリティポリシーは、クライアントとサーバー間の改ざんや盗聴などのセキュリティの問題から API とカスタムドメイン名を保護します。

API Gateway は、レガシーセキュリティポリシーと拡張セキュリティポリシーをサポートしています。`TLS_1_0` および `TLS_1_2` はレガシーセキュリティポリシーです。これらのセキュリティポリシーを一般化されたワークロードに使用するか、API の作成を開始します。`SecurityPolicy_` で始まるポリシーは、拡張セキュリティポリシーです。これらのポリシーは、規制対象のワークロード、高度なガバナンス、またはポスト量子暗号化に使用します。拡張セキュリティポリシーを使用する場合は、追加のガバナンスのためにエンドポイントアクセスモードも設定する必要があります。詳細については、「[エンドポイントアクセスモード](apigateway-security-policies.md#apigateway-security-policies-endpoint-access-mode)」を参照してください。

## 考慮事項
<a name="apigateway-custom-domain-tls-version-considerations"></a>

API Gateway の REST API のカスタムドメイン名のセキュリティポリシーに関する考慮事項を次に示します。
+ 拡張セキュリティポリシーを使用するドメイン名で相互 TLS を有効にすることはできません。
+ 拡張セキュリティポリシーを使用するドメイン名に HTTP API をマッピングすることはできません。
+ 拡張セキュリティポリシーを使用する REST API へのマルチレベルベースパスマッピングを有効にすると、同じドメイン名の HTTP API へのベースパスマッピングを作成することはできません。
+ API は、その API とは異なるセキュリティポリシーのカスタムドメイン名にマッピングできます。そのカスタムドメイン名を呼び出すと、API Gateway は API のセキュリティポリシーを使用して TLS ハンドシェイクをネゴシエートします。デフォルトの API エンドポイントを無効にすると、発信者が API を呼び出す方法が影響を受ける可能性があります。
+ API Gateway は、すべての API でセキュリティポリシーをサポートしています。ただし、REST API のセキュリティポリシーのみを選択できます。API Gateway は、HTTP または WebSocket API の `TLS_1_2` セキュリティポリシーのみをサポートします。
+ API Gateway は、複数のエンドポイントタイプを持つドメイン名のセキュリティポリシーの更新をサポートしていません。ドメイン名に複数のエンドポイントタイプがある場合は、そのうちの 1 つを削除してセキュリティポリシーを更新します。

## API Gateway がセキュリティポリシーを適用する方法
<a name="apigateway-custom-domain-tls-version-understanding"></a>

次の例は、API Gateway が `SecurityPolicy_TLS13_1_3_2025_09` セキュリティポリシーを例として使用してセキュリティポリシーを適用する方法を示しています。

`SecurityPolicy_TLS13_1_3_2025_09` セキュリティポリシーは、TLS 1.3 トラフィックを受け入れ、TLS 1.2 および TLS 1.0 トラフィックを拒否します。TLS 1.3 トラフィックの場合、セキュリティポリシーは次の暗号スイートを受け入れます。
+ `TLS_AES_128_GCM_SHA256`
+ `TLS_AES_256_GCM_SHA384`
+ `TLS_CHACHA20_POLY1305_SHA256`

API Gateway は、他の暗号スイートを受け付けません。例えば、セキュリティポリシーは、`AES128-SHA` 暗号スイートを使用する TLS 1.3 トラフィックを拒否します。

API Gateway へのアクセスに使用した TLS プロトコルと暗号クライアントをモニタリングするには、アクセスログで `$context.tlsVersion` および `$context.cipherSuite` コンテキスト変数を使用できます。詳細については、「[API Gateway で REST API をモニタリングする](rest-api-monitor.md)」を参照してください。

すべての REST API およびカスタムドメイン名のデフォルトのセキュリティポリシーを確認するには、「[デフォルトのセキュリティポリシー](apigateway-security-policies-list.md#apigateway-security-policies-default)」を参照してください。すべての REST API およびカスタムドメイン名でサポートされているセキュリティポリシーを確認するには、「[Supported security policies](apigateway-security-policies-list.md)」を参照してください。

## カスタムドメイン名のセキュリティポリシーを変更する
<a name="apigateway-security-policies-update-custom-domain-name"></a>

セキュリティポリシーを変更すると、更新が完了するまでに約 15 分かかります。カスタムドメイン名の `lastUpdateStatus` をモニタリングできます。カスタムドメイン名が更新されると、`lastUpdateStatus` は `PENDING` になり、完了すると `AVAILABLE` になります。

`SecurityPolicy_` で始まるセキュリティポリシーを使用する場合は、エンドポイントアクセスモードもオンにする必要があります。詳細については、「[エンドポイントアクセスモード](apigateway-security-policies.md#apigateway-security-policies-endpoint-access-mode)」を参照してください。

------
#### [ AWS マネジメントコンソール ]

**カスタムドメイン名のセキュリティポリシーを変更するには**

1. [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway) で API Gateway コンソールにサインインします。

1. REST API にトラフィックを送信するカスタムドメイン名を選択します。

   カスタムドメイン名に関連付けられているエンドポイントタイプが 1 つだけであることを確認します。

1. **[カスタムドメイン名設定]** を選択し、**[編集]** を選択します。

1. **[セキュリティポリシー]** で、新しいポリシーを選択します。

1. **[エンドポイントアクセスモード]** で、**[厳格]** を選択します。

1. **[Save changes]** (変更の保存) をクリックします。

------
#### [ AWS CLI ]

次の [update-domain-name](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-domain-name.html) コマンドは、`SecurityPolicy_TLS13_1_3_2025_09` セキュリティポリシーを使用するようにドメイン名を更新します。

```
aws apigateway update-domain-name \
    --domain-name example.com \
    --patch-operations '[
        {
            "op": "replace",
            "path": "/securityPolicy",
            "value": "SecurityPolicy_TLS13_1_3_2025_09"
        }, 
        {
            "op": "replace",
            "path": "/endpointAccessMode",
            "value": "STRICT"
        }
    ]'
```

出力は次のようになります。

```
{
   "domainName": "example.com",
   "endpointConfiguration": { 
      "types": [ "REGIONAL" ], 
      "ipAddressType": "dualstack" 
   },
   "regionalCertificateArn": "arn:aws:acm:us-west-2:111122223333:certificate/a1b2c3d4-5678-90ab-cdef",
   "securityPolicy": "SecurityPolicy_TLS13_1_3_2025_09",
   "endpointAccessMode": "STRICT"
}
```

------

## HTTP API と WebSocket API に関する情報
<a name="apigateway-rest-additional-apis"></a>

HTTP API と WebSocket API の詳細については、「[API Gateway での HTTP API のセキュリティポリシー](http-api-ciphers.md)」と「[API Gateway での WebSocket API のセキュリティポリシー](websocket-api-ciphers.md)」を参照してください。