标签: amazon-vpc

如何在Amazon Virtual Private Cloud上设置网络ACL?

我已经建立了亚马逊虚拟私有云(VPC).在VPC内部我有2个网络,我在其中创建实例.出于安全原因,我想在这些网络上放置一些网络访问控制列表(网络ACL),除了机器防火墙.在亚马逊示例之后,我有一个公共网络(暴露于互联网访问)10.0.0.0/24和3个私人网络10.0.1.0/24,10.0.2.0/24,10.0.3.0/24.它们之间的流量被路由.


所以对于网络10.0.1.0/24作为ACL,我把它:

Inbound:
10.0.0.0/24 port 80 (HTTP)
10.0.0.0/24 port 22 (SSH)
10.0.2.0/24 port 3306 (MySql)
10.0.3.0/24 port 3306 (MySql)

Outbound
ALL ALL
Run Code Online (Sandbox Code Playgroud)

对于网络10.0.2.0/24和10.0.3.0/24:

Inbound 
10.0.1.0/24 port 3306 (MySql)

Outbound
ALL ALL
Run Code Online (Sandbox Code Playgroud)

对于此处的公共网络10.0.0.0/24,我有一个公开的负载均衡器,它将流量重定向到专用网络10.0.1.0/24,其中应用程序通过HTTP进行响应:

Inbound
0.0.0.0/0 port 80 (HTTP)
0.0.0.0/0 port 443 (HTTPS)
0.0.0.0/0 port 22 (SSH)

Outbound
ALL ALL
Run Code Online (Sandbox Code Playgroud)

问题是,当我将这些规则付诸行动时,所有流量都会冻结并且应用程序无法使用.发生了什么?难道我做错了什么?

networking acl traffic amazon-web-services amazon-vpc

9
推荐指数
1
解决办法
9004
查看次数

在CloudFormation模板中以编程方式生成子网CIDR块(或将整数添加到一起)

我们正在调整我们的应用程序CloudFormation模板以使用VPC.在此模板中,我们需要以编程方式生成用于VPC子网的CIDR块,以确保它们不会在CloudFormation堆栈之间发生冲突.

我最初的计划是通过将字符串连接在一起来生成CIDR,例如:

"ProxyLoadBalancerSubnetA" : {
  "Type" : "AWS::EC2::Subnet",
  "Properties" : {
    "VpcId" : { "Ref" : "Vpc" },
    "AvailabilityZone" : "eu-west-1a",
    "CidrBlock" : { "Fn::Join" : [ ".", [ { "Ref" : "VpcCidrPrefix" }, "0.0/24" ] ] }
  }
},
Run Code Online (Sandbox Code Playgroud)

然而,在进一步考虑之后,我们需要使用单个VPC,而不是为每个堆栈使用VPC.

AWS限制VPC使用最大的/16CIDR块(我们已经要求提高此限制,但显然不可能).这意味着我们不再可能使用此连接方法,因为我们的每个堆栈都需要总共超过255个地址的子网.

我想在运行中生成CIDR块,而不必将它们定义为CloudFormation模板的参数,

我有一个想法是每个堆栈都有一个"基本整数",并为每个子网的CIDR块添加.

