使用 AWS SAM 範本控制API存取 - AWS Serverless Application Model

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

使用 AWS SAM 範本控制API存取

控制 API Gateway 的存取APIs有助於確保您的無伺服器應用程式安全無虞,而且只能透過您啟用的授權存取。您可以在 AWS SAM 範本中啟用授權,以控制誰可以存取您的 API Gateway APIs。

AWS SAM 支援多種控制API閘道存取的機制APIs。AWS::Serverless::HttpApiAWS::Serverless::Api資源類型之間的支援機制集不同。

下表摘要說明每個資源類型支援的機制。

控制存取的機制 AWS::Serverless::HttpApi AWS::Serverless::Api
Lambda 授權人
IAM權限
Amazon Cognito 使用者集區 ✓ *
API鑰匙
資源政策
OAuth2.0/ 授權JWT人

* 您可以使用 Amazon Cognito 做為具有AWS::Serverless::HttpApi資源類型的JSON網頁權杖 (JWT) 發行者。

選擇控制存取的機制

您選擇用來控制API閘道存取的機制APIs取決於幾個因素。例如,如果您的綠地專案未設定授權或存取控制,則 Amazon Cognito 使用者集區可能是您的最佳選擇。這是因為當您設定使用者集區時,您也會自動設定驗證和存取控制。

不過,如果您的應用程式已設定驗證,則使用 Lambda 授權者可能是您的最佳選擇。這是因為您可以呼叫現有的驗證服務,並根據回應傳回原則文件。此外,如果您的應用程式需要使用者集區不支援的自訂驗證或存取控制邏輯,則 Lambda 授權者可能是您的最佳選擇。

選擇要使用的機制之後,請參閱中範例的對應章節,瞭解如何使用 AWS SAM 來設定應用程式以使用該機制。

自訂錯誤回應

您可以使用 AWS SAM 來自訂某些API閘道錯誤回應的內容。只有資AWS::Serverless::Api源類型支援自訂API閘道回應。

如需API閘道回應的詳細資訊,請參閱閘道開發人員指南中的API閘道回應。API如需自訂回應的範例,請參閱自訂回應範例 AWS SAM

範例