Amazon Virtual Private Cloud
Guía del usuario

Control del acceso a los recursos de Amazon VPC

Las credenciales de seguridad le identifican en los servicios de AWS y permiten realizar una utilización ilimitada de sus recursos de AWS como, por ejemplo, los recursos de Amazon VPC. Puede utilizar AWS Identity and Access Management (IAM) para permitir que otros usuarios, servicios y aplicaciones utilicen sus recursos de Amazon VPC, sin necesidad de compartir sus credenciales de seguridad. Asimismo, puede optar por permitir la utilización completa o limitada de sus recursos otorgando a los usuarios permiso para utilizar determinadas acciones de la API de Amazon EC2. Algunas acciones de la API admiten permisos de nivel de recursos, lo que le permite controlar los recursos que los usuarios podrán crear o modificar.

importante

Actualmente, no todas las acciones de la API de Amazon EC2 admiten los permisos de nivel de recurso. Si una acción de la API de Amazon EC2 no admite este tipo de permisos de nivel de recurso, puede conceder permisos a los usuarios para que la utilicen, pero tendrá que usar un * (asterisco) para el elemento de recurso de la instrucción de la política. Para obtener un ejemplo de cómo realizar esta acción, consulte la siguiente política de ejemplo: 1. Administración de una VPC Más adelante se añadirá compatibilidad con acciones de API adicionales y ARN para recursos de Amazon EC2 adicionales. Para obtener información acerca de los ARN que puede utilizar con cada acción de API de Amazon EC2, así como las claves de condición admitidas para cada ARN, consulte la sección sobre recursos y condiciones admitidos para las acciones de la API de Amazon EC2 en la Guía del usuario de Amazon EC2 para instancias de Linux.

Para obtener más información acerca de la creación de políticas de IAM para Amazon EC2, los recursos admitidos para las acciones de la API de EC2, así como políticas de ejemplo para Amazon EC2, consulte Políticas de IAM para Amazon EC2 en la Guía del usuario de Amazon EC2 para instancias de Linux.

Políticas de ejemplo para la CLI o el SDK de AWS

Los siguientes ejemplos muestran instrucciones de política que puede utilizar para controlar los permisos que los usuarios de IAM tienen en Amazon VPC. Estos ejemplos están diseñados para usuarios que utilizan AWS CLI o un SDK de AWS.

Para obtener políticas de ejemplo para el uso de ClassicLink, consulte Políticas de ejemplo para trabajar con la AWS CLI o un SDK de AWS en la Guía del usuario de Amazon EC2 para instancias de Linux.

1. Administración de una VPC

La política siguiente concede a los usuarios permiso para crear y administrar su VPC. Puede adjuntar esta política a un grupo de administradores de redes. El elemento Action especifica las acciones de la API relacionadas con VPC, subredes, gateways de Internet, gateways de cliente, gateways privadas virtuales, conexiones de Site-to-Site VPN, tablas de ruteo, direcciones IP elásticas, grupos de seguridad, ACL de red y conjuntos de opciones de DHCP. La política también permite al grupo ejecutar, detener, iniciar y terminar instancias. También permite al grupo mostrar los recursos de Amazon EC2.

La política utiliza caracteres comodín para especificar todas las acciones para cada tipo de objeto (por ejemplo, *SecurityGroup*). De manera alternativa, puede especificar cada acción de manera explícita. Si utiliza caracteres comodín, tenga en cuenta que si añadimos nuevas acciones cuyos nombres coincidan con alguna de las cadenas especificadas con caracteres comodín en la política, esta concederá al grupo acceso a las nuevas acciones de manera automática.

El elemento Resource utiliza un carácter comodín para indicar que los usuarios pueden especificar todos los recursos con estas acciones de API. El carácter comodín * también es necesario en los casos en los que la acción de la API no admite permisos de nivel de recurso.

{ "Version": "2012-10-17", "Statement":[{ "Effect":"Allow", "Action":["ec2:*Vpc*", "ec2:*Subnet*", "ec2:*Gateway*", "ec2:*Vpn*", "ec2:*Route*", "ec2:*Address*", "ec2:*SecurityGroup*", "ec2:*NetworkAcl*", "ec2:*DhcpOptions*", "ec2:RunInstances", "ec2:StopInstances", "ec2:StartInstances", "ec2:TerminateInstances", "ec2:Describe*"], "Resource":"*" } ] }

