Présentation de la gestion des accès - Amazon Simple Storage Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Présentation de la gestion des accès

Lorsque vous accordez des autorisations dans Amazon S3, vous décidez à qui les accorder, à quelles ressources Amazon S3 ces autorisations s'appliquent ainsi que les actions spécifiques que vous souhaitez autoriser sur ces ressources. Les sections suivantes fournissent une présentation des ressources Amazon S3 ainsi que al manière de déterminer la meilleure méthode pour contrôler l'accès à ces ressources.

Ressources Amazon S3 : compartiments et objets

Dans AWS, une ressource est une entité avec laquelle vous pouvez travailler. Dans Amazon S3, les compartiments et les objets sont des ressources qui possèdent chacune des sous-ressources associées.

Les sous-ressources de compartiment contiennent les éléments suivants :

Les sous-ressources d'objet contiennent les éléments suivants :

  • acl : stocke une liste d'autorisations d'accès sur l'objet. Pour plus d’informations, consultez Présentation de la liste de contrôle d'accès (ACL).

  • restore — Supporte la restauration temporaire d'un objet archivé. Pour plus d’informations, consultez POST Object restore dans la Référence d’API Amazon Simple Storage Service.

    Un objet dans la classe de stockage S3 Glacier Flexible Retrieval est un objet archivé. Pour accéder à l'objet, vous devez d'abord lancer une demande de restauration, qui peut restaurer une copie de l'objet archivé. Dans la demande, vous devez spécifier pendant combien de jours vous souhaitez que la copie restaurée de l'objet existe. Pour en savoir plus sur l'archivage d'objets, consultez Gestion du cycle de vie de votre stockage.

Propriété du compartiment et de l'objet Amazon S3

Les compartiments et les objets sont des ressources Amazon S3. Par défaut, seul le propriétaire de ressource peut accéder à ces ressources. Le propriétaire de la ressource fait référence à Compte AWS celui qui crée la ressource. Par exemple :

  • Celui Compte AWS que vous utilisez pour créer des buckets et télécharger des objets possède ces ressources.

  • Si vous chargez un objet à l'aide des informations d'identification d'utilisateur ou de rôle AWS Identity and Access Management (IAM), l' Compte AWS utilisateur ou le rôle auquel appartient l'utilisateur ou le rôle est propriétaire de l'objet.

  • Le propriétaire d'un bucket peut accorder des autorisations entre comptes à un autre Compte AWS (ou à des utilisateurs d'un autre compte) pour le téléchargement d'objets. Dans ce cas, Compte AWS celui qui télécharge les objets est propriétaire de ces objets. Le propriétaire du compartiment n'a aucune autorisation sur les objets dont sont propriétaires d'autres comptes, à l'exception des cas suivants :

    • Le propriétaire du compartiment paie les factures. Le propriétaire du compartiment peut refuser l'accès aux objets ou supprimer des objets dans le compartiment, quel que soit le propriétaire de ces derniers.

    • Le propriétaire du compartiment peut archiver n'importe quel objet ou restaurer des objets archivés, quel que soit le propriétaire de ces derniers. L'archivage fait référence à la classe de stockage utilisée pour stocker les objets. Pour plus d’informations, consultez Gestion du cycle de vie de votre stockage.

Titularité et authentification de demande

Toutes les demandes à un compartiment sont soit authentifiées ou non authentifiées. Les demandes authentifiées doivent inclure une valeur de signature qui authentifie l'expéditeur de la demande, alors que les demandes non authentifiées. Pour plus d'informations sur l'authentification des demandes, veuillez consulter Demandes.

Un propriétaire de compartiment peut choisir d'autoriser les demandes non authentifiées. Par exemple, les demandes PUT Object non authentifiées sont permises lorsqu'un compartiment dispose d'une stratégie de compartiment publique, ou lorsqu'une ACL de compartiment autorise l'accès WRITE ou FULL_CONTROL au groupe Tous les utilisateurs ou spécifiquement à l'utilisateur anonyme. Pour plus d’informations sur les politiques de compartiment public et les listes de contrôle d’accès (ACL) publiques, consultez La signification du mot « public ».

