Comment puis-je accorder à mon instance Amazon EC2 l’accès à un compartiment Amazon S3 ?

Lecture de 5 minute(s)
0

Je ne parviens pas à accéder à un compartiment Amazon Simple Storage Service (Amazon S3) depuis mon instance Amazon Elastic Compute Cloud (Amazon EC2). Comment puis-je activer l’accès en lecture/écriture aux compartiments S3 depuis une instance EC2 ?

Brève description

Pour vous connecter à des compartiments S3 depuis des instances EC2, vous devez effectuer les opérations suivantes :

1.    Créez un rôle de profil AWS IAM (Gestion des identités et des accès AWS) qui accorde l’accès à Amazon S3.

2.    Attachez le profil d’instance IAM à l’instance.

3.    Validez les autorisations sur votre compartiment S3.

4.    Validez la connectivité réseau entre l’instance EC2 et Amazon S3.

5.    Validez l’accès aux compartiments S3.

Résolution

Créez un profil d’instance IAM qui autorise l’accès à Amazon S3

1.    Ouvrez la console IAM.

2.    Choisissez Rôles, puis sélectionnez Créer un rôle.

3.    Sélectionnez Service AWS, puis EC2 dans Cas d’utilisation.

Remarque : la création d’un rôle IAM à partir de la console en sélectionnant EC2 comme entité de confiance crée automatiquement un profil d’instance IAM portant le même nom que le rôle. Toutefois, si le rôle est créé à l’aide de l’interface de la ligne de commande AWS (AWS CLI) ou de l’API, aucun profil d’instance ne sera automatiquement créé. Pour en savoir plus, consultez la page J’ai créé un rôle IAM, mais il n’apparaît pas dans la liste déroulante lorsque je lance une instance. Que puis-je faire ?

4.    Sélectionnez Suivant : Autorisations.

5.    Créez une politique personnalisée qui fournit les autorisations minimales requises pour accéder au compartiment S3. Pour obtenir des instructions sur la création de politiques personnalisées, consultez les sections Rédaction de politiques IAM : comment accorder l’accès à un compartiment Amazon S3 et Gestion des identités et des accès dans Amazon S3.

Remarque : la création d’une politique avec les autorisations minimales requises constitue une bonne pratique en matière de sécurité. Toutefois, pour autoriser EC2 à accéder à tous vos compartiments Amazon S3, vous devez utiliser la politique IAM gérée AmazonS3ReadOnlyAccess ou AmazonS3FullAccess.

6.    Sélectionnez Suivant : Balises, puis Suivant : Vérifier.

7.    Saisissez le Nom du rôle, puis sélectionnez Créer un rôle.

Attachez le profil d’instance IAM à l’instance EC2

1.    Ouvrez la console Amazon EC2.

2.    Choisissez Instances.

3.    Sélectionnez l’instance à laquelle vous souhaitez attachez le rôle IAM.

4.    Cliquez sur l’onglet Actions, choisissez Sécurité, puis Modifier le rôle IAM.

5.    Sélectionnez le rôle IAM que vous venez de créer, puis choisissez Enregistrer. Le rôle IAM est attribué à l’instance EC2.

Validez les autorisations sur le compartiment S3

1.    Ouvrez la console Amazon S3.

2.    Sélectionnez le compartiment S3 pour lequel vous souhaitez vérifier la politique.

3.    Choisissez Autorisations.

4.    Choisissez Stratégie de compartiment.

5.    Recherchez les instructions de type Effect : Deny.

6.    Dans votre stratégie de compartiment, modifiez ou supprimez toutes les instructions de type Effect : Deny qui interdisent au profil d’instance IAM d’accéder au compartiment. Pour obtenir des instructions sur la modification des politiques, consultez la page Modification de politique IAM.

Validez la connectivité réseau entre l’instance EC2 et Amazon S3

Pour que l’instance EC2 puisse se connecter aux points de terminaison S3, elle doit être au choix :

  • Une instance EC2 avec une adresse IP publique et une entrée de table de routage dont le routage par défaut pointe vers une passerelle Internet
  • Une instance EC2 privée avec un routage par défaut via une passerelle NAT
  • Une instance EC2 privée disposant d’une connectivité à Amazon S3 via le point de terminaison d’un VPC de passerelle

Pour résoudre les problèmes de connectivité entre une instance EC2 privée et un compartiment S3, consultez la page Pourquoi ne puis-je pas me connecter à un compartiment S3 via le point de terminaison d’un VPC de passerelle ?

Validez l’accès aux compartiments S3

1.    Installez l’interface de la ligne de commande AWS sur l’instance EC2.

Remarque : en cas d’erreurs lors de l’exécution de commandes AWS CLI, vérifiez que vous utilisez la version la plus récente d’AWS CLI.

2.    Exécutez la commande suivante pour vérifier l’accès aux compartiments S3. Remplacez DOC-EXAMPLE-BUCKET par le nom du compartiment S3.

aws s3 ls s3://DOC-EXAMPLE-BUCKET

Remarque : les objets S3 chiffrés avec une clé AWS Key Management Service (AWS KMS) doivent disposer des autorisations kms : Decrypt dans :

  • Le rôle IAM attaché à l’instance.
  • La stratégie de clé KMS.

Si ces autorisations ne sont pas accordées, vous ne pourrez ni copier ni télécharger d’objets S3. Pour en savoir plus, consultez la page Dois-je spécifier la clé AWS KMS lorsque je télécharge un objet chiffré par KMS depuis Amazon S3 ?


Informations connexes

Pourquoi ne puis-je pas me connecter à un compartiment S3 via le point de terminaison d’un VPC de passerelle ?

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 2 ans