2. Política de solo lectura de Amazon VPC

La política siguiente concede a los usuarios permiso para especificar sus VPC y sus componentes. De este modo, los usuarios no podrán crear, actualizar ni eliminar VPC o componentes.

{ "Version": "2012-10-17", "Statement":[{ "Effect":"Allow", "Action":["ec2:DescribeVpcs", "ec2:DescribeSubnets", "ec2:DescribeInternetGateways", "ec2:DescribeEgressOnlyInternetGateways", "ec2:DescribeVpcEndpoints", "ec2:DescribeNatGateways", "ec2:DescribeCustomerGateways", "ec2:DescribeVpnGateways", "ec2:DescribeVpnConnections", "ec2:DescribeRouteTables", "ec2:DescribeAddresses", "ec2:DescribeSecurityGroups", "ec2:DescribeNetworkAcls", "ec2:DescribeDhcpOptions", "ec2:DescribeTags", "ec2:DescribeInstances"], "Resource":"*" } ] }

3. Política personalizada de Amazon VPC

La política siguiente concede a los usuarios permiso para lanzar, detener, iniciar y terminar instancias, así como para describir los recursos disponibles para Amazon EC2 y Amazon VPC.

La segunda instrucción de la política ofrece protección en caso de que cualquier otra política conceda al usuario acceso a un mayor rango de acciones de API al denegar permisos de manera explícita.

{ "Version": "2012-10-17", "Statement":[{ "Effect":"Allow", "Action":["ec2:RunInstances", "ec2:StopInstances", "ec2:StartInstances", "ec2:TerminateInstances", "ec2:Describe*"], "Resource":"*" }, { "Effect":"Deny", "NotAction":["ec2:RunInstances", "ec2:StopInstances", "ec2:StartInstances", "ec2:TerminateInstances", "ec2:Describe*"], "Resource":"*" } ] }

4. Lanzamiento de instancias en una subred específica

La siguiente política concede a los usuarios permiso para lanzar instancias en una subred específica, así como para utilizar un grupo de seguridad determinado en la solicitud. Esto se consigue al especificar el ARN de subnet-1a2b3c4d y el ARN de sg-123abc123 en la política. De este modo, si los usuarios intentan lanzar una instancia en una subred distinta o si tratan de utilizar otro grupo de seguridad, se producirá un error en la solicitud (a no ser que otra política o instrucción conceda a los usuarios permiso para realizar tales acciones).