Toutes les demandes non authentifiées sont faites par l'utilisateur anonyme. Cet utilisateur est représenté dans les listes ACL par l'ID d'utilisateur canonique spécifique 65a011a29cdf8ec533ec3d1ccaae921c. Si un objet est chargé sur un compartiment via une demande non authentifiée, l'utilisateur anonyme est propriétaire de l'objet. L'ACL d'objet par défaut autorise le FULL_CONTROL pour l'utilisateur anonyme en tant que propriétaire de l'objet. Ainsi, Amazon S3 autorise les demandes non authentifiées pour récupérer l'objet ou modifier son ACL.

Pour empêcher que les objets soient modifiés par un utilisateur anonyme, nous vous recommandons de ne pas implémenter des stratégies de compartiment qui autorisent des écritures publiques anonymes sur votre compartiment ou qui utilisent des ACL pour permettre à l'utilisateur anonyme de disposer d'un accès en écriture à votre compartiment. Vous pouvez faire appliquer ce comportement recommandé à l'aide du blocage de l'accès public Amazon S3.

Pour en savoir plus sur le blocage de l'accès public, consultez Blocage de l'accès public à votre stockage Amazon S3. Pour en savoir plus sur les listes ACL, consultez Présentation de la liste de contrôle d'accès (ACL).

Important

Nous vous recommandons de ne pas utiliser les informations d'identification de l'utilisateur Compte AWS root pour effectuer des demandes authentifiées. Il est préférable de créer un rôle IAM, puis de lui accorder un accès total. Nous appelons les utilisateurs possédant ce rôle des administrateurs. Vous pouvez utiliser les informations d'identification attribuées au rôle d'administrateur, au lieu des informations d'identification de l'utilisateur Compte AWS root, pour interagir avec AWS et effectuer des tâches, telles que créer un bucket, créer des utilisateurs et accorder des autorisations. Pour plus d'informations, consultez Informations d’identification d'utilisateur root de Compte AWS et informations d’identification d'utilisateur IAM dans Références générales AWS et dans Bonnes pratiques de sécurité dans IAM du Guide de l'utilisateur IAM.

Opérations de ressources

Amazon S3 fournit un ensemble d'opérations pour utiliser les ressources Amazon S3. Pour obtenir la liste des opérations disponibles, consultez la section Actions définies par Amazon S3 dans le Service Authorization Reference.

Gestion de l’accès aux ressources

La gestion de l'accès consiste à accorder aux autres (Comptes AWS et aux utilisateurs) l'autorisation d'effectuer les opérations sur les ressources en rédigeant une politique d'accès. Par exemple, vous pouvez accorder une PUT Object autorisation à un utilisateur dans un Compte AWS afin qu'il puisse télécharger des objets dans votre compartiment. En plus d'accorder des autorisations à des utilisateurs et à des comptes individuels, vous pouvez accorder des autorisations à tout le monde (également appelé accès anonyme) ou à tous les utilisateurs authentifiés (utilisateurs dotés AWS d'informations d'identification). Par exemple, si vous configurez votre compartiment en tant que site Web, vous souhaiterez peut-être rendre les objets publics en accordant une autorisation GET Object à tout le monde.

Options de stratégie d'accès

