Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 用于与API网关交互的静态网站的简单轻量级授权方案+;兰姆达_Amazon Web Services_Amazon S3_Aws Lambda_Authorization - Fatal编程技术网

Amazon web services 用于与API网关交互的静态网站的简单轻量级授权方案+;兰姆达

Amazon web services 用于与API网关交互的静态网站的简单轻量级授权方案+;兰姆达,amazon-web-services,amazon-s3,aws-lambda,authorization,Amazon Web Services,Amazon S3,Aws Lambda,Authorization,我有一个简单的控制面板作为静态网站托管在AWSS3上。它只是有一些按钮,用于向API网关/Lambda端点发出AJAX POST请求,然后显示响应。此Lambda函数具有启动新EC2实例、终止某些实例以及通过SSM在现有实例上运行脚本的权限,因此此控制面板必须以某种方式进行密码保护 请注意,实际上没有传输敏感数据,因此我不认为严格要求使用TLS(我甚至不确定在s3上如何做到这一点)。但是发出的API请求需要某种授权令牌 我真的不知道在这里该做什么——像JWT这样的解决方案似乎太过分了。我只需要一

我有一个简单的控制面板作为静态网站托管在AWSS3上。它只是有一些按钮,用于向API网关/Lambda端点发出AJAX POST请求,然后显示响应。此Lambda函数具有启动新EC2实例、终止某些实例以及通过SSM在现有实例上运行脚本的权限,因此此控制面板必须以某种方式进行密码保护

请注意,实际上没有传输敏感数据,因此我不认为严格要求使用TLS(我甚至不确定在s3上如何做到这一点)。但是发出的API请求需要某种授权令牌

我真的不知道在这里该做什么——像JWT这样的解决方案似乎太过分了。我只需要一个单一的静态密码,我可以给我的朋友,让他们可以访问这个控制面板,并提出有效的要求。无需用户/注册

我认为仅仅保护站点本身并不是一个解决方案,因为API网关端点仍然是公共的(尽管可能不是——我可以将API设置为只接受来自s3站点的请求吗?)。需要在POST请求中发送一些令牌来授权每个单独的请求,并且令牌需要更改以防止重播攻击


谢谢,

有两个选项可以轻松保护Api网关:

  • 简单Api密钥:我们可以使用此密钥设置一个安全的Api。我们只需要将此键作为
    X-API-key
    传递给所有API调用。我们可以让用户输入这个
  • 用于保护Api网关的自定义授权程序。然后,用户需要输入用户id和密码,这些id和密码将作为授权标头传递,并由该自定义授权人验证

我们可以同时执行这两项操作,也可以执行这两项操作中的任何一项。

由于您只需要一个用户,您只需添加到安全api,让您的朋友输入该密钥作为登录输入,并将其作为标头传递给api网关调用。这可能是一个不错的选择。。。将CloudFront放在S3存储桶的前面,并使用basic auth:@BaluVyamajala我的意思是,这样安全吗?连接只是http,谢谢!我担心api密钥方法会不安全,是吗?s3静态站点只是http,所以API密钥不是以纯文本形式发送吗?浏览器和API网关之间的通信是https。从s3下载的唯一静态文件是http。所以,API密钥或我们用于保护API的任何其他机制都将始终是安全的!非常感谢。