【问题标题】:AWS Ec2 Access which is private VPCAWS Ec2 Access 是私有 VPC
【发布时间】:2021-03-29 08:13:30
【问题描述】:

这更多是架构问题,而不是编码问题。 如果我在错误的地方请原谅我 我有一个在私有 VPC 中运行的 Ec2 实例,我们将来会在那里 将部署 PII 数据,但绝不意味着我们可以通过互联网访问它。 但是我们需要在 docker 中安装 ETL 工具(Airflow、docker、nifi、python 等) 当然需要从我当地的公司 vpc ssh 进入。

我认为有两种方法

    1. To create an another EC2 in public subnet and install all our tool there 
       and call the VPC EC2 from this one. 
       So that I can move the PII data to S3 through private Endpoint.
    
    Cons: Does not it still raise the security concern as the EC2(ETL) is still
    in internet where from one can access the PII data in second ec2.

另一种选择

2. To create the Ec2 in public and install all tools and then 
    finally change it into private VPC.
    Cons: in case if tool crash or there is any change needed then will have to 
    move it back to public which again does not look proper way of handling it.

我试图搜索互联网以获取有关它的任何教程或培训。 但是找不到。

任何建议都将受到高度赞赏。

【问题讨论】:

    标签: amazon-web-services amazon-ec2 amazon-vpc


    【解决方案1】:

    如果你不想,你根本不需要使用互联网。我假设无法访问互联网是指这是两种方式 - 无法从互联网访问实例,实例也无法连接互联网(即没有 NAT 或任何其他代理)。

    几种方法可以做到这一点。一种方法如下:

    1. 准备自定义 AMI,其中包含您需要的所有安装包和软件。
    2. 创建没有任何公共子网的私有 VPC
    3. VPC 接口端点添加到 S3、AWS System Manager、ECR(用于存储您的私有 docker 映像)和您可能需要的其他 AWS 服务的 VPC,例如知识管理系统。
    4. 从私有 VPC 中的自定义 AMI启动您的实例。
    5. 使用 SSM 会话管理器“SSH”到实例,无需任何 Internet 访问。

    【讨论】:

    • @danD 没问题。您需要为 SSM 会话管理器设置实例角色并添加必要的 vpc 接口端点。不确定你知道怎么做,或者应该为此添加一些链接?
    • 感谢您的建议.. 我找到了一些教程并创建并启动了 SSM 以访问这似乎我现在可以做.. 但是因为我现在使用 SSM 角色 (AmazonSSMManagedInstanceCore).. 我是想知道我将如何使用存储桶策略 IAM 来访问我曾经允许 s3 存储桶访问的 S3 存储桶。我注意到一个 ec2 只允许一个 IAM 角色。请提出您的建议..
    • @danD 您可以将实例角色的 ARN 作为原则添加到您的存储桶策略中。
    • 最后一个问题(希望如此).. 因为我要安装气流,所以有时需要更新管道.. 我们如何做到这一点是在 dag 文件夹中添加/更新 python 代码气流泊坞窗应用程序..我是否能够通过 SSM 在 EC2 中添加脚本.. 更不用说我还将 EBS 安装到 EC2 中。 EBS 将使用 KMS 加密。非常感谢您提供的所有建议
    • @danD 我不熟悉气流。但是您可以先将代码存储在 S3 中,然后在使用 SSM 连接到实例后使用 aws cli 复制到该实例。您还可以通过 CodeDeploy 或 SSM Run Command 自动执行所有这些操作。 EBS 加密是透明的 - AWS 负责处理。您无需为它在 VPC 中执行任何操作。
    【解决方案2】:

    我认为这两种方法本质上都是次优的

    如果您只想避免将计算实例暴露在互联网上,并且您的设置是基于 docker 的,只需使用 ECS 或 Sonatype Nexus(在另一台服务器上)设置您自己的 docker 存储库,然后上传您的 docker那里的图像并让该节点使用该 ECS/Nexus 作为其 docker 注册表。

    这样,您可以在保持安全合规性的同时免费访问所有作为 docker 镜像公开的资源。

    【讨论】:

    • 感谢这个看起来可行,我现在要尝试一下。但是你能否建议如何通过 ssh 进入这个 Ec2。至于测试目的,即使在 Ec2 的安全性中,我也将端口 22 打开。但是当我尝试 ssh 时,它仍然显示超时错误。
    • 如果您没有分配公共 IP 地址,或者将该实例放在未连接到 Internet 的私有子网上(它在 VPC 中没有 Internet 网关),您将无法连接它在外部没有某种中介机器(堡垒主机)
    猜你喜欢
    • 2019-09-04
    • 2020-09-07
    • 2018-08-08
    • 1970-01-01
    • 2022-12-23
    • 2020-03-22
    • 2017-08-08
    • 2020-12-17
    • 1970-01-01
    相关资源
    最近更新 更多