Concesión de permisos de IAM para EC2 Instance Connect - Amazon Elastic Compute Cloud

Concesión de permisos de IAM para EC2 Instance Connect

Si quiere conectarse a una instancia con EC2 Instance Connect, debe crear una política de IAM que conceda permisos a los usuarios para las siguientes acciones y condiciones:

  • Acción ec2-instance-connect:SendSSHPublicKey: concede permiso a un usuario para insertar la clave pública en una instancia.

  • Condición ec2:osuser: especifica el nombre del usuario de SO que puede enviar la clave pública a una instancia. Utilice el nombre de usuario predeterminado para la AMI que utilizó para lanzar la instancia. El nombre de usuario predeterminado para AL2023 y Amazon Linux 2 es ec2-user y para Ubuntu es ubuntu.

  • Acción ec2:DescribeInstances: es necesaria cuando se utiliza la consola de EC2 debido a que el encapsulador la llama. Es posible que los usuarios ya tengan permiso para llamar a esta acción desde otra política.

Considere restringir el acceso a instancias de EC2 específicas. De lo contrario, todas las entidades principales de IAM con permiso para la acción ec2-instance-connect:SendSSHPublicKey pueden conectarse a todas las instancias de EC2. Puede restringir el acceso mediante la especificación de ARN de recursos o al usar etiquetas de recurso como claves de condición.

Para obtener más información, consulte Acciones, recursos y claves de condiciones para Amazon EC2 Instance Connect.

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.

Concesión de permisos para que los usuarios se conecten a instancias específicas

La siguiente política de IAM concede permiso para conectarse a instancias específicas, identificadas por sus ARN de recursos.

En el siguiente ejemplo de política de IAM, se especifican las siguientes acciones y condiciones:

  • La acción ec2-instance-connect:SendSSHPublicKey concede a los usuarios permiso para conectarse a dos instancias, especificadas por los ARN del recurso. Para conceder a los usuarios permiso para conectarse a todas las instancias de EC2, sustituya los ARN del recurso por el carácter comodín *.

  • La condición ec2:osuser concede permiso para conectarse a las instancias solo si se especifica ami-username al conectarse.

  • La acción ec2:DescribeInstances se especifica para conceder permisos a los usuarios que usarán la consola para conectarse a sus instancias. Si los usuarios solo utilizarán un cliente SSH para conectarse a sus instancias, puede omitir ec2:DescribeInstances. Tenga en cuenta que 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": [{ "Effect": "Allow", "Action": "ec2-instance-connect:SendSSHPublicKey", "Resource": [ "arn:aws:ec2:region:account-id:instance/i-1234567890abcdef0", "arn:aws:ec2:region:account-id:instance/i-0598c7d356eba48d7" ], "Condition": { "StringEquals": { "ec2:osuser": "ami-username" } } }, { "Effect": "Allow", "Action": "ec2:DescribeInstances", "Resource": "*" } ] }

Concesión de permisos para que los usuarios se conecten a instancias con etiquetas específicas

El control de acceso basado en atributos (ABAC) es una estrategia de autorización que define permisos basados en etiquetas que pueden asociarse a usuarios y recursos de AWS. Puede utilizar etiquetas de recursos para controlar el acceso a una instancia. Para obtener más información sobre el uso de etiquetas para controlar el acceso a los recursos de AWS, consulte Control de acceso a los recursos de AWS en la Guía del usuario de IAM.

En el siguiente ejemplo de política de IAM, la acción ec2-instance-connect:SendSSHPublicKey concede a los usuarios permiso para conectarse a cualquier instancia (lo que se indica mediante el carácter comodín * en el ARN del recurso) con la condición de que la instancia tenga una etiqueta de recurso con key=tag-key y value=tag-value.

La acción ec2:DescribeInstances se especifica para conceder permisos a los usuarios que usarán la consola para conectarse a sus instancias. Si los usuarios solo utilizarán un cliente SSH para conectarse a sus instancias, puede omitir ec2:DescribeInstances. Tenga en cuenta que 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": [{ "Effect": "Allow", "Action": "ec2-instance-connect:SendSSHPublicKey", "Resource": "arn:aws:ec2:region:account-id:instance/*", "Condition": { "StringEquals": { "aws:ResourceTag/tag-key": "tag-value" } } }, { "Effect": "Allow", "Action": "ec2:DescribeInstances", "Resource": "*" } ] }