Accorder IAM des autorisations pour EC2 Instance Connect - 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 IAM des autorisations pour EC2 Instance Connect

Pour vous connecter à une instance à l'aide d'EC2Instance Connect, vous devez créer une IAM politique qui accorde à vos utilisateurs des autorisations pour les actions et conditions suivantes :

  • Action ec2-instance-connect:SendSSHPublicKey – Accorde l’autorisation d’envoyer la clé publique en mode push à une instance.

  • 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. Le nom d'utilisateur par défaut pour AL2 023 et Amazon Linux 2 estec2-user, et pour Ubuntu, il estubuntu.

  • ec2:DescribeInstancesaction — Obligatoire lors de l'utilisation de la EC2 console car le wrapper appelle cette action. Les utilisateurs peuvent déjà disposer de l’autorisation d’appeler cette action à partir d’une autre politique.

  • ec2:DescribeVpcsaction — Obligatoire lors de la connexion à une IPv6 adresse.

Envisagez de restreindre l'accès à des EC2 instances spécifiques. Dans le cas contraire, tous IAM les principaux autorisés à effectuer l'ec2-instance-connect:SendSSHPublicKeyaction peuvent se connecter à toutes les EC2 instances. Vous pouvez restreindre l'accès en spécifiant une ressource ARNs ou en utilisant des balises de ressource comme clés de condition.

Pour plus d'informations, consultez Actions, ressources et clés de condition pour Amazon EC2 Instance Connect.

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

Autoriser les utilisateurs à se connecter à des instances spécifiques

La IAM politique suivante autorise la connexion à des instances spécifiques, identifiées par leur ressourceARNs.

Dans l'exemple de IAM politique suivant, les actions et conditions suivantes sont spécifiées :

  • L'ec2-instance-connect:SendSSHPublicKeyaction autorise les utilisateurs à se connecter à deux instances, spécifiées par la ressourceARNs. Pour autoriser les utilisateurs à se connecter à toutes les EC2 instances, remplacez la ressource ARNs par le * caractère générique.

  • La ec2:osuser condition accorde l'autorisation de se connecter aux instances uniquement si ami-username est spécifié lors de la connexion.

  • L’action ec2:DescribeInstances est spécifiée pour accorder l’autorisation aux utilisateurs qui utiliseront la console pour se connecter à vos instances. Si vos utilisateurs n'utilisent un SSH client que pour se connecter à vos instances, vous pouvez l'omettreec2:DescribeInstances. Notez que 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.

  • L'ec2:DescribeVpcsaction est spécifiée pour autoriser les utilisateurs qui utiliseront la console à se connecter à vos instances à l'aide d'une IPv6 adresse. Si vos utilisateurs n'utilisent qu'une IPv4 adresse publique, vous pouvez l'omettreec2:DescribeVpcs. Notez que 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": [{ "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": "*" } ] }

Autoriser les utilisateurs à se connecter à des instances avec des balises spécifiques

Le contrôle d'accès basé sur les attributs (ABAC) est une stratégie d'autorisation qui définit les autorisations en fonction de balises pouvant être associées aux utilisateurs et AWS aux ressources. Vous pouvez utiliser des balises de ressources pour contrôler l’accès à une instance. Pour plus d'informations sur l'utilisation de balises pour contrôler l'accès à vos AWS ressources, consultez la section Contrôle de l'accès aux AWS ressources dans le Guide de IAM l'utilisateur.

Dans l'exemple de IAM politique suivant, l'ec2-instance-connect:SendSSHPublicKeyaction autorise les utilisateurs à se connecter à n'importe quelle instance (indiquée par le * caractère générique dans la ressourceARN) à condition que l'instance possède une balise de ressource avec key= tag-key et value=. tag-value

L’action ec2:DescribeInstances est spécifiée pour accorder l’autorisation aux utilisateurs qui utiliseront la console pour se connecter à vos instances. Si vos utilisateurs n'utilisent qu'un SSH client pour se connecter à vos instances, vous pouvez l'omettreec2:DescribeInstances. Notez que 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.

L'ec2:DescribeVpcsaction est spécifiée pour autoriser les utilisateurs qui utiliseront la console à se connecter à vos instances à l'aide d'une IPv6 adresse. Si vos utilisateurs n'utilisent qu'une IPv4 adresse publique, vous pouvez l'omettreec2:DescribeVpcs. Notez que 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": [{ "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": "*" } ] }