Concesión de permisos para el punto de conexión de EC2 Instance Connect
De forma predeterminada, las entidades de IAM no tienen permiso para crear, describir ni modificar puntos de conexión de EC2 Instance Connect. Un administrador de IAM puede crear políticas de IAM que concedan permisos necesarios para realizar acciones específicas en los recursos que necesitan.
Para obtener información acerca de las políticas de IAM, consulte Creación de políticas de IAM en la Guía del usuario de IAM.
En los siguientes ejemplos de políticas, se muestra cómo puede controlar los permisos que tienen los usuarios para los puntos de conexión de EC2 Instance Connect.
Ejemplos
Permisos para crear, describir y eliminar los puntos de conexión de EC2 Instance Connect
Para crear un punto de conexión de EC2 Instance Connect, es necesario que los usuarios tenga permisos para las siguientes acciones:
-
ec2:CreateInstanceConnectEndpoint
-
ec2:CreateNetworkInterface
-
ec2:CreateTags
-
iam:CreateServiceLinkedRole
Para describir y eliminar los puntos de conexión de EC2 Instance Connect, es necesario que los usuarios tengan permisos para las siguientes acciones:
-
ec2:DescribeInstanceConnectEndpoints
-
ec2:DeleteInstanceConnectEndpoint
Puede crear una política que conceda permisos para crear, describir y eliminar puntos de conexión de EC2 Instance Connect en todas las subredes. Como alternativa, puede restringir las acciones de subredes específicas. Solo hace falta especifiar los ARN de la subred como el Resource
permitido o mediante la clave de condición ec2:SubnetID
. También puede usar la clave de condición aws:ResourceTag
para permitir o denegar explícitamente la creación de puntos de conexión con determinadas etiquetas. Para obtener más información, consulte Políticas y permisos en IAM en la Guía del usuario de IAM.
Política de IAM de ejemplo
En el siguiente ejemplo de política de IAM, la sección del Resource
concede permiso para crear y eliminar puntos de conexión en todas las subredes, especificados con el asterisco (*
). Las acciones de la API ec2:Describe*
no admiten permisos de recursos. Por lo tanto, el carácter comodín *
es necesario en el elemento Resource
.
{ "Version": "2012-10-17", "Statement": [{ "Sid": "GrantAllActionsInAllSubnets", "Action": [ "ec2:CreateInstanceConnectEndpoint", "ec2:DeleteInstanceConnectEndpoint", "ec2:CreateNetworkInterface", "ec2:CreateTags", "iam:CreateServiceLinkedRole" ], "Effect": "Allow", "Resource": "arn:aws:ec2:
region
:account-id
:subnet/*" }, { "Action": [ "ec2:CreateNetworkInterface" ], "Effect": "Allow", "Resource": "arn:aws:ec2:::security-group/*" }, { "Sid": "DescribeInstanceConnectEndpoints", "Action": [ "ec2:DescribeInstanceConnectEndpoints" ], "Effect": "Allow", "Resource": "*" } ] }
Permisos para usar el punto de conexión de EC2 Instance Connect para conectarse a instancias
La acción ec2-instance-connect:OpenTunnel
concede permiso para establecer una conexión TCP a una instancia a fin de conectarse a través del punto de conexión de EC2 Instance Connect. Puede especificar el punto de conexión de EC2 Instance Connect que se va a utilizar. Como alternativa, un Resource
con asterisco (*
) permite a los usuarios utilizar cualquier punto de conexión de EC2 Instance Connect disponible. También puede restringir el acceso a las instancias en función de la presencia o ausencia de etiquetas de recursos como claves de condición.
Condiciones
-
ec2-instance-connect:remotePort
: el puerto de la instancia que se puede usar para establecer una conexión TCP. Cuando se utiliza esta clave de condición, se produce un error al intentar conectarse a una instancia en cualquier otro puerto que no sea el especificado en la política. -
ec2-instance-connect:privateIpAddress
: la dirección IP privada de destino asociada a la instancia con la que se quiere establecer una conexión TCP. Puede especificar una sola dirección IP, por ejemplo10.0.0.1/32
, o un rango de IP a través de los CIDR, como10.0.1.0/28
. Cuando se usa esta clave de condición, se produce un error al intentar conectarse a una instancia con una dirección IP privada diferente o fuera del rango del CIDR. -
ec2-instance-connect:maxTunnelDuration
: la duración máxima de una conexión TCP establecida. La unidad es segundos y la duración oscila entre un mínimo de 1 y un máximo de 3600 segundos (1 hora). Si no se especifica la condición, la duración predeterminada se establece en 3600 segundos (1 hora). Si intenta conectarse a una instancia durante más tiempo que el especificado en la política de IAM o durante más tiempo que el máximo predeterminado, se produce un error. La conexión termina una vez transcurrido el tiempo especificado.Si
maxTunnelDuration
se especifica en la política de IAM y su valor es inferior a 3600 segundos (el valor predeterminado), debe especificar--max-tunnel-duration
en el comando al conectarse a una instancia. Para obtener más información sobre cómo conectarse a una instancia de base de datos, consulte Conexión a una instancia de Amazon EC2 mediante el punto de conexión de EC2 Instance Connect.
También puede conceder acceso a un usuario para establecer conexiones a las instancias en función de la presencia de etiquetas de recursos en el punto de conexión de EC2 Instance Connect. Para obtener más información, consulte Políticas y permisos en IAM en la Guía del usuario de IAM.
Para instancias de Linux, la acción ec2-instance-connect:SendSSHPublicKey
concede permiso a un usuario para insertar la clave pública en una instancia. La condición ec2:osuser
especifica el nombre del usuario del SO (sistema operativo) que puede enviar la clave pública a una instancia. Utilice el nombre de usuario predeterminado para la AMI que se utilizó para lanzar la instancia. Para obtener más información, consulte Concesión de permisos de IAM para EC2 Instance Connect.
Política de IAM de ejemplo
Las siguientes políticas de IAM de ejemplo permiten que una entidad principal de IAM se conecte a una instancia con solo el punto de conexión de EC2 Instance Connect especificado, que se identifica por el ID de punto de conexión eice-123456789abcdef
especificado. La conexión se establece correctamente solo si se cumplen todas las condiciones.
nota
Las acciones de la API ec2:Describe*
no admiten permisos de recursos. Por lo tanto, el carácter comodín *
es necesario en el elemento Resource
.
Permisos para conectarse solo desde un rango de direcciones IP específico
El siguiente ejemplo de política de IAM permite que una entidad principal de IAM se conecte a una instancia con la condición de que lo haga desde una dirección IP dentro del rango de direcciones IP especificado en la política. Si la entidad principal de IAM llama a OpenTunnel
desde una dirección IP que no esté dentro de 192.0.2.0/24
(el rango de direcciones IP de ejemplo de esta política), la respuesta será Access Denied
. Para obtener más información, consulte aws:SourceIp
en la Guía del usuario de IAM.
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "ec2-instance-connect:OpenTunnel", "Resource": "arn:aws:ec2:
region
:account-id
:instance-connect-endpoint/eice-123456789abcdef
", "Condition": { "IpAddress": { "aws:SourceIp": "192.0.2.0/24
" }, "NumericEquals": { "ec2-instance-connect:remotePort": "22
" } } }, { "Sid": "SSHPublicKey", "Effect": "Allow", "Action": "ec2-instance-connect:SendSSHPublicKey", "Resource": "*", "Condition": { "StringEquals": { "ec2:osuser": "ami-username
" } } }, { "Effect": "Allow", "Action": [ "ec2:DescribeInstances", "ec2:DescribeInstanceConnectEndpoints" ], "Resource": "*" } ] }