

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 在 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 APIs 自訂網域名稱的安全政策考量：
+ 您無法在使用增強型安全政策的網域名稱上啟用交互 TLS。
+ 您無法將 HTTP API 對應至使用增強型安全政策的網域名稱。
+ 如果您啟用多層級基本路徑映射至使用增強型安全政策的 REST API，則無法為相同的網域名稱建立基本路徑映射至 HTTP API。
+ 您的 API 可以映射到具有與 API 不同安全政策的自訂網域名稱。當您叫用該自訂網域名稱時，API Gateway 會使用 API 的安全政策來交涉 TLS 交握。如果您停用預設 API 端點，則可能會影響發起人調用 API 的方式。
+ API Gateway 支援所有 APIs的安全政策。不過，您只能選擇 REST APIs的安全政策。API Gateway 僅支援 HTTP 或 WebSocket APIs`TLS_1_2`的安全政策。
+ API Gateway 不支援更新具有多個端點類型的網域名稱的安全政策。如果您有多個端點類型的網域名稱，請刪除其中一個端點來更新安全政策。

## 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 不接受任何其他密碼套件。例如，安全政策會拒絕任何使用密碼套件的 TLS 1.3 `AES128-SHA` 流量。

若要監控用於存取 API Gateway 的 TLS 通訊協定和加密用戶端，您可以使用存取日誌中的 `$context.tlsVersion`和 `$context.cipherSuite`內容變數。如需詳細資訊，請參閱[在 API Gateway 中監控 REST API](rest-api-monitor.md)。

若要查看所有 REST APIs和自訂網域名稱的預設安全政策，請參閱 [預設安全政策](apigateway-security-policies-list.md#apigateway-security-policies-default)。若要查看所有 REST APIs和自訂網域名稱支援的安全政策，請參閱 [支援的安全政策](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. 在以下網址登入 API Gateway 主控台：[https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway)。

1. 選擇將流量傳送至 REST APIs自訂網域名稱。

   請確定只有一種端點類型與您的自訂網域名稱相關聯。

1. 選擇**自訂網域名稱設定**，然後選擇**編輯**。

1. 針對**安全政策**，選取新的政策。

1. 針對**端點存取模式**，選擇**嚴格**。

1. 選擇**儲存變更**。

------
#### [ 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)。