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

Ce guide ne fait plus l'objet de mises à jour. Pour obtenir des informations et des instructions actuelles, reportez-vous au nouveau Guide de l'utilisateur Amazon S3.

Présentation de la gestion des accès

Lorsque vous accordez des autorisations, vous décidez à qui les accorder, à quelles ressources Amazon S3 ces autorisations s'appliquent et les actions spécifiques que vous souhaitez autoriser sur ces ressources.

Ressources Amazon S3 : compartiments et objets

Dans Amazon Web Services (AWS), une ressource est une entité avec laquelle vous pouvez travailler. Dans Amazon S3, les compartiments et les objets sont des ressources primaires et possèdent chacun des sous-ressources associées. Par exemple, 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. Cette rubrique explique comment utiliser cette sous-ressource pour gérer les autorisations d'objets (consultez Gestion de l'accès grâce aux listes ACL).

  • restore – Prend temporairement en charge la restauration d'un objet archivé (veuillez consulter POST Object restore). Un objet dans la classe de stockage S3 Glacier 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 des objets.

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 désigne le compte AWS qui crée la ressource. Par exemple :

  • Le compte AWS que vous utilisez pour créer des compartiments et charger des objets est propriétaire de ces ressources.

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

  • Un propriétaire de compartiment peut accorder des autorisations inter-comptes à un autre compte AWS (ou aux utilisateurs d'un autre compte) pour charger des objets. Dans ce cas, le compte AWS qui 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 des objets.

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, ce qui n'est pas le cas pour les demandes non authentifiées. Pour de plus amples informations sur l'authentification de 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 de plus amples informations sur les stratégies de compartiment publique et les ACL publiques, veuillez consulter 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 de contrôle d'accès (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 de plus amples informations sur le blocage de l'accès public, veuillez consulter Utilisation du blocage de l'accès public Amazon S3. Pour en savoir plus sur les listes ACL, consultez Présentation de la liste de contrôle d'accès (ACL).

Important

AWS recommande de ne pas utiliser les informations d'identification d'utilisateur racine de votre compte AWS pour effectuer des demandes non authentifiées. Il est préférable de créer un utilisateur IAM, puis de lui accorder un accès total. Nous appelons de tels utilisateurs des administrateurs. En lieu et place des informations d'identification de l'utilisateur racine du compte AWS, vous pouvez utiliser les informations d'identification de l'administrateur pour interagir avec AWS et effectuer des tâches comme créer un compartiment, ajouter de nouveaux utilisateurs et leur accorder des autorisations. Pour de plus amples informations, veuillez consulter Informations d'identification de l'utilisateur racine d'un compte AWS et informations d'identification de l'utilisateur IAM dans les Références générales AWS et Bonnes pratiques IAM dans le 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 Actions définies par Amazon S3.

Gestion de l'accès aux ressources

La gestion de l'accès fait référence au fait d'attribuer à d'autres (comptes et utilisateurs AWS) l'autorisation d'effectuer des opérations liées aux ressources en écrivant une stratégie d'accès. Par exemple, vous pouvez accorder une autorisation PUT Object à un utilisateur de compte AWS afin de lui permettre de charger des objets dans votre compartiment. En plus des autorisations accordées aux utilisateurs individuels et aux comptes, vous pouvez attribuer des autorisations à tout le monde (aussi appelé accès anonyme) ou à tous les utilisateurs authentifiés (utilisateurs possédant des informations d'identification AWS). 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.

    
						Diagramme décrivant des ressources de compte AWS, comprenant un compartiment S3 avec la liste ACL du compartiment et la stratégie de compartiment, ainsi que des objets S3 avec des listes ACL d'objet.
    • 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.

    • Stratégie de compartiment – Pour votre compartiment, vous pouvez ajouter une stratégie de compartiment à attribuer à d'autres comptes AWS ou à des autorisations d'utilisateurs IAM 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 y associer des stratégies d'accès leur attribuant l'accès aux ressources AWS, dont Amazon S3.

    
						Diagramme décrivant l'administrateur de compte AWS et d'autres utilisateurs avec les stratégies utilisateur attachées.

    Pour plus d´informations sur IAM, veuillez consulter la page de produit détaillée 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 de plus amples informations sur la manière dont Amazon S3 évalue ces stratégies, veuillez consulter Comment Amazon S3 autorise une demande.

Analyseur d'accès pour S3

Sur la console Amazon S3, vous pouvez utiliser l'analyseur d'accès pour S3 pour examiner tous les compartiments dotés de listes de contrôle d'accès (ACL), de stratégies de compartiment ou de stratégies de point d'accès qui autorisent un accès public ou partagé. L'analyseur d'accès pour S3 vous avertit au sujet des compartiments configurés pour autoriser l'accès à toute personne sur Internet ou à d'autres comptes AWS, y compris les 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 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 Utilisation du blocage de l'accès public 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 pour S3 est disponible gratuitement sur la console Amazon S3. L'analyseur d'accès pour S3 est optimisé par AWS Identity and Access Management (IAM) Access Analyzer. Pour utiliser l'analyseur d'accès 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 pour chaque région.

Pour de plus amples informations sur l'analyseur d'accès pour S3, veuillez consulter Utilisation de l'analyseur d'accès pour S3 dans le Guide de l'utilisateur de la console Amazon Simple Storage Service.

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 d'utilisateur 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.

Nous vous recommandons dans un premier temps d'examiner les rubriques de présentation qui détaillent les options disponibles pour vous permettre de gérer l'accès à vos ressources Amazon S3. Pour plus d'informations, consultez Identity and Access Management dans Amazon S3. Vous pourrez ensuite consulter les rubriques suivantes pour plus d'informations sur les options de stratégie d'accès spécifiques.