AWS - API Gateway Lambda Authorizer
API Gateway Lambda Authorizer
這是一種組合,由 lambda function 負責驗證 API 請求身份,驗證成功回傳 IAM Policy 或 Allow/Deny decision 控制 API Gateway 是否允許進入後端 Lambda/Service
間單說: API Gateway 問 Lambda 此 request 是否可以進入,Lambda 不處理資料業務,只負責身份與授權

Authorizer 兩種類型
| Type | Token-based | Request parameter-based |
|---|---|---|
| Name | Token Authorizer | Request Authorizer |
| 驗證輸入來源 | Authorization Header / JWT | Header / Query String / Stage variables |
| 使用場景 | JWT/OAuth2/Cognito token | 客制多屬性驗證(IP/Device ID/Tenant ID) |
| 效能 | 較快 | 較多資源需處理 |
- TOKEN Authorizer Pattern 常用於
- Cognito JWT Tokens
- OAuth2 access token
- Internal Signed token
- REQUEST Authorizer Patter 適合
- Multi-tenant 驗證
- 根據客制 metadata 判斷授權
- 多欄位驗證(header + query)
範例
- x-tenant-id
- device-id
回傳格式(IAM Policy Example)
Lambda Authorizer 回傳 IAM Policy
1 | { |
context 可以傳入後端 Lambda 作細粒度的存取控制
Cache 效能提升
- Authorizer TTL: 可 Caching 授權結果(預設 300s)
- 決策重複利用: 大幅降低 Lambda Authorizer 成本與延遲
Lambda Authorizer VS Cognito
| Lambda Authorizer | Cognito Authorizer |
|---|---|
| 自行驗證 Token/邏輯客制化 | 自動驗證 Cognito JWT |
| 適合 OAuth2 多來源身份提供者 | 適合 Mobile/Web w/Cognito |
| 較複雜/高維護成本 | 無需維護,內建 Scaling |
- 客制 RBAC/External IdP/ Legacy Token -> Lambda Authorizer
- Cognito User pool -> Cognito Authorizer
Reference
- AWS - Use API Gateway Lambda authorizers