限制对 EC2 上托管的 RShiny 仪表板的访问

问题描述 投票:0回答:1

我已经在我的计算机上本地构建并测试了 RShiny 仪表板。我想在 AWS EC2 实例上托管此仪表板。我很乐意启动实例并传输文件。我关心的是如何限制我组织中的用户对此仪表板的访问。此外,我想要一个信息更丰富的网址(我认为这意味着深入研究 DNS,但不知道如何去做)。

r amazon-web-services amazon-ec2
1个回答
0
投票

由于您的帖子没有提供有关您在 AWS 中可能(或可能没有)任何现有基础设施的详细信息,因此我将假设没有基础设施,并向您提供我用来托管全新应用程序的高级方法:

  • 构建一个 VPC 来托管您的实例。
  • 创建一个 Route53 公共托管区域。您可以对已拥有的域执行此操作,或者您可以直接通过 AWS 购买域
  • 在 Route53 托管区域中,为您要用于指向负载均衡器的 Shiny 应用程序的 DNS 名称创建记录
  • 我建议为您的负载均衡器添加一个安全组,以限制传入组织的出口 IP 的流量(并且向实例本身添加一个安全组,仅允许来自负载均衡器的流量)。
  • 使用 AWS ACM 服务为您分配给应用程序的 DNS 名称创建证书
  • ,将该证书分配给您的应用程序正在侦听的负载均衡器侦听器,并将负载均衡器上面向公众的端口 443 映射到您的应用程序。通过目标组在 EC2 上应用程序的端口。禁用其他端口上的传入流量。 对于 Shiny 应用程序本身,您需要添加某种授权/身份验证(即 AuthN/AuthZ)。我会看看
  • shinyauthr
  • 。如果这不起作用,请尝试另一个(我不是一个闪亮的程序员,所以我不能在这里提供太多内容,但请不要跳过这一点 - 您的应用程序需要这种安全性)。
  • 这只是一本高级剧本。在整个过程中,您需要解决大量细节(例如 VPC 网络设计 [CIDR、子网大小、使用的可用区数量等]、如何管理 EC2 [创建 AMI、使用一个空的 AMI,只需通过 SSH 连接您的文件,将文件 git 克隆到实例上,等等])。

此外,本文并未讨论更先进的资源管理技术,例如基础设施即代码方法(例如 Cloudformation、Terraform 等),但这是您应该考虑的事情。

最后,虽然您的问题主要集中在 AWS 上,但请务必考虑应用程序本身中 AuthN/AuthZ 的更深层次方面,特别是如果此仪表板托管敏感数据。

© www.soinside.com 2019 - 2024. All rights reserved.