问题标签 [amazon-vpc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
4599 浏览

amazon-web-services - AWS VPC 路由表 -- 删除默认路由

在 AWS VPC 中,您创建的每个路由表都带有一个默认值(本地路由 10.0.0.0/16),当我希望我的 EC2 实例有另一个 EC2 实例作为默认网关时,这会导致一些问题。

例如,如果您有两个 EC2 实例,即 A(在子网 10.0.30.0/24 中)和 B(在子网 10.0.40.0/24 中),并且如果您将 A 设置为 B 的默认网关,则来自 B 的所有数据包都不会通过A. 相反,它们是通过 10.0.40.1 发送的。

我什至尝试创建一个新的路由表并添加如下路由: 0.0.0.0/0 go via A of A 的 NIC,即使这不会通过 A 路由流量

如果我在 B 上删除到 10.0.40.1 的路由,那么我将失去与 B ​​的所有连接

我的问题是:

  1. 我该怎么做才能确保来自 B 的所有数据包始终通过 A 发送?
  2. 是否可以删除 10.0.0.0/16 本地路由?
  3. 我还能做些什么来做我想做的事?
0 投票
4 回答
13636 浏览

java - 启动实例:VPC 安全组不能用于非 VPC 启动

我正在尝试在另一个区域中创建一个实例,但出现此错误:

这是我正在执行的代码。

我也尝试过,而不是使用名称“testdefault”,而是使用实际的 groupid (sg-########),但我会收到一条错误消息,指出安全组不存在(这是错误的,它确实存在)。其中,根据 API doc,如果使用非默认 VPC,您应该传递实际的 groupid,但我会收到如下错误:

如果我使用“默认”作为setSecurityGroups它将使用默认 VPC。尽管它是准确的,但它看起来不像我正在传递的 groupid。

此外,如果我注释掉setSecurityGroups代码,并setSubnetId改用并传递子网 ID,它将创建实例就好了,但它进入“默认”安全组,而不是像我想要的“testdefault”。

我想要完成的只是创建一个实例并让它使用已经存在的 VPC 组。

0 投票
1 回答
451 浏览

amazon-ec2 - VPC 到 EC2 经典路由

鉴于:

  • instance-1:us-east-1c(不在 VPC 中
  • instance-2:us-east-1c(在我的 VPC 中

有没有办法在两者之间配置一条路由,以便实例 2通过私有 IP与实例 1通信?

我目前让他们使用instance-1的公共地址通过互联网网关进行通信。

0 投票
1 回答
7505 浏览

amazon-ec2 - EC2 的 AWS IAM 权限 – 控制对特定区域的特定实例的访问

我正在尝试使用 IAM 设置组策略,以向具有特定 vpc 的特定区域的用户提供访问权限。在引用 AWS 文档时,尝试使用 vpc ID 过滤实例,因为资源标签不适用于 ec2(如果它与 EC2 一起使用,ResourceTag 会是更好的选择)。为此创建了以下规则,但没有帮助,

结果在 EC2 页面上显示“获取实例数据时发生错误”。

我可以有什么建议来解决这个问题吗?

谢谢


谢谢你回复里科:-)

不幸的是,根据我的要求,给定的政策对我不起作用。

需要授予特定区域的用户访问权限,并且用户应该有权访问基于特定资源标签或 VPC 或子网或安全组的实例。

用户不应具有启动或编辑任何内容的权限,并且用户应该能够根据上述过滤器列出实例以查看实例详细信息(只读)。

通过考虑上述方面,我已经定义了具有双重条件的类似政策,因为 ARN 不适用于我的资源。

当我使用 ARN 作为资源时,它不适用于以下格式,

我尝试使用资源标签、实例 ID、安全组和子网来过滤实例。

现在我从您的回复中了解到,目前 VPC 过滤器是不可能的。

请参考我的实例的资源标签的图像。

在此处输入图像描述

您的及时回复将不胜感激。

提前致谢!


我已经与 AWS 解决方案架构师讨论过,并给出了以下更新,

EC2 的 Describe* API 尚不能仅限于某些资源。在 EC2 资源级权限的初始版本中,我们重点关注那些创建新资源或修改现有资源的操作。有关EC2 中支持的完整操作列表,请参阅http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-policies-for-amazon-ec2.html#ec2-supported-iam-actions-resources资源级权限。

我们正在努力将对资源级访问控制的支持扩展到更多操作,但我们无法提供可用于 Describe* API 的日期。

是否支持资源级权限取决于操作,请参阅上面的链接。特别是,目前无法将 EC2 Describe* 操作限制为资源,但上述 ARN 可用于限制修改资源的操作。

IAM 策略声明的“条件”部分支持资源标签、子网、安全组和 vpc,但仅适用于某些操作 – 请参阅http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam -policies-for-amazon-ec2.html#amazon-ec2-keys用于可用密钥。但是,Describe* API 的条件不支持资源标签、子网、安全组和 vpc。


最后,我只是通过限制只有区域的用户来结束解决方法。

0 投票
2 回答
68898 浏览

amazon-web-services - VPC 中私有子网中 EC2 实例的 Amazon ELB

我正在使用 Amazon EC2,并且我想将面向 Internet 的 ELB(负载均衡器)放置到私有子网上的 2 个实例中。我将 VPC 与公共子网和私有子网一起使用。

  • 如果我只是将私有子网添加到 ELB,它不会获得任何连接。
  • 如果我将两个子网都附加到 ELB,那么它可以访问实例,但它通常会超时。(参考截图 1)
  • 如果我只附加到公有子网,那么我附加到 ELB 的实例会出现服务中断,因为我在公有子网中没有任何实例,实例计数显示为 0。(请参阅屏幕截图 2)

屏幕截图 1:连接的两个子网 连接的两个子网

屏幕截图 2:仅附加了公共子网 仅附加公共子网

我的问题实际上是对这个问题的延伸。在接受了答案中提到的所有 6 个步骤之后,我仍然感到震惊,我附加到 ELB 的实例得到了服务中断。我什至尝试在 EC2 实例和 ELB 的安全组中允许端口,但它没有帮助。

请帮忙,我对此感到头疼。

0 投票
1 回答
300 浏览

amazon-web-services - 来自 CLI 工具的 AWS EC2 默认 VPC 访问

我创建了一个 AWS 账户用于在 EC2 实例上进行测试,因此我可以访问 AWS EC2 控制台并启动一个实例,然后我对其进行自定义以满足我的需求,然后我创建了一个快照(私有 AMI)。

然后我安装了 CLI 工具以使用命令行启动它,但我的默认 VPC 与 AWS EC2 控制台上的不同,所以我无法访问我的任何实例或我的个人 AMI,我已经寻找改变它,但没有办法。

来自 Web 浏览器的 EC2 控制台:默认 VPC:vpc-9bc325fe

在命令提示符下:

$ ec2-describe-vpcs VPC vpc-384db15d 可用 172.31.0.0/16 dopt-667b6f04 默认为 true

任何人都知道如何从 vpc 切换或是否有另一种协调方式?

0 投票
2 回答
924 浏览

amazon-web-services - 9160 启动cassandra后端口未打开

我已经在 aws vpc 中的 redhat 6.4 ami 上部署了带有 2 个节点的 cassandra(1.2.15)。两个节点都在私有子网中。种子节点工作正常,但是当我在新节点中启动 cassandra 时,我的 9160 端口没有打开。我在新节点和 Listen_addess 和 rpc_addrss 选项的种子节点中给出了私有 IP。rpc_port 是 9160。现在请告诉我是什么导致了这个问题。提前致谢。

0 投票
1 回答
1544 浏览

boto - 如何使用 boto 获取路由表/acl 内容?

我正在尝试使用 boto 获取路由表和 acl 的内容,例如 Destination、target...等。我能够获取 ID 而不是内容,请提出解决此问题的方法。

0 投票
2 回答
3957 浏览

bash - Amazon 中支持 VPC 的可用区

我发现在某些区域(例如 us-east-1)中,只有一些可用区可用于创建子网(以及因此 VPC 实例)。就我而言,这些区域是 us-east-1c、-1d 和 -1e,但这些区域因帐户而异。

我正在构建一个生成子网和 VPC 实例的脚本,因此以编程方式找出哪些区域支持 VPC 会很有用,特别是因为我知道为什么区域集无法更改(或至少增长)的原因随着时间的推移。

这篇文章问的问题基本相同,但接受的答案实际上并没有提供我和那个提问者正在寻找的信息(除非 ec2-describe-availability-zones 有一些我不知道的 VPC 特定参数):亚马逊 VPC 可用性

我想出了一种可能的解决方法,即尝试使用垃圾 vpc-id 和可用区 ( ec2-create-subnet -c garbage -i 10.0.0.0/24 -z garbage) 创建一个子网。此调用的错误消息包括能够托管子网的 AZ 列表,我可以解析该输出以获取我正在寻找的信息。但是,这感觉像是一种 hack,如果我不需要的话,我不喜欢依赖错误行为和错误消息的特定格式来处理这类事情。有没有更好的办法?

更新:根据评论添加更多细节......

我对ec2-describe-availability-zonesALWAYS 的调用返回五个值:us-east-1a 到 us-east-1e,但我们只能在 1c、1d 和 1e 中创建 VPC 子网。我们在除 1b 之外的所有区域中都运行了实例,在这些区域中,我什至无法启动常规实例(它似乎正在逐步淘汰)。这个帐户在 VPC 功能发布之前就已经存在,所以我想它有点像“遗留”帐户。这可能与允许我创建子网和 VPC 实例的位置与 ec2-describe-availability-zones 返回的时间之间的差异有关。我将向 AWS 支持发布一个问题,并将在此处报告任何发现。

0 投票
1 回答
111 浏览

mysql - 从 Amazon VPC 连接到 MySQL

我有两个子网:1 个私有,1 个公共

公众包含一个 Ubuntu 网络服务器。私有包含仅使用 MySQL 的 Redhat Enterprise(端口 3306、22 开放)

我能够到sshUbuntu,然后从 Ubuntussh到 Redhat。但我不能从 Ubuntu MySQL 到 Redhat。它给了我:

这个问题是在我创建了实例的镜像并在 VPC 中创建之后开始的。