La política también concede permiso para utilizar el recurso de interfaz de red. Al realizar el lanzamiento en una subred, la solicitud RunInstances creará una interfaz de red principal de manera predeterminada, por lo que el usuario necesitará permiso para crear este recurso cuando lance la instancia.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": [ "arn:aws:ec2:region::image/ami-*", "arn:aws:ec2:region:account:instance/*", "arn:aws:ec2:region:account:subnet/subnet-1a2b3c4d", "arn:aws:ec2:region:account:network-interface/*", "arn:aws:ec2:region:account:volume/*", "arn:aws:ec2:region:account:key-pair/*", "arn:aws:ec2:region:account:security-group/sg-123abc123" ] } ] }

5. Lanzamiento de instancias en una VPC específica

La siguiente política concede a los usuarios permiso para lanzar instancias en cualquier subred de una VPC específica. Esto se consigue al aplicar en la política una clave de condición (ec2:Vpc) para el recurso de la subred.

La política también concede a los usuarios permiso para lanzar instancias utilizando solo AMI que tengan la etiqueta "department=dev".

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": "arn:aws:ec2:region:account:subnet/*", "Condition": { "StringEquals": { "ec2:Vpc": "arn:aws:ec2:region:account:vpc/vpc-1a2b3c4d" } } }, { "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": "arn:aws:ec2:region::image/ami-*", "Condition": { "StringEquals": { "ec2:ResourceTag/department": "dev" } } }, { "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": [ "arn:aws:ec2:region:account:instance/*", "arn:aws:ec2:region:account:volume/*", "arn:aws:ec2:region:account:network-interface/*", "arn:aws:ec2:region:account:key-pair/*", "arn:aws:ec2:region:account:security-group/*" ] } ] }

6. Administración de grupos de seguridad en una VPC

La siguiente política concede a los usuarios permiso para crear y eliminar reglas entrantes y salientes de cualquier grupo de seguridad de una VPC específica. Esto se consigue al aplicar en la política una clave de condición (ec2:Vpc) para el recurso del grupo de seguridad de las acciones Authorize y Revoke.

La segunda instrucción concede a los usuarios permisos para describir todos los grupos de seguridad. Esto es necesario para que los usuarios puedan modificar reglas del grupo de seguridad mediante la CLI.

{ "Version": "2012-10-17", "Statement":[{ "Effect":"Allow", "Action": [ "ec2:AuthorizeSecurityGroupIngress", "ec2:AuthorizeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "ec2:RevokeSecurityGroupEgress"], "Resource": "arn:aws:ec2:region:account:security-group/*", "Condition": { "StringEquals": { "ec2:Vpc": "arn:aws:ec2:region:account:vpc/vpc-1a2b3c4d" } } }, { "Effect": "Allow", "Action": "ec2:DescribeSecurityGroups", "Resource": "*" } ] }

7. Creación y administración de interconexiones de VPC

A continuación se muestran ejemplos de políticas que puede utilizar para administrar la creación y la modificación de interconexiones de VPC.

a. Creación de una interconexión de VPC

La política siguiente permite a los usuarios crear solicitudes de interconexión de VPC utilizando VPC con la etiqueta Purpose=Peering. La primera instrucción aplica una clave de condición (ec2:ResourceTag) al recurso de la VPC. Tenga en cuenta que el recurso de la VPC de la acción CreateVpcPeeringConnection corresponde siempre a la VPC solicitante.

La segunda instrucción concede a los usuarios permisos para crear recursos de interconexión de VPC y, por lo tanto, utiliza el carácter comodín * en lugar de un ID de recurso específico.

{ "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/*" } ] }

La política siguiente permite a los usuarios de la cuenta de AWS 333333333333 crear interconexiones de VPC utilizando cualquier VPC de la región us-east-1, aunque solo si la VPC que aceptará la interconexión es una VPC determinada (vpc-aaa111bb) de una cuenta específica (777788889999).

{ "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-aaa111bb" } } } ] }

b. Aceptación de una interconexión de VPC

La política siguiente permite a los usuarios aceptar solicitudes de interconexión de VPC solo de la cuenta de AWS 444455556666. Esto ayuda a evitar que los usuarios acepten solicitudes de interconexión de VPC de cuentas desconocidas. Esto se consigue al utilizar la clave de condición ec2:RequesterVpc en la primera instrucción.

La política también concede a los usuarios permisos para aceptar solicitudes de interconexión solo si su VPC tiene la etiqueta Purpose=Peering.

{ "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" } } } ] }

c. Eliminación de una interconexión de VPC

La política siguiente permite a los usuarios de la cuenta 444455556666 eliminar cualquier interconexión de VPC, excepto aquellas que utilicen la VPC especificada vpc-1a2b3c4d, que se encuentran en la misma cuenta. La política especifica las claves de condición ec2:AccepterVpc y ec2:RequesterVpc, ya que es posible que la VPC haya sido la VPC solicitante o la VPC del mismo nivel en la solicitud de interconexión de VPC original.

{ "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-1a2b3c4d", "ec2:RequesterVpc": "arn:aws:ec2:region:444455556666:vpc/vpc-1a2b3c4d" } } } ] }

d. Uso de una cuenta específica

La política siguiente permite a los usuarios usar interconexiones de VPC de una cuenta específica. La política permite a los usuarios ver, crear, aceptar, rechazar y eliminar interconexiones de VPC siempre que se encuentren en la cuenta de AWS 333333333333.

La primera instrucción permite a los usuarios ver todas las interconexiones de VPC. El elemento Resource requiere el carácter comodín * en este caso, ya que la acción de la API (DescribeVpcPeeringConnections) no admite actualmente los permisos de nivel de recurso.

La segunda instrucción permite a los usuarios crear interconexiones de VPC y permite para ello el acceso a todas las VPC de la cuenta 333333333333.

La tercera instrucción utiliza el carácter comodín * como parte del elemento Action para permitir todas las acciones de interconexión de VPC. Las claves de condición aseguran que las acciones solo se puedan realizar en interconexiones de VPC con VPC que forman parte de la cuenta 333333333333 Por ejemplo, un usuario no podrá eliminar una interconexión de VPC si la VPC solicitante o responsable de aceptar la solicitud se encuentran en cuentas distintas. Los usuarios no podrán crear interconexiones de VPC con VPC de otras cuentas distintas.

{ "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/*" } } } ] }

8. Creación y administración de puntos de enlace de la VPC

La política siguiente concede a los usuarios permiso para crear, modificar, ver y eliminar puntos de conexión de VPC, servicios de punto de conexión de VPC y notificaciones de conexión de punto de conexión de VPC. Los usuarios también pueden aceptar y rechazar solicitudes para conectar a través de puntos de conexión de VPC. Ninguna de las acciones ec2:*VpcEndpoint* admite permisos de nivel de recurso, por lo que deberá utilizar el carácter comodín * con el elemento Resource para que todos los usuarios puedan utilizar todos los recursos.

{ "Version": "2012-10-17", "Statement":[{ "Effect":"Allow", "Action":"ec2:*VpcEndpoint*", "Resource":"*" } ] }

Políticas de ejemplo para la consola

Puede utilizar políticas de IAM para conceder a los usuarios permisos para ver y utilizar recursos específicos en la consola de Amazon VPC. Puede utilizar las políticas de ejemplo de la sección anterior; sin embargo, estas son específicas para solicitudes que se realizan con la AWS CLI o un AWS SDK. La consola utiliza acciones de API adicionales para sus características, por lo que es posible que estas políticas no funcionen como es debido.

Esta sección muestra políticas que permiten a los usuarios utilizar partes específicas de la consola de VPC.

1. Utilización del asistente de VPC

Puede utilizar el asistente para VPC de la consola de Amazon VPC para crear, instalar y configurar una VPC. Por lo tanto, el asistente está listo para su utilización. El asistente ofrece distintas opciones de configuración en función de sus necesidades. Para obtener más información acerca de la utilización del asistente de VPC para crear una VPC, consulte Escenarios y ejemplos.

Para que los usuarios puedan utilizar el asistente para la creación de VPC, debe concederles permiso para crear y modificar recursos que forman parte de la configuración seleccionada. Las siguientes políticas de ejemplo muestran las acciones necesarias para cada una de las opciones de configuración del asistente.

nota

En caso de error en el asistente para la creación de VPC, el asistente intentará separar y eliminar los recursos que haya creado. Si no concede a los usuarios permisos para utilizar estas acciones, dichos recursos permanecerán en su cuenta.

Opción 1: VPC con una única subred pública

La primera opción de configuración del asistente para la creación de VPC permite crear una VPC con una única subred. En su política de IAM, debe conceder a los usuarios permiso para utilizar las siguientes acciones para que, de este modo, puedan utilizar esta opción del asistente:

  • ec2:CreateVpc, ec2:CreateSubnet, ec2:CreateRouteTable y ec2:CreateInternetGateway: para crear una VPC, una subred, una tabla de ruteo personalizada y un puerto de enlace a Internet.

  • ec2:DescribeAvailabilityZones: para mostrar la sección del asistente junto con la lista Availability Zone y el campo de bloque de CIDR de la subred. Aunque los usuarios intenten dejar los valores predeterminados, no podrán crear una VPC a no ser que se muestren estas opciones.

  • ec2:DescribeVpcEndpointServices: para mostrar la sección del punto de conexión de la VPC del asistente.

  • ec2:AttachInternetGateway: para adjuntar el puerto de enlace a Internet a la VPC.

  • ec2:CreateRoute: para crear una ruta en la tabla de ruteo personalizada. La ruta dirige el tráfico al puerto de enlace a Internet.

  • ec2:AssociateRouteTable: para asociar la tabla de ruteo personalizada a la subred.

  • ec2:ModifyVpcAttribute: para modificar el atributo de la VPC para habilitar los nombres de host de DNS para que cada instancia lanzada en esta VPC reciba un nombre de host de DNS.

Ninguna de las acciones de API de esta política admite los permisos de nivel de recurso, por lo que no podrá controlar los recursos específicos que los usuarios podrán utilizar.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "ec2:CreateVpc", "ec2:CreateSubnet", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcEndpointServices", "ec2:CreateRouteTable", "ec2:CreateRoute", "ec2:CreateInternetGateway", "ec2:AttachInternetGateway", "ec2:AssociateRouteTable", "ec2:ModifyVpcAttribute" ], "Resource": "*" } ] }

Opción 2: VPC con una subred pública y privada

La segunda opción de configuración del asistente para la creación de VPC crea una VPC con una subred pública y privada. Asimismo, ofrece la opción de lanzar una gateway NAT o una instancia NAT. La política siguiente tiene las mismas acciones que en el ejemplo anterior (opción 1), junto con las acciones que permiten a los usuarios ejecutar y configurar una gateway NAT o una instancia NAT.

Las acciones siguientes son obligatorias independientemente de si va a lanzar una instancia NAT o una gateway NAT:

  • ec2:DescribeKeyPairs: para mostrar una lista de los pares de claves existentes y cargar la sección NAT del asistente.

Las acciones siguientes son obligatorias para crear una gateway NAT (estas acciones no son obligatorias para lanzar instancias NAT):

  • ec2:CreateNatGateway: para crear la gateway NAT.

  • ec2:DescribeNatGateways: para comprobar el estado de la gateway NAT hasta que se encuentre en un estado disponible.

  • ec2:DescribeAddresses: para mostrar las direcciones IP elásticas disponibles en su cuenta para asociarlas con la gateway NAT.

Las acciones siguientes son obligatorias para lanzar una instancia NAT (estas acciones no son obligatorias para crear una gateway NAT):

  • ec2:DescribeImages: para localizar una AMI configurada para ejecutarse como instancia NAT.

  • ec2:RunInstances: para lanzar la instancia NAT.

  • ec2:AllocateAddress y ec2:AssociateAddress: para localizar una dirección IP elástica en su cuenta y, a continuación, asociarla a la instancia NAT.

  • ec2:ModifyInstanceAttribute: para deshabilitar la comprobación de origen/destino para la instancia NAT.

  • ec2:DescribeInstances: para comprobar el estado de la instancia hasta que se encuentre en un estado de ejecución.

  • ec2:DescribeRouteTables, ec2:DescribeVpnGateways y ec2:DescribeVpcs: para recopilar información acerca de las rutas que se deben añadir a la tabla de ruteo principal.

La siguiente política permite a los usuarios crear una instancia NAT o una gateway NAT.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:CreateVpc", "ec2:CreateSubnet", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcEndpointServices", "ec2:CreateRouteTable", "ec2:CreateRoute", "ec2:CreateInternetGateway", "ec2:CreateNatGateway", "ec2:AttachInternetGateway", "ec2:AssociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:DescribeKeyPairs", "ec2:DescribeImages", "ec2:RunInstances", "ec2:AllocateAddress", "ec2:AssociateAddress", "ec2:DescribeAddresses", "ec2:DescribeInstances", "ec2:ModifyInstanceAttribute", "ec2:DescribeRouteTables", "ec2:DescribeVpnGateways", "ec2:DescribeVpcs", "ec2:DescribeSubnets", "ec2:DescribeNatGateways" ], "Resource": "*" } ] }

Puede utilizar los permisos de nivel de recurso con la acción ec2:RunInstances para controlar la capacidad de los usuarios para lanzar instancias. Por ejemplo, puede especificar el ID de una AMI habilitada para NAT para que los usuarios solo puedan lanzar instancias desde dicha AMI. Para saber qué AMI utiliza el asistente para lanzar una instancia NAT, inicie sesión en la consola de Amazon VPC como usuario con permisos completos y, a continuación, complete la segunda opción del asistente para creación de VPC. Cambie a la consola de Amazon EC2, seleccione la página Instances (Instancias), seleccione la instancia NAT y anote el ID de la AMI que se utilizó para el lanzamiento.

La siguiente política permite a los usuarios lanzas instancias utilizando solo ami-1a2b3c4d. Si los usuarios intentan lanzar una instancia utilizando cualquier otra AMI, se producirá un error en el lanzamiento.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "ec2:CreateVpc", "ec2:CreateSubnet", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcEndpointServices", "ec2:CreateRouteTable", "ec2:CreateRoute", "ec2:CreateInternetGateway", "ec2:AttachInternetGateway", "ec2:AssociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:DescribeKeyPairs", "ec2:DescribeImages", "ec2:AllocateAddress", "ec2:AssociateAddress", "ec2:DescribeInstances", "ec2:ModifyInstanceAttribute", "ec2:DescribeRouteTables", "ec2:DescribeVpnGateways", "ec2:DescribeVpcs" ], "Resource": "*" }, { "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": [ "arn:aws:ec2:region::image/ami-1a2b3c4d", "arn:aws:ec2:region:account:instance/*", "arn:aws:ec2:region:account:subnet/*", "arn:aws:ec2:region:account:network-interface/*", "arn:aws:ec2:region:account:volume/*", "arn:aws:ec2:region:account:key-pair/*", "arn:aws:ec2:region:account:security-group/*" ] } ] }

Opción 3: VPC con subredes públicas y privadas y acceso de AWS Site-to-Site VPN

La tercera opción de configuración del asistente para la creación de VPC crea una VPC con una subred pública y privada. Asimismo crea una conexión de AWS Site-to-Site VPN entre su VPC y su propia red. En su política de IAM debe conceder a los usuarios permiso para utilizar las mismas acciones que en la opción 1. Esto les permitirá crear una VPC y dos subredes, además de configurar el direccionamiento de la subred pública. Para crear una conexión de Site-to-Site VPN, los usuarios también deben tener permiso para utilizar las acciones siguientes:

  • ec2:CreateCustomerGateway: para crear una gateway de cliente.

  • ec2:CreateVpnGateway y ec2:AttachVpnGateway: para crear una gateway privada virtual y adjuntarla a la VPC.

  • ec2:EnableVgwRoutePropagation: para habilitar la propagación de rutas de manera que estas se propaguen automáticamente a su tabla de ruteo.

  • ec2:CreateVpnConnection: para crear una conexión de Site-to-Site VPN.

  • ec2:DescribeVpnConnections, ec2:DescribeVpnGateways y ec2:DescribeCustomerGateways: para mostrar las opciones de la segunda página de configuración del asistente.

  • ec2:DescribeVpcs y ec2:DescribeRouteTables: para recopilar información acerca de las rutas que se deben añadir a la tabla de ruteo principal.

Ninguna de las acciones de API de esta política admite los permisos de nivel de recurso, por lo que no podrá controlar los recursos específicos que los usuarios podrán utilizar.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "ec2:CreateVpc", "ec2:CreateSubnet", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcEndpointServices", "ec2:CreateRouteTable", "ec2:CreateRoute", "ec2:CreateInternetGateway", "ec2:AttachInternetGateway", "ec2:AssociateRouteTable", "ec2:ModifyVpcAttribute", "ec2:CreateCustomerGateway", "ec2:CreateVpnGateway", "ec2:AttachVpnGateway", "ec2:EnableVgwRoutePropagation", "ec2:CreateVpnConnection", "ec2:DescribeVpnGateways", "ec2:DescribeCustomerGateways", "ec2:DescribeVpnConnections", "ec2:DescribeRouteTables", "ec2:DescribeNetworkAcls", "ec2:DescribeInternetGateways", "ec2:DescribeVpcs" ], "Resource": "*" } ] }

Opción 4: VPC solo con una subred privada y acceso de AWS Site-to-Site VPN

La cuarta opción de configuración del asistente para la creación de VPC crea una VPC con una subred privada. Asimismo crea una conexión de Site-to-Site VPN entre la VPC y su propia red. A diferencia de las tres opciones anteriores, los usuarios no necesitan permiso para crear o adjuntar un puerto de enlace a Internet a la VPC. Asimismo, tampoco necesitan permiso para crear una tabla de ruteo y asociarla a la subred. Los usuarios necesitarán los mismos permisos que los que se indican en el ejemplo anterior (opción 3) para establecer a conexión de Site-to-Site VPN.

Ninguna de las acciones de API de esta política admite los permisos de nivel de recurso, por lo que no podrá controlar los recursos específicos que los usuarios podrán utilizar.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "ec2:CreateVpc", "ec2:CreateSubnet", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcEndpointServices", "ec2:ModifyVpcAttribute", "ec2:CreateCustomerGateway", "ec2:CreateVpnGateway", "ec2:AttachVpnGateway", "ec2:EnableVgwRoutePropagation", "ec2:CreateVpnConnection", "ec2:DescribeVpnGateways", "ec2:DescribeCustomerGateways", "ec2:DescribeVpnConnections", "ec2:DescribeRouteTables", "ec2:DescribeNetworkAcls", "ec2:DescribeInternetGateways", "ec2:DescribeVpcs" ], "Resource": "*" } ] }

2. Administración de una VPC

En la página Your VPCs de la consola de VPC, podrá crear o eliminar una VPC. Para poder ver las VPC, los usuarios deben tener permiso para utilizar la acción ec2:DescribeVPCs. Para crear una VPC con el cuadro de diálogo Create VPC, los usuarios deben tener permiso para utilizar la acción ec2:CreateVpc.

nota

De forma predeterminada, la consola de VPC crea una etiqueta con una clave de Name y un valor que debe especificar el usuario. Si los usuarios no tienen permiso para utilizar la acción ec2:CreateTags, el cuadro de diálogo Create VPC mostrará a los usuarios un error cuando traten de crear una VPC. Sin embargo, es posible que la VPC se cree correctamente.

Cuando se configura una VPC, se suele crear un determinado número de objetos dependientes como, por ejemplo, subredes y puertos de enlace a Internet. No podrá eliminar una VPC hasta que no haya cancelado la asociación de estos objetos dependientes y los haya eliminado. Al eliminar una VPC mediante la consola, estas acciones se realizan automáticamente (excepto la terminación de las instancias; esta es una acción que debe realizar usted).

El ejemplo siguiente permite a los usuarios ver y crear VPC en la página Your VPCs, así como eliminar VPC que se hayan creado con la primera opción del asistente para la creación de VPC (VPC con una única subred pública). Esta VPC tiene una subred que está asociada a una tabla de ruteo personalizada con un puerto de enlace a Internet adjunto. Para eliminar la VPC y sus componentes con la consola, debe conceder a los usuarios permiso para utilizar varias acciones ec2:Describe* para que, de este modo, la consola pueda comprobar si hay otros recursos que dependen de esta VPC. También deberá conceder a los usuarios permiso para anular la asociación de la tabla de ruteo a la subred, separar el puerto de enlace a Internet de la VPC y eliminar ambos recursos.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "ec2:DescribeVpcs", "ec2:DescribeRouteTables", "ec2:DescribeVpnGateways", "ec2:DescribeInternetGateways", "ec2:DescribeSubnets", "ec2:DescribeDhcpOptions", "ec2:DescribeInstances", "ec2:DescribeVpcAttribute", "ec2:DescribeNetworkAcls", "ec2:DescribeNetworkInterfaces", "ec2:DescribeAddresses", "ec2:DescribeVpcPeeringConnections", "ec2:DescribeSecurityGroups", "ec2:CreateVpc", "ec2:DeleteVpc", "ec2:DetachInternetGateway", "ec2:DeleteInternetGateway", "ec2:DisassociateRouteTable", "ec2:DeleteSubnet", "ec2:DeleteRouteTable" ], "Resource": "*" } ] }

No es posible aplicar permisos de nivel de recurso a ninguna de las acciones de la API ec2:Describe*; sin embargo, puede aplicar permisos de nivel de recurso a algunas de las acciones ec2:Delete* para controlar los recursos que podrán eliminar los usuarios.

Por ejemplo, la siguiente política permite a los usuarios eliminar únicamente tablas de ruteo y puertos de enlace a Internet con la etiqueta Purpose=Test. Los usuarios no podrán eliminar tablas de ruteo individuales ni puertos de enlace a Internet que no tengan esta etiqueta. Del mismo modo, no podrán utilizar la consola de VPC para eliminar VPC asociadas a otras tablas de ruteo u otros puertos de enlace a Internet.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "ec2:DescribeVpcs", "ec2:DescribeRouteTables", "ec2:DescribeVpnGateways", "ec2:DescribeInternetGateways", "ec2:DescribeSubnets", "ec2:DescribeDhcpOptions", "ec2:DescribeInstances", "ec2:DescribeVpcAttribute", "ec2:DescribeNetworkAcls", "ec2:DescribeNetworkInterfaces", "ec2:DescribeAddresses", "ec2:DescribeVpcPeeringConnections", "ec2:DescribeSecurityGroups", "ec2:CreateVpc", "ec2:DeleteVpc", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ec2:DeleteSubnet" ], "Resource": "*" }, { "Effect": "Allow", "Action": "ec2:DeleteInternetGateway", "Resource": "arn:aws:ec2:region:account:internet-gateway/*", "Condition": { "StringEquals": { "ec2:ResourceTag/Purpose": "Test" } } }, { "Effect": "Allow", "Action": "ec2:DeleteRouteTable", "Resource": "arn:aws:ec2:region:account:route-table/*", "Condition": { "StringEquals": { "ec2:ResourceTag/Purpose": "Test" } } } ] }

3. Administración de grupos de seguridad

Para ver los grupos de seguridad en la página Security Groups (Grupos de seguridad) de la consola de Amazon VPC, los usuarios deben tener permiso para utilizar la acción ec2:DescribeSecurityGroups. Para poder utilizar el cuadro de diálogo Create Security Group para crear un grupo de seguridad, los usuarios deben tener permiso para utilizar las acciones ec2:DescribeVpcs y ec2:CreateSecurityGroup. Si los usuarios no tienen permiso para utilizar la acción ec2:DescribeSecurityGroups, podrán crear el grupo de seguridad con el cuadro de diálogo, pero obtendrán un error que indicará que el grupo no se ha creado.

En el cuadro de diálogo Create Security Group, los usuarios deben añadir el nombre del grupo de seguridad y una descripción; sin embargo, no podrán escribir ningún valor en el campo Name tag a no ser que dispongan de permiso para utilizar la acción ec2:CreateTags. No obstante, no necesitan esta acción para crear el grupo de seguridad.

La siguiente política permite a los usuarios ver y crear grupos de seguridad, así como añadir y eliminar reglas entrantes y salientes de cualquier grupo de seguridad asociado a la vpc-1a2b3c4d.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:CreateSecurityGroup" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2:DeleteSecurityGroup", "ec2:AuthorizeSecurityGroupIngress", "ec2:AuthorizeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "ec2:RevokeSecurityGroupEgress" ], "Resource": "arn:aws:ec2:*:*:security-group/*", "Condition":{ "ArnEquals": { "ec2:Vpc": "arn:aws:ec2:*:*:vpc/vpc-1a2b3c4d" } } } ] }

4. Creación de una interconexión de VPC

Para ver las interconexiones de VPC en la consola de Amazon VPC, los usuarios deben tener permiso para utilizar la acción ec2:DescribePeeringConnections. Para poder utilizar el cuadro de diálogo Create VPC Peering Connection, los usuarios deben tener permiso para utilizar la acción ec2:DescribeVpcs. Esto les permite ver y seleccionar una VPC. Sin esta acción, el cuadro de diálogo no se puede cargar. Puede aplicar permisos de nivel de recurso a todas las acciones ec2:*PeeringConnection excepto ec2:DescribeVpcPeeringConnections.

La política siguiente permite a los usuarios ver interconexiones de VPC y utilizar el cuadro de diálogo Create VPC Peering Connection para crear una interconexión de VPC que utilice solo una VPC solicitante específica (vpc-1a2b3c4d). Si los usuarios intentan crear una interconexión de VPC con una VPC solicitante distinta, se producirá un error en la solicitud.

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

Para obtener más ejemplos de redacción de políticas de IAM para interconexiones de VPC, consulte 7. Creación y administración de interconexiones de VPC.