La gestion de stratégie d'accès décrit qui a accès à quoi. Vous pouvez associer une stratégie d'accès à une ressource (compartiment et objet) ou un utilisateur. En conséquence, vous pouvez classer les stratégies d'accès Amazon S3 disponibles par catégories, comme suit :

  • Stratégies basées sur les ressources – Les stratégies de compartiment et les listes de contrôle d'accès (ACL) sont basées sur les ressources étant donné qu'elles sont associées à vos ressources Amazon S3.

    
							Schéma illustrant Compte AWS les ressources, y compris un compartiment S3 avec une ACL de compartiment et une politique de compartiment, et des objets S3 avec des ACL d'objets.
    • Liste ACL : chaque compartiment et objet dispose d'une liste ACL associée. Une liste ACL est une liste d'accords identifiant les bénéficiaires et les autorisations accordées. Vous utilisez des listes ACL pour accorder les autorisations en lecture/écriture de base à d'autres Comptes AWS. Les listes ACL utilisent un schéma XML spécifique à Amazon S3.

      Voici un exemple de liste ACL de compartiment. L'affectation dans la liste ACL montre que le propriétaire du compartiment dispose d'une autorisation de contrôle total.

      <?xml version="1.0" encoding="UTF-8"?> <AccessControlPolicy xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Owner> <ID>*** Owner-Canonical-User-ID ***</ID> <DisplayName>owner-display-name</DisplayName> </Owner> <AccessControlList> <Grant> <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="Canonical User"> <ID>*** Owner-Canonical-User-ID ***</ID> <DisplayName>display-name</DisplayName> </Grantee> <Permission>FULL_CONTROL</Permission> </Grant> </AccessControlList> </AccessControlPolicy>

      Les listes ACL de compartiment et d'objet disposent chacune du même schéma XML.

    • Politique de compartiment : pour votre compartiment, vous pouvez ajouter une politique de compartiment pour accorder à d'autres utilisateurs Comptes AWS ou à des utilisateurs IAM des autorisations pour le compartiment et les objets qu'il contient. Les autorisations d'objets ne s'appliquent qu'aux objets créés par le propriétaire du compartiment. Les stratégies de compartiment complètent, et dans de nombreux cas, remplacent les stratégies d'accès basées sur les listes ACL.

      Voici un exemple de stratégie de compartiment. Les stratégies de compartiment (et les stratégies utilisateur) sont exprimées à l'aide d'un fichier JSON. La stratégie attribue une autorisation de lecture anonyme de tous les objets contenus dans un compartiment. La stratégie de compartiment énonce une affirmation, qui autorise une action s3:GetObject (autorisation de lecture) sur les objets contenus dans un compartiment appeléexamplebucket.  En spécifiant le principal avec un caractère générique (*), la stratégie accorde un accès anonyme, ce qui doit être utilisé avec précaution. Par exemple, la stratégie de compartiment suivante rend les objets accessibles publiquement.

      { "Version":"2012-10-17", "Statement": [ { "Sid":"GrantAnonymousReadPermissions", "Effect":"Allow", "Principal": "*", "Action":["s3:GetObject"], "Resource":["arn:aws:s3:::awsexamplebucket1/*"] } ] }
  • Stratégies utilisateur – Vous pouvez utiliser IAM pour gérer l'accès à vos ressources Amazon S3. Vous pouvez créer des utilisateurs, des groupes et des rôles IAM dans votre compte et leur associer des politiques d'accès leur accordant l'accès aux AWS ressources, y compris Amazon S3.

    
							Schéma illustrant l' Compte AWS administrateur et les autres utilisateurs auxquels sont associées des politiques utilisateur.

    Pour plus d'informations sur (IAM), consultez AWS Identity and Access Management (IAM).

    Voici un exemple de stratégie d'utilisateur. Vous ne pouvez pas attribuer d'autorisation anonyme dans une stratégie d'utilisateur IAM car cette stratégie est directement associée à un utilisateur. La stratégie donnée en exemple permet à l'utilisateur qui y est associé d'exécuter six actions Amazon S3 différentes sur un compartiment et sur les objets qu'il contient. Vous pouvez attacher cette stratégie à un utilisateur, groupe ou rôle IAM spécifique.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AssignUserActions", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:ListBucket", "s3:DeleteObject", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::awsexamplebucket1/*", "arn:aws:s3:::awsexamplebucket1" ] }, { "Sid": "ExampleStatement2", "Effect": "Allow", "Action": "s3:ListAllMyBuckets", "Resource": "*" } ] }

Lorsqu'Amazon S3 reçoit une demande, il doit évaluer toutes les stratégies d'accès afin de déterminer s'il autorise ou refuse cette demande. Pour plus d’informations sur la manière dont Amazon S3 évalue ces politiques, consultez Comment Amazon S3 autorise une demande.

Analyseur d'accès IAM pour S3

Sur la console Amazon S3, vous pouvez utiliser l'analyseur d'accès IAM pour S3 afin de passer en revue tous les compartiments dotés de listes de contrôle d'accès (ACL), de politiques de compartiment ou de politiques de point d'accès qui accordent un accès public ou partagé. IAM Access Analyzer for S3 vous avertit de la présence de compartiments configurés pour autoriser l'accès à toute personne sur Internet ou autre Comptes AWS, y compris Comptes AWS en dehors de votre organisation. Pour chaque compartiment public ou partagé, vous recevez des résultats qui signalent la source et le niveau d'accès public ou partagé.

Dans l'analyseur d'accès IAM pour S3, vous pouvez bloquer tout accès public à un compartiment en un seul clic. Nous vous recommandons de bloquer tous les accès à vos compartiments, sauf si vous avez besoin d'un accès public pour prendre en charge un cas d'utilisation spécifique. Avant de bloquer tout accès public, assurez-vous que vos applications continueront à fonctionner correctement sans accès public. Pour plus d’informations, consultez Blocage de l'accès public à votre stockage Amazon S3.

Vous pouvez également aller plus loin en configurant des niveaux d'accès précis dans les paramètres des niveaux d'autorisation des compartiments. Pour les cas d'utilisation spécifiques et vérifiés nécessitant un accès public ou partagé, vous pouvez confirmer et enregistrer votre intention de maintenir le niveau d'accès public ou partagé en archivant les résultats pour le compartiment. Vous pouvez revisiter et modifier ces configurations de compartiments à tout moment. Vous pouvez également télécharger vos résultats sous forme de rapport CSV à des fins d'audit.

L'analyseur d'accès IAM pour S3 est disponible gratuitement sur la console Amazon S3. IAM Access Analyzer pour S3 est alimenté par AWS Identity and Access Management (IAM) IAM Access Analyzer. Pour utiliser IAM Access Analyzer pour S3 sur la console Amazon S3, vous devez visiter la console IAM et créer un analyseur au niveau du compte dans IAM Access Analyzer par région.

Pour plus d'informations sur l'analyseur d'accès IAM pour S3, consultez Examen de l'accès aux compartiments à l'aide de l'analyseur d'accès IAM pour S3.

Quelle méthode de contrôle d'accès dois-je utiliser ?

Au regard des options disponibles pour écrire la stratégie d'accès, les questions suivantes se posent :

  • Quand utiliser une méthode de contrôle d'accès spécifique ? Par exemple, afin d'accorder des autorisations de compartiment, faut-il utiliser une stratégie de compartiment ou une liste ACL de compartiment ?

    Je détiens le compartiment et les objets du compartiment. Dois-je utiliser une stratégie d'accès basée sur les ressources ou une stratégie basée sur les identités IAM ?

    Si j'utilise une stratégie d'accès basée sur les ressources, dois-je utiliser une stratégie de compartiment ou une liste ACL d'objet pour gérer les autorisations d'objet ?

  • Je détiens un compartiment mais pas tous les objets qu'il contient. Comment gérer les autorisations d'accès pour les objets détenus par quelqu'un d'autre ?

  • Si j'autorise l'accès à l'aide d'une combinaison de ces options de stratégie d'accès, comment Amazon S3 détermine si un utilisateur a l'autorisation d'exécuter une demande d'opération ?

Les sections suivantes expliquent ces méthodes alternatives de contrôle d'accès, comment Amazon S3 évalue les mécanismes de contrôle d'accès, et quand privilégier telle ou telle méthode. Elles fournissent également des exemples de procédure.