适用于 VPC 对等连接的 Identity and Access Management - Amazon Virtual Private Cloud

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

默认情况下, 用户无法创建或修改 VPC 对等连接。要授予对 VPC 对等连接资源的访问权限,请将 IAM policy 附加到角等 IAM 身份。

有关 Amazon VPC 操作以及每个操作支持的资源和条件键的列表,请参阅《服务授权参考》中的 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-id:vpc/*", "Condition": { "StringEquals": { "ec2:ResourceTag/Purpose": "Peering" } } }, { "Effect": "Allow", "Action": "ec2:CreateVpcPeeringConnection", "Resource": "arn:aws:ec2:region:account-id:vpc-peering-connection/*" } ] }

以下策略授予特定 AWS 账户中的用户权限,以使用指定区域中的任何 VPC 创建 VPC 对等连接,但是仅当接受对等连接的 VPC 是特定账户中的特定 VPC 时。

{ "Version": "2012-10-17", "Statement": [ { "Effect":"Allow", "Action": "ec2:CreateVpcPeeringConnection", "Resource": "arn:aws:ec2:region:account-id-1:vpc/*" }, { "Effect": "Allow", "Action": "ec2:CreateVpcPeeringConnection", "Resource": "arn:aws:ec2:region:account-id-1:vpc-peering-connection/*", "Condition": { "ArnEquals": { "ec2:AccepterVpc": "arn:aws:ec2:region:account-id-2:vpc/vpc-id" } } } ] }

示例:接受 VPC 对等连接

以下策略授予用户权限,以接受来自特定 AWS 账户的 VPC 对等连接请求。这样有助于防止用户接受来自未知账户的 VPC 对等连接请求。语句使用 ec2:RequesterVpc 条件键强制实施此策略。

{ "Version": "2012-10-17", "Statement":[ { "Effect":"Allow", "Action": "ec2:AcceptVpcPeeringConnection", "Resource": "arn:aws:ec2:region:account-id-1:vpc-peering-connection/*", "Condition": { "ArnEquals": { "ec2:RequesterVpc": "arn:aws:ec2:region:account-id-2:vpc/*" } } } ] }

以下策略授予用户权限,以便在仅当 VPC 具有标签 Purpose=Peering 时才接受 VPC 对等请求。

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

示例:删除 VPC 对等连接

以下策略授予特定账户中的用户权限以删除任何 VPC 对等连接,使用指定 VPC (处于同一账户中)的连接除外。该策略同时指定 ec2:AccepterVpcec2:RequesterVpc 条件密钥,因为 VPC 可能是原始 VPC 对等连接请求中的请求者 VPC 或对等方 VPC。

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

示例:在特定账户中工作

以下策略授予用户权限以在特定账户中处理 VPC 对等连接。用户可以查看、创建、接受、拒绝和删除 VPC 对等连接,前提是他们都处于相同的 AWS 账户中。

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

第二条语句授予用户权限以创建 VPC 对等连接,并访问特定账户中的所有 VPC 以便执行此操作。

第三条语句使用 * 通配符作为 Action 元素的一部分,以便为所有 VPC 对等连接操作授予权限。条件密钥确保只能对与属于账户的 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:*:account-id:vpc/*" }, { "Effect": "Allow", "Action": "ec2:*VpcPeeringConnection", "Resource": "arn:aws:ec2:*:account-id:vpc-peering-connection/*", "Condition": { "ArnEquals": { "ec2:AccepterVpc": "arn:aws:ec2:*:account-id:vpc/*", "ec2:RequesterVpc": "arn:aws:ec2:*:account-id:vpc/*" } } } ] }

示例:使用控制台管理 VPC 对等连接

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

以下策略授予用户权限以查看 VPC 对等连接,并使用 Create VPC Peering Connection(创建 VPC 对等连接)对话框创建仅使用特定请求者 VPC 的 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-id", "arn:aws:ec2:*:*:vpc-peering-connection/*" ] } ] }