Accorder des autorisations pour utiliser EC2 Instance Connect Endpoint - Amazon Elastic Compute Cloud

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Accorder des autorisations pour utiliser EC2 Instance Connect Endpoint

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

Pour plus d'informations sur la création de IAM politiques, voir Création de IAM politiques dans le Guide de IAM l'utilisateur.

Les exemples de politiques suivants montrent que vous pouvez contrôler les autorisations dont disposent les utilisateurs sur les points de terminaison EC2 Instance Connect.

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

Pour créer un point de terminaison EC2 Instance Connect, les utilisateurs ont besoin d'autorisations pour effectuer les actions suivantes :

  • ec2:CreateInstanceConnectEndpoint

  • ec2:CreateNetworkInterface

  • ec2:CreateTags

  • iam:CreateServiceLinkedRole

Pour décrire et supprimer les points de terminaison EC2 Instance Connect, les utilisateurs doivent disposer d'autorisations pour effectuer les actions suivantes :

  • ec2:DescribeInstanceConnectEndpoints

  • ec2:DeleteInstanceConnectEndpoint

Vous pouvez créer une politique qui autorise la création, la description et la suppression des points de terminaison EC2 Instance Connect dans tous les sous-réseaux. Vous pouvez également restreindre les actions pour des sous-réseaux spécifiques uniquement en spécifiant le sous-réseau ARNs comme étant autorisé Resource ou en utilisant la clé de ec2:SubnetID condition. 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 plus d'informations, consultez la section Politiques et autorisations IAM dans le guide de IAM l'utilisateur.

Exemple IAM de politique

Dans l'exemple de IAM politique suivant, la Resource section autorise la création et la suppression de points de terminaison dans tous les sous-réseaux, spécifiés par l'astérisque (). * Les ec2:Describe* API actions 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.

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

Autorisations d'utilisation du point de terminaison EC2 Instance Connect pour se connecter aux instances

L'ec2-instance-connect:OpenTunnelaction autorise l'établissement d'une TCP connexion à une instance afin de se connecter via le point de terminaison EC2 Instance Connect. Vous pouvez spécifier le point de terminaison EC2 Instance Connect à utiliser. Sinon, un Resource 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é pour établir une TCP connexion. 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— Adresse IP privée de destination associée à l'instance avec laquelle vous souhaitez établir une TCP connexion. Vous pouvez spécifier une adresse IP unique, telle que10.0.0.1/32, ou une plage de IPs pointsCIDRs, telle que10.0.1.0/28. Lorsque cette clé de condition est utilisée, la tentative de connexion à une instance avec une adresse IP privée différente ou hors CIDR plage entraîne un échec.

  • ec2-instance-connect:maxTunnelDuration— La durée maximale d'une TCP connexion é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). Toute tentative de connexion à une instance pendant une durée supérieure à la durée spécifiée dans la IAM politique ou au-delà du maximum par défaut entraîne un échec. La connexion est interrompue après la durée spécifiée.

    Si cela maxTunnelDuration est spécifié dans la IAM politique et que la valeur spécifiée est inférieure à 3 600 secondes (valeur par défaut), vous devez le 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 Connectez-vous à une EC2 instance Amazon à l'aide d'EC2Instance Connect Endpoint.

Vous pouvez également accorder à un utilisateur l'accès pour établir des connexions aux instances en fonction de la présence de balises de ressources sur le point de terminaison EC2 Instance Connect. Pour plus d'informations, consultez la section Politiques et autorisations IAM dans le guide de IAM l'utilisateur.

Pour les instances Linux, l'ec2-instance-connect:SendSSHPublicKeyaction autorise le transfert de 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 pour celui AMI que vous avez utilisé pour lancer l'instance. Pour plus d’informations, consultez Accorder IAM des autorisations pour EC2 Instance Connect.

Exemple IAM de politique

Les exemples de IAM politiques suivants permettent à un IAM principal 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 ec2:Describe* API actions 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 —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 à 3600 quelques secondes. La connexion est interrompue au bout de 3600 secondes (1 heure).

{ "Version": "2012-10-17", "Statement": [{ "Sid": "EC2InstanceConnect", "Action": "ec2-instance-connect:OpenTunnel", "Effect": "Allow", "Resource": "arn:aws:ec2:region:account-id: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 à 3600 quelques secondes. La connexion est interrompue au bout de 3600 secondes (1 heure).

{ "Version": "2012-10-17", "Statement": [{ "Sid": "EC2InstanceConnect", "Action": "ec2-instance-connect:OpenTunnel", "Effect": "Allow", "Resource": "arn:aws:ec2:region:account-id: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 connexion uniquement à partir d'une plage d'adresses IP spécifique

L'exemple de IAM stratégie suivant permet à un IAM principal 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 stratégie. Si les appels IAM principaux OpenTunnel proviennent d'une adresse IP qui n'est pas comprise dans 192.0.2.0/24 (exemple de plage d'adresses IP dans cette politique), la réponse estAccess Denied. Pour plus d'informations, consultez aws:SourceIple guide de IAM l'utilisateur.

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