【问题标题】:AWS ec2 instance issues with adding awscli to instance将 awscli 添加到实例时出现 AWS ec2 实例问题
【发布时间】:2021-06-17 22:48:13
【问题描述】:

在我 ssh 进入我的 EC2 实例后,我一直在尝试将 AWS cli 添加到我的实例中,以便我可以将图像发送到 ECR。

我的 ec2 实例在我输入 this:: 后产生这个::

[ec2-user@ip-10-10-2-237 ~]$ curl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip"

到终端。

返回

curl: (7) Failed to connect to s3.amazonaws.com port 443: Connection timed out

我相信这与我的网络有关,但我对 AWS 和网络还很陌生,所以在这种情况下我有点迷失了。

以下是我所有的网络规则/设置,如果有人可以提供一些对此的见解,那将是一个活生生的保护者。提前感谢您的帮助!

在这一步之后,我将从我的 docker 抓取图像并发送到 ECR。所以这是我的最后一步

Networking

ACL Outbounds ACL inbound

【问题讨论】:

  • 如何连接到 EC2 实例来运行该命令?如果您使用来自 Internet 的 SSH,则该实例将位于公共子网中。因此,无法访问 Internet 可能是由于与实例关联的安全组的出站规则中的配置,或与实例使用的子网关联的网络 ACL 的配置。请在您的问题中显示这些配置。
  • 安全组问题。
  • @Manjeet 您有什么建议添加、删除或更新的规则吗?我添加和删除了许多,但仍然无法连接到互联网
  • @JohnRotenstein 我添加了 ACL 关联的屏幕截图
  • 我建议您(至少暂时)将 NACL 规则在两个方向上重置为默认的“全部允许”设置,然后重试。除非您正在创建 DMZ,否则通常没有理由配置 NACL 规则。大多数安全性都可以在安全组中实现。

标签: amazon-web-services amazon-ec2 amazon-ecs aws-cloud9


【解决方案1】:

通常不应修改网络 ACL (NACL) 的默认“全部允许”设置。虽然它们代表传统路由器,但它们可能难以配置。

相反,建议使用安全组,它比 NACL 有几个优点:

  • 它们分别适用于每个实例
  • 它们可以引用其他安全组,从而启用仅适用于特定资源对的规则
  • 它们是有状态的,这意味着可以向允许的传入连接发送响应,而无需定义出站规则

仅当存在特定的安全需求时才需要 NACL,例如定义 DMZ 或非常严格地锁定访问。由于 NACL 是有状态的,因此必须在两个方向上定义规则。这使得它们更难配置并且更容易导致问题。

因此,我建议将 NACL 保留为默认的“全部允许”设置,并使用安全组来控制访问。

【讨论】:

    【解决方案2】:

    我假设您的存储桶是私有的?这意味着您需要授权才能访问该存储桶中的对象。 如果使用 curl,则在 curl 命令中传递 Authorization 标头。我认为您可以使用 IAM 访问密钥来形成您的授权令牌。您还可以为该对象创建一个预签名的 url。使用预签名的 url,您无需传递 Authorization 标头,因为它已嵌入该 url。

    【讨论】:

    • 你指的是我创建的S3存储桶吗?
    • 好吧,我的错。出于某种原因,我认为这是一个身份验证问题。未读取连接超时。无论如何,您的 ec2 实例必须能够访问 s3 端点 s3.amazonaws.com。如果您的实例位于私有子网中,这意味着您需要 NAT 网关或 VPC 终端节点。如果您的实例是公共实例,则它只需要 Internet 网关,尽管出于数据隐私的原因建议使用 VPC 端点到 s3 端点。
    • 我相信我有一个 VPC 端点和 S3 端点作为 vpc 的 NAT 网关,不确定我是否需要两者。
    猜你喜欢
    • 1970-01-01
    • 2022-01-22
    • 1970-01-01
    • 2020-04-29
    • 2022-11-24
    • 1970-01-01
    • 2020-08-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多