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 sur les compartiments S3 depuis une instance EC2 ?
Brève description
Pour vous connecter à vos compartiments S3 depuis vos instances EC2, vous devez procéder comme suit :
1. Créer un rôle de profil AWS Identity and Access Management (IAM) qui autorise l'accès à Amazon S3.
2. Joignez le profil d'instance IAM à l'instance.
3. Validez les autorisations sur votre compartiment S3.
4. Validez la connectivité réseau depuis l'instance EC2 vers 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. Cliquez sur Roles (Rôles), puis sur Create Role (Créer un rôle).
3. Sélectionnez AWS service (Service AWS), puis EC2 sous Use Case (Cas d'utilisation).
Remarque : la création d'un rôle IAM depuis la console avec EC2 sélectionné comme entité de confiance entraîne automatiquement la création d'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'AWS Command Line Interface (AWS CLI) ou depuis l'API, un profil d'instance n'est pas créé automatiquement. Pour plus d'informations, veuillez consulter la section 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 politique personnalisée qui fournit les autorisations minimales requises pour accéder à votre compartiment S3. Pour savoir comment créer des politiques personnalisées, consultez Écriture de politiques IAM : comment accorder l’accès à un compartiment Amazon S3 et Identity and Access Management dans Amazon S3.
Remarque : en matière de sécurité, il est recommandé de créer une politique disposant des autorisations minimales requises. Cependant, afin d'autoriser l'accès EC2 à l'ensemble de vos compartiments Amazon S3, utilisez la politique 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 Nom de rôle, puis sélectionnez 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, 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é à 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. Choisissez Stratégie de compartiment.
5. Recherchez les instructions avec "Effect": "Deny".
6. Dans votre stratégie de compartiment, modifiez ou retirez 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.
Validation de la connectivité réseau depuis l'instance EC2 vers Amazon S3
Pour que votre instance EC2 puisse se connecter 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 dirigé vers une passerelle Internet
- Instance EC2 privée avec un routage par défaut via une passerelle NAT
- Instance EC2 privée avec une connectivité à Amazon S3 à l'aide d'un point de terminaison d'un VPC de passerelle
Afin de résoudre les problèmes de connectivité entre une instance EC2 privée et un compartiment S3, veuillez consulter la section Pourquoi ne puis-je pas me connecter à un compartiment S3 à l'aide d'un point de terminaison d'un VPC passerelle ?
Validation de l'accès aux compartiments S3
1. Installez l'AWS CLI sur votre instance EC2.
Remarque : en cas d'erreurs lors de l'exécution de commandes AWS CLI, assurez-vous d'utiliser la version d'AWS CLI la plus récente.
2. Vérifiez l'accès à vos compartiments S3 en exécutant la commande suivante. Remplacez DOC-EXAMPLE-BUCKET par le nom de votre 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 accordées dans les éléments suivants :
- Le rôle IAM attaché à l'instance ;
- La politique de clé KMS.
Si ces autorisations ne sont pas accordées, vous ne pouvez pas copier ou télécharger les objets S3. 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 ?
Informations connexes
Pourquoi ne puis-je pas me connecter à un compartiment S3 à l'aide d'un point de terminaison d'un VPC passerelle ?