跨源资源共享(CORS) 是网络浏览器使用的一种基本安全机制,允许从域、协议或端口不同的源访问服务器资源。 在 API 领域,尤其是在使用 AWS API Gateway 时,配置 CORS 对于方便来自不同域的网络应用程序的访问,同时降低潜在的安全风险至关重要。
本文旨在提供有关 CORS 和通过 CloudFormation 集成 AWS API Gateway 的全面指导。它将强调 CORS 的重要性、包括承载令牌在内的授权开发,以及选择可选方法代替标准 GET 请求的优势。
CORS 为何重要
在开发用于跨域访问的应用程序接口时,CORS 对于减少未经授权的访问至关重要。通过划定允许与您的应用程序接口交互的特定域,您可以保护您的资源免受 跨站请求伪造(CSRF)攻击 ,同时允许有效的跨源请求。
CORS 的优点
- 安全性 :CORS 在规范哪些外部域可以访问您的资源方面起着至关重要的作用,从而保护您的应用程序接口免受有害的跨源请求的影响。
- 灵活性 :CORS 允许您为不同来源定义不同级别的访问(如
GET
、POST
、DELETE
等方法),从而根据您的具体要求提供适应性。 - 用户体验 :实施 CORS 可让用户无缝访问多个域的资源,而不会遇到与访问相关的问题,从而增强用户体验。
在继续设置 CORS 之前,我们需要了解使用可选方法而非 GET
的必要性。这种比较有助于快速比较在 API 请求中使用 GET
与可选方法 (PUT
、 POST
、 OPTIONS
)的不同之处。
比较 POST 和 PUT 方法的目的和行为:
使用 CloudFormation 在 AWS API 网关中设置 CORS
在 AWS API Gateway 中配置 CORS 可通过 AWS 管理控制台手动完成;不过,使用 CloudFormation 自动完成此过程可增强可扩展性和一致性。
以下是详细的分步指南:
1.在 CloudFormation 中定义 API 网关
首先在 CloudFormation 模板中定义 API 网关:
2.创建资源和方法
定义 API 的资源和方法。例如,为 /items
创建一个资源和一个 GET
方法:
3.配置 CORS
接下来,通过指定必要的标头为您的 API 方法配置 CORS:
纳入授权
在 API 方法中实施授权可确保只有经过身份验证和授权的用户才能访问特定资源。AWS API Gateway 提供各种授权选项,包括 AWS Lambda 授权器、Cognito 用户池和 IAM 角色。
实施后,API 在 AWS 中的外观如下:
整合请求:
API 网关文档可在此处找到: 亚马逊 API 。
结论
通过 CloudFormation 建立 CORS 并集成 AWS API Gateway 可为管理 API 访问提供高效且可重复的方法。通过精心设置 CORS,您可以确保 API 保持安全 ,并且只有经过许可的来源才能访问。通过限制只有获得授权的用户才能访问,结合授权增加了一层安全性。 此外,评估利用可选方法而非 GET 请求的优势,可确保您的应用程序接口既能保持安全性,又能保持管理复杂操作所需的灵活性。
实施这些配置不仅能增强应用程序接口的安全性和性能,还能提升终端用户的整体体验,促进无缝跨源交互和敏感信息的适当管理。
原文链接: https://dzone.com/articles/setting-up-cors-and-integration-on-aws-api-gateway
Keyword: api集成管理