Accorder des permissions afin d’utiliser le point de terminaison EC2 Instance Connect - Amazon Elastic Compute Cloud

Accorder des permissions afin d’utiliser le point de terminaison EC2 Instance Connect

Par défaut, les entités IAM ne sont pas autorisées à créer, décrire ou modifier les points de terminaison EC2 Instance Connect. Un administrateur IAM peut créer des politiques IAM qui accordent les autorisations nécessaires afin d’effectuer des actions spécifiques sur les ressources dont ils ont besoin.

Pour obtenir des informations sur la création de politiques IAM, veuillez consulter Création de politiques IAM dans le Guide de l’utilisateur IAM.

Les exemples de politiques suivants montrent comment vous pouvez contrôler les autorisations dont disposent les utilisateurs pour les points de terminaison des instances EC2.

Autorisations pour créer, décrire, modifier et supprimer des points de terminaison EC2 Instance Connect

Pour créer et modifier un point de terminaison EC2 Instance Connect, les utilisateurs doivent disposer des autorisations nécessaires pour effectuer les actions suivantes :

  • ec2:CreateInstanceConnectEndpoint

  • ec2:CreateNetworkInterface

  • ec2:CreateTags

  • ec2:ModifyInstanceConnectEndpoint

  • iam:CreateServiceLinkedRole

Pour décrire et supprimer des points de terminaison EC2 Instance Connect, les utilisateurs ont besoin d’autorisations pour les actions suivantes :

  • ec2:DescribeInstanceConnectEndpoints

  • ec2:DeleteInstanceConnectEndpoint

Vous pouvez créer une politique qui accorde l’autorisation de créer, décrire, modifier et supprimer des points de terminaison EC2 Instance Connect dans tous les sous-réseaux. Vous pouvez également limiter les actions à des sous-réseaux spécifiques en spécifiant les ARN des sous-réseaux comme Resource autorisée ou en utilisant la clé de condition ec2:SubnetID. Vous pouvez également utiliser la clé de condition aws:ResourceTag pour autoriser ou refuser explicitement la création de points de terminaison avec certaines balises. Pour de plus amples informations, veuillez consulter Policies and permissions in IAM (Stratégies et autorisations dans IAM) dans le IAM Guide de l’utilisateur.

Exemple de politique IAM

Dans l’exemple de politique IAM suivant, la section Resource accorde l’autorisation de créer, modifier et de supprimer des points de terminaison dans tous les sous-réseaux, spécifiés par l’astérisque (*). Les actions d’API ec2:Describe* ne prennent pas en charge les autorisations au niveau des ressources. Par conséquent, le caractère générique * est nécessaire dans l’élément Resource.

Autorisations pour utiliser le point de terminaison EC2 Instance Connect afin de se connecter aux instances

L’action ec2-instance-connect:OpenTunnel accorde l’autorisation d’établir une connexion TCP à une instance pour se connecter via le point de terminaison EC2 Instance Connect. Vous pouvez spécifier le point de terminaison EC2 Instance Connect à utiliser. Alternativement, une Resource avec un astérisque (*) permet aux utilisateurs d’utiliser n’importe quel point de terminaison EC2 Instance Connect disponible. Vous pouvez également limiter l’accès aux instances en fonction de la présence ou de l’absence de balises de ressources en tant que clés de condition.

Conditions
  • ec2-instance-connect:remotePort – Le port de l’instance qui peut être utilisé afin d’établir une connexion TCP. Lorsque cette clé de condition est utilisée, toute tentative de connexion à une instance sur un port autre que celui spécifié dans la politique se solde par un échec.

  • ec2-instance-connect:privateIpAddress – L’adresse IP privée de destination associée à l’instance avec laquelle vous souhaitez établir une connexion TCP. Vous pouvez spécifier une seule adresse IP, telle que 10.0.0.1/32, ou une plage d’adresses IP via des CIDR, telle que 10.0.1.0/28. Lorsque cette clé de condition est utilisée, toute tentative de connexion à une instance ayant une adresse IP privée différente ou en dehors de la plage d’adresses CIDR se solde par un échec.

  • ec2-instance-connect:maxTunnelDuration – La durée maximale d’une connexion TCP établie. L’unité est la seconde et la durée va d’un minimum de 1 seconde à un maximum de 3 600 secondes (1 heure). Si la condition n’est pas spécifiée, la durée par défaut est fixée à 3 600 secondes (1 heure). La tentative de connexion à une instance pendant une durée supérieure à celle spécifiée dans la politique IAM ou supérieure à la durée maximale par défaut entraîne un échec. La connexion est interrompue après la durée spécifiée.

    Si maxTunnelDuration est spécifié dans la politique IAM et que la valeur spécifiée est inférieure à 3 600 secondes (valeur par défaut), vous devez spécifier --max-tunnel-duration dans la commande lors de la connexion à une instance. Pour plus d’informations sur la manière de se connecter à une instance, consultez Connexion à une instance Amazon EC2 à l’aide du point de terminaison EC2 Instance Connect.

