Le Blog Amazon Web Services

Gérez facilement les ensembles de données partagés avec les points d’accès Amazon S3

Le stockage sécurisé, évolutif, durable et hautement disponible est un composant fondamental du cloud computing. C’est pourquoi Amazon Simple Storage Service (S3) a été le premier service lancé par AWS en 2006. Il a été un élément constitutif de la plupart des services qu’AWS propose désormais. Des fonctionnalités telles qu’Amazon Redshift, Amazon Athena, Amazon EMR et AWS Lake Formation ont fait d’ Amazon S3, non seulement un moyen de stocker des objets, mais aussi un moteur pour transformer ces données en informations utiles. Ces capacités signifient que les modèles d’accès et les besoins pour les données stockées dans les buckets (compartiments) S3 ont évolué.

Nous avons lancé fin 2019 une nouvelle façon de gérer l’accès aux données à grande échelle pour les ensembles de données partagés dans Amazon S3 : les points d’accès Amazon S3 . Les points d’accès S3 sont des noms d’hôte uniques avec des stratégies d’accès dédiées qui décrivent comment accéder aux données à l’aide de ce point de terminaison (endpoint, en anglais). Avant les points d’accès S3 , l’accès partagé aux données nécessitait de gérer un seul document de politique d’accès sur un bucket. Ces politiques peuvent représenter des centaines d’applications avec de nombreuses autorisations différentes, faisant des audits et des mises à jour un goulot d’étranglement potentiel affectant de nombreux systèmes.

Avec les points d’accès S3 , vous pouvez ajouter des points d’accès au fur et à mesure que vous ajoutez des applications ou des équipes supplémentaires, en gardant des politiques spécifiques pour chaque point d’accès S3 afin de pouvoir les gérer plus facilement. Un bucket peut avoir plusieurs points d’accès et chaque point d’accès possède sa propre politique d’accès AWS Identity and Access Management (IAM) . Les stratégies de point d’accès sont similaires aux stratégies de bucket, mais associées au point d’accès. Les points d’accès S3 peuvent également être limités pour n’autoriser l’accès qu’à partir d’un Amazon Virtual Private Cloud (VPC) (Cloud Privé Virtuel). Et comme chaque point d’accès possède son propre nom DNS, vous pouvez désormais adresser vos buckets avec n’importe quel nom unique dans votre compte AWS et votre région.

Création de points d’accès Amazon S3

Dans cette section, nous allons travailler avec un bucket S3 qui contient des objets liés à des topics RSS accessibles à plusieurs lecteurs. Nous allons créer un nouveau point d’accès pour ce bucket qui sera dédié à un lecteur spécifique, dans notre cas ce sera Alice, afin de contrôler ses politiques d’accès de manière simple et granulaire.

Ajoutons un point d’accès à un bucket à l’aide de la console Amazon S3. Vous pouvez également créer et gérer vos points d’accès S3 à l’aide de l’ interface de ligne de commande AWS (CLI) , des kits SDK AWS ou via l’API. Nous avons sélectionné un bucket S3 qui contient des objets générés par une fonction AWS Lambda et nous avons ensuite cliqué sur l’onglet Points d’accès.

Création d'un point d'accès pour la fonction Lambda.

Créons maintenant un nouveau point d’accès. Nous souhaitons donner à un utilisateur IAM du nom d’Alice la permission de faire des GET et des PUT sur les objets avec le préfixe Alice. Nous nommons ce point d’accès point-acces-alice. Il existe des options pour restreindre l’accès à un Amazon VPC, où on mentionnerait juste le VPC ID. Dans notre exemple, nous autorisons l’accès depuis l’extérieur du VPC. Nous avons donc sélectionné Internet et puis nous sommes passés à l’étape suivante.

 

Configuration du point d'accès pour la fonction Lambda.

Les points d’accès S3 facilitent le blocage de l’accès public. Nous allons bloquer tout accès public à ce point d’accès.

Configurer le bloqueur d'accès public pour le point d'accès.

Et maintenant nous pouvons attacher notre politique d’accès. Dans cette politique, notre Principal est l’utilisatrice Alice, et la ressource est notre point d’accès combiné avec chaque objet dont le préfixe est /Alice. Pour plus d’exemples des types de stratégies que vous souhaiterez peut-être attacher à vos points d’accès S3, consultez la documentation.

Configuration de la stratégie pour le point d'accès.

Après avoir créé le point d’accès, nous pouvons y accéder par nom d’hôte en utilisant le format https://[access_point_name]-[accountID].s3-accesspoint.[region].amazonaws.com. Via les Kit SDK AWS et l’AWS CLI et après mise à jour si besoin, nous pouvons l’utiliser de la même manière que nous utiliserions un bucket. Par exemple, en supposant que nous soyons authentifiés en tant qu’Alice, nous pourrions faire ce qui suit :

$ aws s3api get-object --key /Alice/object.zip --bucket arn:aws:s3:us-east-1:[my-account-id]:point-acces-alice download.zip

Les points d’accès qui ne sont pas limités aux VPC peuvent également être utilisés via la console S3.

Éléments à retenir

  • Les points d’accès S3 sont disponibles dans toutes les régions AWS, sans frais.
  • Par défaut, chaque compte peut créer 1 000 points d’accès par région.
  • Vous pouvez utiliser des points d’accès S3 avec AWS CloudFormation afin d’automatiser leur déploiement grâce à une approche d’infrastructure sous forme de code (IaC, “Infrastructure as Code”).
  • Si vous utilisez AWS Organizations , vous pouvez ajouter une stratégie de contrôle de service (SCP) exigeant que tous les points d’accès soient limités à un AmazonVPC.

Lorsqu’il s’agit de conception de logiciels, garder les périmètres les plus petits possibles et focalisées sur une tâche spécifique est généralement une bonne approche. Avec les points d’accès S3 , vous pouvez personnaliser les noms d’hôte et les autorisations de tout utilisateur ou application qui a besoin d’accéder à votre ensemble de données partagé. Dites-nous ce que vous pensez de cette nouvelle fonctionnalité et configurez vos premiers points d’accès dès aujourd’hui. Bon développement!

Article original rédigé en anglais par Brandon West, Developer Evangelist chez AWS, et traduit par Antoine Yeramian, Solutions Architect chez AWS France, LinkedIn.