将 awscli 添加到实例的 AWS ec2 实例问题

AWS ec2 instance issues with adding awscli to instance

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

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

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

到航站楼。

Return

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

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

以下是我所有的网络 rule/settings,如果有人能对此提供一些见解,那将是一个活生生的救星。在此先感谢您的帮助!

完成这一步后,我将从 docker 中抓取图像并发送至 ECR。所以这是我的最后一步

Networking

ACL Outbounds ACL inbound

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

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

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

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

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

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