Vous pouvez également autoriser un utilisateur à établir des connexions avec des instances en fonction de la présence de balises de ressources sur le point de terminaison EC2 Instance Connect. Pour plus d’informations, consultez Politiques et autorisations dans IAM dans le Guide de l’utilisateur IAM.

Pour les instances Linux, l’action ec2-instance-connect:SendSSHPublicKey permet d’accorder l’autorisation d’intégrer la clé publique à une instance. La condition ec2:osuser spécifie le nom de l’utilisateur du système d’exploitation qui peut envoyer la clé publique en mode push à une instance. Utilisez le nom d’utilisateur par défaut de l’AMI que vous avez utilisé pour lancer l’instance. Pour de plus amples informations, consultez Accorder des autorisations IAM pour EC2 Instance Connect.

Exemple de politique IAM

Les exemples suivants de politiques IAM permettent à un principal IAM de se connecter à une instance en utilisant uniquement le point de terminaison EC2 Instance Connect spécifié, identifié par l’ID de point de terminaison spécifié eice-123456789abcdef. La connexion n’est établie avec succès que si toutes les conditions sont remplies.

Note

Les actions d’API ec2:Describe* ne prennent pas en charge les autorisations au niveau des ressources. Par conséquent, le caractère générique * est nécessaire dans l’élément Resource.

Linux

Cet exemple évalue si la connexion à l’instance est établie sur le port 22 (SSH), si l’adresse IP privée de l’instance se situe dans la plage de 10.0.1.0/31 (entre 10.0.1.0 et10.0.1.1) et si elle maxTunnelDuration est inférieure ou égale à quelques secondes. 3600 La connexion est interrompue au bout de 3600 secondes (1 heure).

JSON
JSON
{ "Version":"2012-10-17", "Statement": [{ "Sid": "EC2InstanceConnect", "Action": "ec2-instance-connect:OpenTunnel", "Effect": "Allow", "Resource": "arn:aws:ec2:us-east-1:111122223333:instance-connect-endpoint/eice-123456789abcdef", "Condition": { "NumericEquals": { "ec2-instance-connect:remotePort": "22" }, "IpAddress": { "ec2-instance-connect:privateIpAddress": "10.0.1.0/31" }, "NumericLessThanEquals": { "ec2-instance-connect:maxTunnelDuration": "3600" } } }, { "Sid": "SSHPublicKey", "Effect": "Allow", "Action": "ec2-instance-connect:SendSSHPublicKey", "Resource": "*", "Condition": { "StringEquals": { "ec2:osuser": "ami-username" } } }, { "Sid": "Describe", "Action": [ "ec2:DescribeInstances", "ec2:DescribeInstanceConnectEndpoints" ], "Effect": "Allow", "Resource": "*" } ] }
Windows

Cet exemple évalue si la connexion à l’instance est établie sur le port 3389 (RDP), si l’adresse IP privée de l’instance se situe dans la plage de 10.0.1.0/31 (entre 10.0.1.0 et10.0.1.1) et si elle maxTunnelDuration est inférieure ou égale à quelques secondes. 3600 La connexion est interrompue au bout de 3600 secondes (1 heure).

JSON
JSON
{ "Version":"2012-10-17", "Statement": [{ "Sid": "EC2InstanceConnect", "Action": "ec2-instance-connect:OpenTunnel", "Effect": "Allow", "Resource": "arn:aws:ec2:us-east-1:111122223333:instance-connect-endpoint/eice-123456789abcdef", "Condition": { "NumericEquals": { "ec2-instance-connect:remotePort": "3389" }, "IpAddress": { "ec2-instance-connect:privateIpAddress": "10.0.1.0/31" }, "NumericLessThanEquals": { "ec2-instance-connect:maxTunnelDuration": "3600" } } }, { "Sid": "Describe", "Action": [ "ec2:DescribeInstances", "ec2:DescribeInstanceConnectEndpoints" ], "Effect": "Allow", "Resource": "*" } ] }

Autorisations de se connecter uniquement à partir d’une plage d’adresses IP spécifique

L’exemple de politique IAM suivant permet à un principal IAM de se connecter à une instance à condition qu’il se connecte à partir d’une adresse IP comprise dans la plage d’adresses IP spécifiée dans la politique. Si le principal IAM appelle OpenTunnel à partir d’une adresse IP qui ne se trouve pas dans 192.0.2.0/24 (la plage d’adresses IP de l’exemple dans cette politique), la réponse sera Access Denied. Pour de plus amples informations, veuillez consulter aws:SourceIp dans le Guide de l’utilisateur IAM.

JSON
{ "Version":"2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "ec2-instance-connect:OpenTunnel", "Resource": "arn:aws:ec2:us-east-1:111122223333: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": "*" } ] }