Amazon web services 如何在网站和移动应用程序中保护API网关?

Amazon web services 如何在网站和移动应用程序中保护API网关?,amazon-web-services,security,aws-api-gateway,Amazon Web Services,Security,Aws Api Gateway,我们正在使用React创建一个无服务器网站,并将为其创建移动应用程序。 我们正在使用API网关来访问AWS服务,我们的网站将被所有人在没有登录或任何安全性的情况下使用。关于如何保护此API,我有两个问题 对于网站,我只从我们的网站设置API的跨源访问。这足够安全吗?我还有别的办法可以保证吗 对于移动应用程序,这正是我遇到的问题,我如何保护将由随机用户使用的移动应用程序的API 由于需要公开网站和API,我建议它通过AWS CloudFront从同一来源公开web应用程序和API(如果将react

我们正在使用React创建一个无服务器网站,并将为其创建移动应用程序。 我们正在使用API网关来访问AWS服务,我们的网站将被所有人在没有登录或任何安全性的情况下使用。关于如何保护此API,我有两个问题

  • 对于网站,我只从我们的网站设置API的跨源访问。这足够安全吗?我还有别的办法可以保证吗
  • 对于移动应用程序,这正是我遇到的问题,我如何保护将由随机用户使用的移动应用程序的API

  • 由于需要公开网站和API,我建议它通过AWS CloudFront从同一来源公开web应用程序和API(如果将react应用程序存储在S3中,您可以将/API映射到API网关,并将其余路径映射到S3)

    您在安全方面获得的优势是,您可以将AWS WAF配置为AWS Cloudfront,从而可以防止几种常见的威胁


    注意:将API网关集成到CloudFront时,请确保使用CloudFront的API密钥(使用源标题中的API密钥)访问API网关,以防止API网关从外部直接访问。

    因为需要公开网站和API,我建议它通过AWS CloudFront从同一来源公开web应用程序和API(如果将react应用程序存储在S3中,则可以将/API映射到API网关,并将其余路径映射到S3)

    您在安全方面获得的优势是,您可以将AWS WAF配置为AWS Cloudfront,从而可以防止几种常见的威胁


    注意:将API网关集成到CloudFront时,请确保使用CloudFront的API密钥(使用源站标头中的API密钥)访问API网关,以防止API网关从外部直接访问。

    仅设置跨源站是好的,但还不够

    您可以使用保护API网关端点。签名版本4是向HTTP发送的AWS请求添加身份验证信息的过程。 简而言之,它用于验证发送到API的请求

    您可以使用yaml或通过控制台设置AWS签名V4。在前端,在网站上,您可以使用AWS Amplify library签署请求。 查看如何在前端使用AWS Amplify使用AWS签名V4对API网关请求进行签名


    除了AWS签名V4之外,您还可以设置自定义授权程序来验证请求。查看中有关如何为API配置AWS_IAM或Lambda授权程序的IAM权限和客户授权人部分。

    仅设置交叉源是好的,但还不够

    您可以使用保护API网关端点。签名版本4是向HTTP发送的AWS请求添加身份验证信息的过程。 简而言之,它用于验证发送到API的请求

    您可以使用yaml或通过控制台设置AWS签名V4。在前端,在网站上,您可以使用AWS Amplify library签署请求。 查看如何在前端使用AWS Amplify使用AWS签名V4对API网关请求进行签名


    除了AWS签名V4之外,您还可以设置自定义授权程序来验证请求。有关如何为API配置AWS_IAM或Lambda Authorizer的信息,请查看的IAM权限和客户授权人部分。

    我是这方面的初学者,这可能是一个很小的问题。但是有什么特别的原因导致投票失败吗?我是一个初学者,这可能是一个微不足道的问题。但投票失败有什么特别的原因吗?