Comment sécuriser les fichiers dans mon compartiment Amazon S3 ?

Date de la dernière mise à jour : 17/05/2019

Je veux m'assurer que mes compartiments Amazon Simple Storage Service (Amazon S3) et les objets sont sécurisés. Les ressources que je souhaite rendre privées doivent être privées. Comment limiter les autorisations d'accès à mes ressources Amazon S3 ? Comment contrôler l'accès à ces ressources ?

Résolution

Restreindre l'accès à vos ressources S3

Par défaut, tous les compartiments S3 sont privés et accessibles uniquement aux utilisateurs autorisés explicitement à y accéder. Lorsque vous utilisez AWS, il est recommandé de restreindre l'accès à vos ressources aux personnes qui en ont réellement besoin. Suivez le principe du moindre privilège.

Restreignez l'accès à vos compartiments ou objets S3 comme suit :

  • Écrivez des stratégies utilisateur AWS Identity and Access Management (IAM) qui indiquent les utilisateurs qui peuvent accéder à des compartiments et objets spécifiques. Les stratégies IAM fournissent un moyen de gérer par programme les autorisations Amazon S3 de plusieurs utilisateurs. Pour plus d'informations sur la création et le test de stratégies utilisateur, consultez Générateur de stratégie AWS et Simulateur de stratégie IAM.
  • Écrivez des stratégies de compartiment qui définissent l'accès à des objets et des compartiments spécifiques. Vous pouvez utiliser une stratégie de compartiment pour accorder des accès entre plusieurs comptes AWS, accorder des autorisations publiques ou anonymes et autoriser ou bloquer l'accès en fonction des conditions. Pour plus d'informations sur la création et le test des stratégies de compartiment, consultez Générateur de stratégies AWS.
    Remarque : vous pouvez utiliser une instruction de refus dans une stratégie de compartiment pour restreindre l'accès à des utilisateurs IAM spécifiques, même si les utilisateurs disposent d'un accès dans une stratégie IAM.
  • Utilisez Amazon S3 Block Public Access pour centraliser la limitation de l'accès public. Les paramètres Block Public Access remplacent les stratégies de compartiment et les autorisations d'objet. Veillez à activer Block Public Access (Bloquer l'accès public) pour tous les comptes et compartiments pour lesquels vous ne voulez pas autoriser un accès public.
  • Définissez des listes de contrôle d'accès (ACL) sur vos compartiments et objets.
    Remarque : si vous devez gérer les autorisations par programme, utilisez des stratégies IAM ou de compartiment à la place des listes ACL. Cependant, vous pouvez utiliser des listes ACL lorsque votre stratégie de compartiment dépasse la taille de fichier maximale 20 Ko. Ou bien, vous pouvez utiliser des listes ACL pour accorder l'accès pour les journaux d'accès du serveur Amazon S3 ou les journaux Amazon CloudFront.

Tenez compte des bonnes pratiques suivantes lorsque vous utilisez des listes ACL pour sécuriser vos ressources :

  • Veillez à vérifier les autorisations ACL qui autorisent des actions Amazon S3 sur un compartiment ou un objet. Pour la liste des autorisations ACL et les actions qu'elles autorisent, consultez Quelles autorisations est-il possible d'accorder ?
  • Soyez strict quant aux personnes qui peuvent disposer d'un accès en lecture et en écriture sur vos compartiments.
  • Réfléchissez bien à votre cas d'utilisation avant d'accorder un accès en lecture au groupe Everyone (Tout le monde), car cet accès permet à quiconque d'accéder à un compartiment ou un objet.
  • N'accordez jamais l'accès en écriture au groupe Everyone (Tout le monde). Ce paramètre permet à n'importe quel utilisateur d'ajouter des objets à votre compartiment, qui vous seront ensuite facturés. Ce paramètre permet également à n'importe quel utilisateur de supprimer des objets dans le compartiment.
  • N'accordez jamais l'accès en écriture au groupe Any authenticated AWS user (N'importe quel utilisateur AWS authentifié). Ce groupe comprend toutes les personnes disposant d’un compte AWS actif, et pas seulement les utilisateurs IAM dans votre compte. Pour contrôler l'accès des utilisateurs IAM sur votre compte, utilisez une stratégie IAM à la place. Pour plus d'informations sur la façon dont Amazon S3 évalue les stratégies IAM, consultez Comment Amazon S3 autorise une demande.

Outre les stratégies, Block Public Access (Bloquer l'accès public) et les listes ACL, vous pouvez également limiter l'accès à certaines actions des manières suivantes :

  • Activez la MFA Delete (Suppression MFA) qui impose aux utilisateurs de s'authentifier à l'aide d'un périphérique MFA (Multi-factor Authentication) pour pouvoir supprimer un objet ou désactiver la gestion des versions d'un compartiment.
  • Définissez MFA-protected API access (Accès API protégé MFA) qui impose aux utilisateurs de s'authentifier avec un périphérique MFA AWS pour pouvoir exécuter certaines opérations API Amazon S3.
  • Si vous partagez temporairement un objet S3 avec un autre utilisateur, créez une adresse URL pré-signée pour accorder un accès temporaire à l'objet. Pour plus d'informations, consultez Partage d'un objet avec d'autres utilisateurs.

Surveiller vos ressources S3

Pour suivre les actions exécutées sur vos compartiments et objets, vous pouvez activer la journalisation et surveiller vos ressources des manières suivantes :

Utiliser le chiffrement pour protéger vos données

Si votre cas d'utilisation nécessite de chiffrer les données pendant la transmission, Amazon S3 prend en charge le protocole HTTPS qui chiffre les données en transit vers et depuis Amazon S3. Tous les kits SDK AWS et les outils AWS utilisent HTTPS par défaut.
Remarque : si vous utilisez des outils de tiers pour interagir avec Amazon S3, contactez les développeurs pour savoir si leurs outils prennent également en charge le protocole HTTPS.

Si votre cas nécessite de chiffrer les données au repos, Amazon S3 propose le chiffrement côté serveur (SSE). Les options SSE incluent SSE-S3, SSE-KMS ou SSE-C. Vous pouvez spécifier les paramètres SSE lorsque vous écrivez des objets dans le compartiment. Vous pouvez également activer le chiffrement par défaut sur votre compartiment avec SSE-S3 ou SSE-KMS.

Si votre cas d'utilisation nécessite le chiffrement côté client, consultez Protection des données en utilisant le chiffrement côté client.