Pourquoi ne puis-je pas me connecter à mon compartiment Amazon S3 depuis mon instance Amazon EC2 ?

Date de la dernière mise à jour : 08/09/2020

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

Brève description

Pour vous connecter à vos compartiments S3 depuis vos instances EC2, procédez comme suit :

1.    créer et joindre un rôle de profil AWS Identity and Access Management (IAM) à l'instance qui autorise l'accès à Amazon S3.

2.    vérifier que la stratégie de compartiment S3 ne possède pas de stratégie refusant l'accès.

3.    confirmer la connectivité réseau entre l'instance EC2 et Amazon S3.

Solution

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

1.    Ouvrez la console IAM.

2.    Cliquez sur Roles (Rôles), puis sur Create Role (Créer un rôle).

3.    Sélectionnez Service AWS, puis choisissez EC2.

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

4.    Sélectionnez Next: Permissions (Suivant : autorisations).

5.    Créez une stratégie personnalisée qui fournit les autorisations minimales requises pour accéder à votre compartiment S3. Pour savoir comment créer des stratégies personnalisées, consultez Écriture de stratégies IAM : comment accorder l’accès à un compartiment Amazon S3 compartiment et Gestion de l’accès aux ressources S3.

Remarque : la création d'une stratégie avec les autorisations minimales requises est une bonne pratique de sécurité. Toutefois, pour autoriser l'accès EC2 à tous vos compartiments Amazon S3, vous pouvez utiliser la stratégie IAM gérée Amazons3ReadOnlyAccess ou Amazons3FullAccess.

6.    Sélectionnez Next: Tags (Suivant : balises), puis sélectionnez Next: Review (Suivant : vérification).

7.    Saisissez un Role name (Nom de rôle), puis sélectionnez Create a role (Créer un rôle).

Joignez 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 joindre le rôle IAM.

4.    Sélectionnez l'onglet Actions, puis Instance Settings (Paramètres de l'instance) et choisissez le rôle Attach/Replace IAM (Joindre/Remplacer l'IAM).

5.    Sélectionnez le rôle IAM que vous venez de créer, choisissez Apply (Appliquer), puis Close (Fermer). Le rôle IAM est attribué à votre instance EC2.

Validez les autorisations sur votre compartiment S3

1.    Ouvrez la console Amazon S3.

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

3.    Choisissez Permissions (Autorisations).

4.    Sélectionnez Stratégie de compartiment.

5.    Recherchez les instructions avec "Effect": "Deny".

6.    Dans votre stratégie de compartiment, modifiez ou supprimez les instructions "Effect": "Deny" qui refusent au profil d'instance IAM l'accès à votre compartiment. Pour plus d'informations sur la modification des stratégies, consultez Modification des stratégies IAM.

Validez la connectivité réseau depuis l'instance EC2 vers Amazon S3

Vérifiez que l'instance EC2 dispose d'une connectivité aux points de terminaison S3.

L'instance doit être l'une des suivantes :

Instance EC2 avec une adresse IP publique et une entrée de table de routage avec le routage par défaut pointant vers une passerelle Internet.
Instance EC2 privée avec un routage par défaut via une passerelle NAT.
Instance EC2 privée avec connectivité à Amazon S3 à l'aide d'un point de terminaison d'un VPC de passerelle.

Validez l'accès aux compartiments S3

1.    Installez l'interface de ligne de commande AWS.

2.    Vérifiez l'accès à vos compartiments S3 en exécutant la commande suivante :

aws s3 ls

Remarque : les objets S3 qui sont chiffrés avec une clé AWS Key Management Service (AWS KMS) doivent avoir les autorisations kms : Decrypt accordées dans le rôle IAM joint à l'instance et dans la stratégie de clé KMS pour qu'une copie ou un téléchargement réussisse. Pour plus de renseignements, consultez la section Est-il nécessaire de définir la clé AWS KMS lorsque je télécharge un objet chiffré par KMS depuis Amazon S3 ?


Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?