例如:

    "CidrBlock" : { "Fn::Join" : [ ".", [ { "Ref" : "VpcCidrPrefix" }, { "Fn::Sum", [ { "Ref" : "VpcCidrStart" }, 3 ] }, "0/24 ] ] }
Run Code Online (Sandbox Code Playgroud)

其中VpcCidrStart是一个整数,用于设置第三个CIDR八位字节应在脚本中开始的值,并且3是子网号. …

cidr amazon-web-services aws-cloudformation amazon-vpc

9
推荐指数
2
解决办法
3168
查看次数

同一个安全组中的实例可以以任何方式相互通信吗

Amazon VPC 中相同安全组中的实例可以以任何方式相互通信吗

amazon-vpc

8
推荐指数
3
解决办法
4153
查看次数

AWS DMS 与 RDS 上的 Postgresql 的连接问题

我有 2 个 Aws RDS 实例(在 Postgresql 上运行)。两者都在不同的帐户和不同的地区。我想使用 AWS DMS 在它们之间设置数据复制。我尝试过进行 VPC 对等互连。我观看了以下视频以启用 VPC 对等互连:-

https://www.youtube.com/watch?v=KmCEFGDTb8U

问题:- 当我尝试创建 AWS DMS 服务时,我为源添加了主机名、用户名和密码等(存在于其他账户上),当我点击 时Test Connection,出现以下错误。

Test Endpoint failed: Application-Status: 1020912, Application-Message: Failed to connect Network error has occurred, Application-Detailed-Message: RetCode: SQL_ERROR SqlState: 08001 NativeError: 101 Message: [unixODBC]timeout expired ODBC general error.
Run Code Online (Sandbox Code Playgroud)

Test Connection令我惊讶的是,当我点击同一账户中的目标 RDS 实例时,我收到了类似的错误。IE:-

Test Endpoint failed: Application-Status: 1020912, Application-Message: Cannot connect to ODBC provider Network error has occurred, Application-Detailed-Message: RetCode: SQL_ERROR SqlState: 08001 NativeError: 101 Message: [unixODBC]timeout …
Run Code Online (Sandbox Code Playgroud)

postgresql amazon-web-services amazon-rds amazon-vpc aws-dms

8
推荐指数
1
解决办法
1万
查看次数

如何在 AWS 的 VPC 中刷新 DNS 条目?

我最近将 VPC 端点添加到了我的 CloudFormation 堆栈中。然后我删除了我的堆栈并尝试重新创建它。

当我尝试重新创建它时,出现以下错误:

private-dns-enabled cannot be set because there is already a conflicting DNS domain for secretsmanager.us-east-2.amazonaws.com in the VPC vpc-63170e0b (Service: AmazonEC2; Status Code: 400; Error Code: InvalidParameter; Request ID: b7d28d81-c2c0-4f44-9642-f22171cf513d)
Run Code Online (Sandbox Code Playgroud)

我怀疑错误在这里是因为 VPC 的私有 DNS 仍然有上次创建堆栈时的条目。

有没有办法从 VPC 的私有 DNS 中手动删除条目?

dns amazon-web-services aws-cloudformation amazon-vpc

8
推荐指数
1
解决办法
2975
查看次数

CodeBuild 找不到目标 Internet 网关的 0.0.0.0/0 目标

我已经为此苦苦挣扎了几个小时。因此,我创建了我的 VPC 以及 4 个不同的子网。前三个连接到常规 Internet 网关。最后一个连接到 NAT 网关(以 0.0.0.0/0 作为目标)。我的 CodeBuild 项目设置为使用此 VPC 和最后一个子网。

当我在 CodeBuild 项目环境中单击“验证 VPC 设置”时,我收到以下警告:

“ID 为*的 VPC可能没有互联网连接。CodeBuild 找不到子网 ID 为 * 的目标互联网网关的 0.0.0.0/0 目的地。”

如果我尝试运行 CodeBuild 项目,它将超时,因为它无法访问 Internet 并且无法从 CodeCommit 下载源...

我在这里缺少什么?我的子网的路由表附加到 NAT 网关,目标是 0.0.0.0/0,所以上面的错误消息对我没有任何意义。

谢谢!

nat subnet amazon-web-services amazon-vpc aws-codebuild

8
推荐指数
1
解决办法
1651
查看次数

NAT 网关和阻止入站流量的 ACL 之间有什么区别

我阅读了有关 aws VPC 的内容,并尝试寻找使用 NAT 的任何意义。如果我理解正确的话,当我们拥有具有两个子网(公共子网和私有子网)的 VPC 时,就会使用 NAT。如果我们想允许私有子网向全球网络发出请求(例如软件更新),但阻止所有入站流量 - 我们可以在公共子网中设置 NAT 并将该 NAT 与私有子网连接。

在此输入图像描述

但同时我们可以为私有子网创建 ACL 并阻止所有入站流量。因此,如果需要,它将能够下载软件更新。

那么,如果以上都是正确的,为什么我们需要 NAT?

amazon-web-services amazon-vpc

8
推荐指数
1
解决办法
2712
查看次数

AWS Internet 网关的公共 IP

我想知道 AWS 互联网网关的公共 IP。我的客户需要它来做 IP 白名单。我怎么才能得到它?我的实例直接面向 Internet,没有通过任何 NAT 网关路由。根据我的理解,公共IP应该是连接到我的客户端的EC2实例的弹性IP。任何人都可以确定我的理解吗?

谢谢

cloud networking amazon-web-services amazon-vpc

8
推荐指数
1
解决办法
3057
查看次数

ECS Fargate 1.4 不使用 VPC 终端节点

这是一个奇怪的现象。我有一个在私有子网中使用 Fargate v1.4 的 ECS 服务。由于任务无法访问 Internet,因此我必须配置 VPC 端点,以便任务可以从 AWS 服务加载所需的内容(例如,来自 SSM 的机密、来自 ECR 的图像等)。 这一切都很好,而且工作得很好,直到它失败了。 我不确定发生了什么变化,但一个周末我注意到我的服务器不再运行,并且我注意到控制台中出现此错误:

ResourceInitializationError: unable to pull secrets or registry auth: execution resource retrieval failed: unable to retrieve secrets from ssm: service call has been retried 1 time(s): RequestError: send request failed caused by: Post https://ssm.us-ea...
Run Code Online (Sandbox Code Playgroud)

当我配置 VPC 端点时,这看起来很熟悉,因此我通过控制台以确保没有发生任何变化。据我所知,配置看起来正确(安全组具有正确的入口/出口规则,配置了正确的端点并连接到我的服务器所在的 VPC,所有内容都在同一个可用区中,IAM 角色可以访问密钥)。

作为一个实验,我删除了尝试从任务定义中加载的秘密,看看会发生什么。当新服务器启动时,我看到了类似的错误,但这次是从 ECR 加载图像:

ResourceInitializationError: unable to pull secrets or registry auth: execution resource retrieval failed: unable to retrieve ecr registry auth: service call has been …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services amazon-vpc aws-fargate

8
推荐指数
2
解决办法
9287
查看次数

VPC 中的 Elastic Beanstalk

我在 AWS Elastic Beanstalk 中制作并部署了 Django 应用程序。它通过 EBS 控制台连接到 RDS 中的 Postgres DB。

当我在 EBS 中单击configuration->时network,我看到:“此环境不是 VPC 的一部分。

如何使其成为 VPC 的一部分?谢谢!

注意:对此非常陌生;)

amazon-web-services amazon-vpc amazon-elastic-beanstalk

8
推荐指数
1
解决办法
5468
查看次数