DEV Community

Fatayo Opeyemi Sodiki Aderemi
Fatayo Opeyemi Sodiki Aderemi

Posted on • Updated on

Restrictions des accès aux buckets S3 avec l'IAM

Si vous voulez connaître comment limiter l’accès à un bucket (compartiment) Amazon S3 alors vous êtes au bon endroit.

Prérequis:

  • Avoir un compte AWS
  • Installer AWS CLI de préférence aws cli v2 Voir ce lien
  • Avoir deux bucket s3 crée

Le but de cet article est de pouvoir attribuer des permissions minimales et en fonction d'un besoin bien précis à un utilisateur (IAM) pour pouvoir effectuer ses tâches sur un compartiment S3 spécifiques.

Pour faire simple, vous créez deux compartiments dans le service Amazon S3 tels que montrer dans l'image ci-dessous.

Image description

Une fois les compartiments créés alors vous vous rendrez dans le service IAM là où vous allez procéder à la création d'une politique d'accès qui sera reliée à votre utilisateur chargé de la gestion du compartiment en question.
Il est bien de noter qu'une politique dans AWS est un objet qui définit les autorisations. Il en existe plusieurs types de politique dans AWS 👉 voir le lien vers la documentation d'AWS.
Sur l'image ci-dessous vous verrez le menu Politiques ainsi que le bouton créer une politique entouré en rouge pour créer notre politique qui sera rattaché à notre futur utilisateur.

Image description

Après avoir cliqué sur le bouton, il vous redirige sur l'interface qui est décrite dans l'image ci-dessous, qui vous permet d'ajouter vos autorisations en fonction de vos besoins respectifs. Pour cet article, vous cliquez sur l'option json qui vous permet d'ajouter vos autorisations en format json.

Image description

Le format json par défaut quand vous cliquez sur le bouton est comme celle de l'image ci-dessous.

Image description

D'où, il vous revient de droit de faire votre propre manipulation en respectant le format de fichier json en fonction des restrictions que vous voulez apporter à votre compartiment S3.
Pour cela ci-dessous un exemple de restrictions pour notre compartiment S3.
Image description
Vous y autoriserez trois actions (GetObject, PutObject et DeleteObject) à effectuer sur notre compartiment appelé compacti-test.
Vous pouvez voir en clair les actions autorisées par le bouton Visuel comme illustrer dans les images ci-dessous.

Image description

Image description

Si les actions d'autorisation apportées au compartiment vous convient alors vous passez à l'étape suivant, là où vous allez renseigner certaines informations à attribuer à vôtre politique qui sera créé et le soumettre.
Image description

Après la soumission de votre politique, vous verrez celle de la votre qui a été personnalisé et géré par vous parmi la liste des politiques existantes.
Image description

Vu qu'il existe maintenant une politique créé, vous allez devoir créer votre utilisateur dans la section Utilisateurs et l'attacher au politique créé dans la section précédente.

Image description

Ces images ci-dessus, vous montre le bouton ajouter des utilisateurs pour inscrire un ou plusieurs utilisateurs et le nom a attribué à votre utilisateur.
Sur la fenêtre suivante, vous avez les autres étapes de la création de l'utilisateur tel que l'attachement de la politique, la vérification des choix et celle la confirmation de l'utilisateur. Voir image ci-dessous.
Image description

Image description

Image description

Si tout semble être bon jusque là 👍, alors vous avez besoin de générer l'access et le secret key pour effectuer La dernière étape de ce tutoriel. Cet accès doit être télécharger et être bien conserver pour plus de sécurité.

Cette étape consiste à faire le test pour s'assurer que votre politique définie plus haut fonctionne comme vous l'avez voulu. Pour cela vous utiliserez l'access et le secret key générer par l'utilisateur test-bucket-s3-user grâce à la commande aws cli.

Image description
Vous allez enregistrer l'access et le secret key avec la commande qui est dans l'image ci-dessous. Vous n'êtes pas obligé d'utiliser la commande avec --profile mais plutôt aws configure. Mais par préférence et clarté vous pouvez créer un profil tel qu'il a été fait et après le test vous le supprimez.

Alors vous pouvez passer au test à proprement dire.

Image description
Dans ce test, les deux commandes saisies dans le terminal retournent une erreur d'accès refusé(access denied) et ces commandes ont but de lister vos compartiments ou le contenu d'un compartiment spécifique tel que compact-test . Ceci s'explique par le manque de permissions nécessaires attribuées à votre utilisateur.

Par contre si vous copiez une image ou autre types d'objet vers votre compartiment S3 cela fonctionne. Voir image ci-dessous

👇 👇 👇 👇 👇 👇 👇 👇 👇 👇 👇 👇 👇 👇 👇 👇 👇 👇 👇 👇 👇 👇 👇
Image description

Image description

Tandis que si vous effectuez les mêmes tests vers le deuxième compartiment crée vous aurez des erreurs puisque cet utilisateur n'est pas autoriser à effectuer des actions sur ce compartiment (compacti-test-1).

Image description

Bonus

Pour pousser un peu plus vos actions d'autorisation sur le compartiment car si vous vous rappelez lors du saisie de la commande pour lister le contenu du compartiment, vous avez eu une erreur d'accès refusé(access denied).
Pour éviter d'avoir cette erreur lorsque vous listez le contenu du compartiment, il faut ajouter une permission à votre politique créée plus haut.
Revenez dans la partie Politiques, cliquez sur le compartiment a modifié et ensuite sur le bouton modifier entouré en rouge pour effectuer une modification de votre politique.
Image description

Juste après cette partie, ajouter les actions d'autorisation qui vont permettre de pouvoir lister le contenu du compartiment concerné.
Image description
L'action s3:ListBucket va autoriser uniquement l'accès au compartiment ou dossier auquel vous souhaitez que l'utilisateur accède.
Si la modification a été effectuée, revérifier à niveau la commande aws s3 ls compacti-test --profile test-s3 comme celle dans l'image ci-dessous.

Image description

Si vous êtes arrivé jusque là je vous dis un gros
Image description

Top comments (0)