本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
APIs中 REST API 的安全政策
安全政策是 API Gateway 所提供的最低 TLS 版本與密碼套件的預先定義組合。當您的用戶端建立 API 或自訂網域名稱的 TLS 交握時,安全政策會強制執行 API Gateway 接受的 TLS 版本和密碼套件。安全政策可保護您的 APIs 和自訂網域名稱免於發生網路安全問題,例如在用戶端和伺服器之間竄改和竊聽。
API Gateway 支援舊版安全政策和增強型安全政策。 TLS_1_0和 TLS_1_2 是舊版安全政策。使用這些安全政策來實現回溯相容性。以 開頭的任何政策SecurityPolicy_都是增強型安全政策。將這些政策用於受管制的工作負載、進階控管,或使用量子後密碼編譯。使用增強型安全政策時,您還必須設定端點存取模式,以進行額外的控管。如需詳細資訊,請參閱端點存取模式。
API Gateway 如何套用安全政策
下列範例顯示 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_SHA256TLS_AES_256_GCM_SHA384TLS_CHACHA20_POLY1305_SHA256
API Gateway 不接受任何其他密碼套件。例如,安全政策會拒絕任何使用密碼套件的 TLS 1.3 AES128-SHA 流量。如需支援的 TLS 版本和密碼的詳細資訊,請參閱 支援的安全政策。
若要監控用於存取 API Gateway 的 TLS 通訊協定和加密用戶端,您可以使用存取日誌中的 $context.tlsVersion和 $context.cipherSuite內容變數。如需詳細資訊,請參閱在 API Gateway 中監控 REST API。
端點存取模式
端點存取模式是您必須為任何使用以 開頭的增強型安全政策的 REST API 或自訂網域名稱指定的額外參數SecurityPolicy_。您可以在建立資源時執行此操作,或將安全政策從舊版政策變更為增強型政策時執行此操作。
當端點存取模式設定為 時STRICT,對 REST API 或自訂網域名稱的任何請求都必須通過下列檢查:
-
請求必須來自與 資源相同的 API Gateway 端點類型。這可能是來自區域、邊緣最佳化或私有端點。
-
如果您使用區域或私有端點,API Gateway 會使用 SNI 主機比對。如果您使用邊緣最佳化端點,API Gateway 會符合 CloudFront 的網域前端保護。如需詳細資訊,請參閱網域前端。
如果不符合上述任一條件,API Gateway 會拒絕請求。我們建議您盡可能使用STRICT端點存取模式。
若要遷移現有的 API 或網域名稱以使用嚴格的端點存取模式,請先將安全政策更新為增強型安全政策,並將端點存取模式設定為 BASIC。驗證流量和存取日誌之後,請將端點存取模式設定為 STRICT。當您將端點存取模式從 遷移STRICT至 時BASIC,隨著變更傳播,您的端點將無法使用約 15 分鐘。
您不應該STRICT針對特定應用程式架構將端點存取模式設定為 ,而是將端點存取模式設定為 BASIC。下表顯示一些應用程式架構和建議,讓您的 REST API 或自訂網域名稱可以使用STRICT端點存取模式。
| Architecture | 建議的遷移 |
|---|---|
使用 VPC 端點存取公有自訂網域名稱。 |
此架構使用跨端點類型流量。我們建議您遷移至 API Gateway 中的 API 私有 API 的自訂網域名稱。 |
|
使用任何方法叫用不使用自訂網域名稱或私有 DNS 名稱的私有 API。 |
此架構會在主機標頭與 TLS 交握中使用的 SNI 之間建立不相符,並且不會通過 CloudFront 的網域前端限制。我們建議您遷移 VPC 以使用私有 DNS。 |
使用網域碎片將內容分散到多個網域或子網域。 |
此架構會在主機標頭與 TLS 交握中使用的 SNI 之間建立不相符,並且不會通過 CloudFront 的網域前端限制。我們建議您使用 |
以下是使用端點存取模式的考量:
-
如果 API 或網域名稱的端點存取模式為
STRICT,則您無法變更端點類型。若要變更端點類型,請先將端點存取模式變更為BASIC。 -
將端點存取模式從 變更為
BASIC後STRICT,API Gateway 會延遲 15 分鐘,以強制執行嚴格的端點存取模式。 -
當您將安全政策從開頭為 的政策變更為
SecurityPolicy_舊版政策時,您必須將端點存取模式取消設定為""。
考量事項
以下是 API Gateway 中 REST APIs安全政策的考量:
-
您可以在 OpenAPI 定義檔案中匯入安全政策。如需詳細資訊,請參閱x-amazon-apigateway-endpoint-access-mode。
-
您的 API 可以映射到與 API 具有不同安全政策的自訂網域名稱。當您叫用該自訂網域名稱時,API Gateway 會使用 API 的安全政策來交涉 TLS 交握。如果您停用預設 API 端點,則可能會影響發起人調用 API 的方式。
-
如果您變更安全政策,更新大約需要 15 分鐘才能完成。您可以監控 API
apiStatus的 。隨著 API 更新,apiStatus是UPDATING,當它完成時,它將是AVAILABLE。當您的 API 狀態為 時UPDATING,您仍然可以叫用它。 -
API Gateway 支援所有 APIs的安全政策。不過,您只能選擇 REST APIs的安全政策。API Gateway 僅支援 HTTP 或 WebSocket APIs
TLS_1_2的安全政策。 -
您無法將 API 的安全政策從 更新
TLS_1_0為TLS_1_2。 -
有些安全政策同時支援 ECDSA 和 RSA 密碼套件。如果您將這種類型的政策與自訂網域名稱搭配使用,加密套件會符合客戶提供的憑證金鑰類型,可以是 RSA 或 ECDSA。如果您將這種類型的政策與 REST API 搭配使用,加密套件會符合與 RSA 憑證類型相容的加密套件。