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 esec2-user
y para Ubuntu esubuntu
. -
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. -
Acción
ec2:DescribeVpcs
: necesaria para conectarse a una dirección IPv6.
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 especificaami-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 omitirec2:DescribeInstances
. Tenga en cuenta que las acciones de la APIec2:Describe*
no admiten permisos de recursos. Por lo tanto, el carácter comodín*
es necesario en el elementoResource
. -
La acción
ec2:DescribeVpcs
se especifica para otorgar permisos a los usuarios que utilizarán la consola para conectarse a sus instancias con una dirección IPv6. Si los usuarios van a utilizar únicamente una dirección IPv4 pública, puede omitirec2:DescribeVpcs
. Tenga en cuenta que las acciones de la APIec2:Describe*
no admiten permisos de recursos. Por lo tanto, el carácter comodín*
es necesario en el elementoResource
.
{ "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", "ec2:DescribeVpcs" ], "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
.
La acción ec2:DescribeVpcs
se especifica para otorgar permisos a los usuarios que utilizarán la consola para conectarse a sus instancias con una dirección IPv6. Si los usuarios van a utilizar únicamente una dirección IPv4 pública, puede omitir ec2:DescribeVpcs
. 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", "ec2:DescribeVpcs" ], "Resource": "*" } ] }