适用于 VPC 对等连接的 Identity and Access Management - Amazon Virtual Private Cloud
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

适用于 VPC 对等连接的 Identity and Access Management

默认情况下,IAM 用户无法创建或修改 VPC 对等连接。要允许访问 VPC 对等连接资源,您需要创建 IAM 策略并将其附加到:

  • IAM 用户或

  • IAM 用户所属的组。

以下是用于使用 VPC 对等连接的示例 IAM 策略。

有关 Amazon VPC 操作的列表以及各个操作支持的资源和条件键,请参阅 IAM 用户指南 中的 Amazon EC2 操作、资源和条件键

创建 VPC 对等连接

以下策略仅允许用户使用标记有 Purpose=Peering 的 VPC 来创建 VPC 对等连接请求。第一条语句对 VPC 资源应用条件键 (ec2:ResourceTag)。请注意,CreateVpcPeeringConnection 操作的 VPC 资源始终为请求者 VPC。

第二条语句向用户授予创建 VPC 对等连接资源的权限,因此使用 * 通配符代替特定资源 ID。

{ "Version": "2012-10-17", "Statement":[{ "Effect":"Allow", "Action": "ec2:CreateVpcPeeringConnection", "Resource": "arn:aws:ec2:region:account:vpc/*", "Condition": { "StringEquals": { "ec2:ResourceTag/Purpose": "Peering" } } }, { "Effect": "Allow", "Action": "ec2:CreateVpcPeeringConnection", "Resource": "arn:aws:ec2:region:account:vpc-peering-connection/*" } ] }

以下策略允许 AWS 账户 333333333333 中的用户使用 us-east-1 区域中的任何 VPC 创建 VPC 对等连接,但是仅当接受对等连接的 VPC 是特定账户 (777788889999) 中的特定 VPC (vpc-11223344556677889) 时。

{ "Version": "2012-10-17", "Statement": [{ "Effect":"Allow", "Action": "ec2:CreateVpcPeeringConnection", "Resource": "arn:aws:ec2:us-east-1:333333333333:vpc/*" }, { "Effect": "Allow", "Action": "ec2:CreateVpcPeeringConnection", "Resource": "arn:aws:ec2:region:333333333333:vpc-peering-connection/*", "Condition": { "ArnEquals": { "ec2:AccepterVpc": "arn:aws:ec2:region:777788889999:vpc/vpc-11223344556677889" } } } ] }

接受 VPC 对等连接

以下策略仅允许用户接受来自 AWS 账户 444455556666 的 VPC 对等连接请求。这样有助于防止用户接受来自未知账户的 VPC 对等连接请求。第一条语句使用 ec2:RequesterVpc 条件键强制实施此策略。

该策略还向用户授予仅当 VPC 具有标签 Purpose=Peering 时才接受 VPC 对等请求的权限。

{ "Version": "2012-10-17", "Statement":[{ "Effect":"Allow", "Action": "ec2:AcceptVpcPeeringConnection", "Resource": "arn:aws:ec2:region:account:vpc-peering-connection/*", "Condition": { "ArnEquals": { "ec2:RequesterVpc": "arn:aws:ec2:region:444455556666:vpc/*" } } }, { "Effect": "Allow", "Action": "ec2:AcceptVpcPeeringConnection", "Resource": "arn:aws:ec2:region:account:vpc/*", "Condition": { "StringEquals": { "ec2:ResourceTag/Purpose": "Peering" } } } ] }

删除 VPC 对等连接

以下策略允许账户 444455556666 中的用户删除任何 VPC 对等连接,使用指定 VPC vpc-11223344556677889(处于相同账户中)的连接除外。该策略同时指定 ec2:AccepterVpcec2:RequesterVpc 条件密钥,因为 VPC 可能是原始 VPC 对等连接请求中的请求者 VPC 或对等方 VPC。

{ "Version": "2012-10-17", "Statement": [{ "Effect":"Allow", "Action": "ec2:DeleteVpcPeeringConnection", "Resource": "arn:aws:ec2:region:444455556666:vpc-peering-connection/*", "Condition": { "ArnNotEquals": { "ec2:AccepterVpc": "arn:aws:ec2:region:444455556666:vpc/vpc-11223344556677889", "ec2:RequesterVpc": "arn:aws:ec2:region:444455556666:vpc/vpc-11223344556677889" } } } ] }

在特定账户中工作

以下策略允许用户完全在特定账户中处理 VPC 对等连接。用户可以查看、创建、接受、拒绝和删除 VPC 对等连接,前提是它们都处于 AWS 账户 333333333333 中。

第一条语句允许用户查看所有 VPC 对等连接。在这种情况下,Resource 元素需要 * 通配符,因为此 API 操作 (DescribeVpcPeeringConnections) 当前不支持资源级权限。

第二条语句允许用户创建 VPC 对等连接,并允许访问账户 333333333333 中的所有 VPC 以便执行此操作。

第三条语句使用 * 通配符作为 Action 元素的一部分,以便允许执行所有 VPC 对等连接操作。条件密钥确保只能对与属于账户 333333333333 的 VPC 建立的 VPC 对等连接执行操作。例如,如果接受者或请求者 VPC 属于不同账户,则不允许用户删除 VPC 对等连接。用户无法与属于不同账户的 VPC 建立 VPC 对等连接。

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "ec2:DescribeVpcPeeringConnections", "Resource": "*" }, { "Effect": "Allow", "Action": ["ec2:CreateVpcPeeringConnection","ec2:AcceptVpcPeeringConnection"], "Resource": "arn:aws:ec2:*:333333333333:vpc/*" }, { "Effect": "Allow", "Action": "ec2:*VpcPeeringConnection", "Resource": "arn:aws:ec2:*:333333333333:vpc-peering-connection/*", "Condition": { "ArnEquals": { "ec2:AccepterVpc": "arn:aws:ec2:*:333333333333:vpc/*", "ec2:RequesterVpc": "arn:aws:ec2:*:333333333333:vpc/*" } } } ] }

在控制台中管理 VPC 对等连接

要在 Amazon VPC 控制台中查看 VPC 对等连接,用户必须拥有使用 ec2:DescribeVpcPeeringConnections 操作的权限。要使用创建对等连接页面,用户必须拥有使用 ec2:DescribeVpcs 操作的权限。这使其可以查看和选择 VPC。您可以将资源级权限应用于所有 ec2:*PeeringConnection 权限 (ec2:DescribeVpcPeeringConnections 除外)。

以下策略允许用户查看 VPC 对等连接,以及使用创建 VPC 对等连接对话框创建仅使用特定请求者 VPC (vpc-11223344556677889) 的 VPC 对等连接。如果用户尝试创建使用不同请求者 VPC 的 VPC 对等连接,则请求会失败。

{ "Version": "2012-10-17", "Statement":[{ "Effect":"Allow", "Action": [ "ec2:DescribeVpcPeeringConnections", "ec2:DescribeVpcs" ], "Resource": "*" }, { "Effect":"Allow", "Action": "ec2:CreateVpcPeeringConnection", "Resource": [ "arn:aws:ec2:*:*:vpc/vpc-11223344556677889", "arn:aws:ec2:*:*:vpc-peering-connection/*" ] } ] }