Comment Amazon S3 fonctionne avec IAM - 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.

Comment Amazon S3 fonctionne avec IAM

Avant d'utiliser IAM pour gérer l'accès à Amazon S3, découvrez quelles fonctionnalités IAM peuvent être utilisées avec Amazon S3.

Pour obtenir une vue d'ensemble de la façon dont Amazon S3 et les autres AWS services fonctionnent avec la plupart des fonctionnalités IAM, consultez les AWS services compatibles avec IAM dans le guide de l'utilisateur IAM.

Politiques basées sur l'identité pour Amazon S3

Prend en charge les politiques basées sur l’identité

Oui

Les politiques basées sur l’identité sont des documents de politique d’autorisations JSON que vous pouvez attacher à une identité telle qu’un utilisateur, un groupe d’utilisateurs ou un rôle IAM. Ces politiques contrôlent quel type d’actions des utilisateurs et des rôles peuvent exécuter, sur quelles ressources et dans quelles conditions. Pour découvrir comment créer une politique basée sur l’identité, consultez Création de politiques IAM dans le Guide de l’utilisateur IAM.

Avec les politiques IAM basées sur l’identité, vous pouvez spécifier des actions et ressources autorisées ou refusées, ainsi que les conditions dans lesquelles les actions sont autorisées ou refusées. Vous ne pouvez pas spécifier le principal dans une politique basée sur une identité car celle-ci s’applique à l’utilisateur ou au rôle auquel elle est attachée. Pour découvrir tous les éléments que vous utilisez dans une politique JSON, consultez Références des éléments de politique JSON IAM dans le Guide de l’utilisateur IAM.

Exemples de politiques basées sur l'identité pour Amazon S3

Pour consulter des exemples de politiques basées sur l'identité Amazon S3, consultez. Politiques basées sur l'identité pour Amazon S3

Politiques basées sur les ressources au sein d'Amazon S3

Prend en charge les politiques basées sur les ressources

Oui

Les politiques basées sur les ressources sont des documents de politique JSON que vous attachez à une ressource. Des politiques basées sur les ressources sont, par exemple, les politiques de confiance de rôle IAM et des politiques de compartiment. Dans les services qui sont compatibles avec les politiques basées sur les ressources, les administrateurs de service peuvent les utiliser pour contrôler l’accès à une ressource spécifique. Pour la ressource dans laquelle se trouve la politique, cette dernière définit quel type d’actions un principal spécifié peut effectuer sur cette ressource et dans quelles conditions. Vous devez spécifier un principal dans une politique basée sur les ressources. Les principaux peuvent inclure des comptes, des utilisateurs, des rôles, des utilisateurs fédérés ou. Services AWS

Pour permettre un accès intercompte, vous pouvez spécifier un compte entier ou des entités IAM dans un autre compte en tant que principal dans une politique basée sur les ressources. L’ajout d’un principal entre comptes à une politique basée sur les ressources ne représente qu’une partie de l’instauration de la relation d’approbation. Lorsque le principal et la ressource sont différents Comptes AWS, un administrateur IAM du compte sécurisé doit également accorder à l'entité principale (utilisateur ou rôle) l'autorisation d'accéder à la ressource. Pour ce faire, il attache une politique basée sur une identité à l’entité. Toutefois, si une politique basée sur des ressources accorde l’accès à un principal dans le même compte, aucune autre politique basée sur l’identité n’est requise. Pour plus d’informations, consultez Différence entre les rôles IAM et les politiques basées sur une ressource dans le Guide de l’utilisateur IAM.

Le service Amazon S3 prend en charge les politiques relatives aux compartiments, les politiques relatives aux points d'accès et les autorisations d'accès :

  • Les politiques de compartiment sont des politiques basées sur les ressources associées à un compartiment Amazon S3. Une politique de compartiment définit les principaux autorisés à effectuer des actions sur le compartiment.

  • Les politiques de point d'accès sont des politiques basées sur les ressources qui sont évaluées conjointement avec la politique de compartiment sous-jacente.

  • Les autorisations d'accès constituent un modèle simplifié permettant de définir les autorisations d'accès aux données dans Amazon S3 par préfixe, compartiment ou objet. Pour plus d'informations sur les subventions d'accès S3, consultezGestion de l’accès avec les octrois d’accès S3.

Principes relatifs aux politiques relatives aux compartiments

L'Principalélément indique l'utilisateur, le compte, le service ou toute autre entité à laquelle l'accès à une ressource est autorisé ou refusé. Voici quelques exemples de spécification de Principal. Pour plus d’informations, consultez Principal dans le Guide de l’utilisateur IAM.

Accorder des autorisations à un Compte AWS

Pour accorder des autorisations à un Compte AWS, identifiez le compte en utilisant le format suivant.

"AWS":"account-ARN"

Voici quelques exemples.

"Principal":{"AWS":"arn:aws:iam::AccountIDWithoutHyphens:root"}
"Principal":{"AWS":["arn:aws:iam::AccountID1WithoutHyphens:root","arn:aws:iam::AccountID2WithoutHyphens:root"]}

Octroyer des autorisations à un utilisateur IAM

Pour accorder une autorisation à un utilisateur IAM de votre compte, vous devez fournir une paire de nom-valeur "AWS":"user-ARN".

"Principal":{"AWS":"arn:aws:iam::account-number-without-hyphens:user/username"}

Pour des exemples détaillés fournissant des step-by-step instructions, reportez-vous aux sections Exemple 1 : propriétaire d'un compartiment accordant à ses utilisateurs des autorisations sur un compartiment etExemple 3 : propriétaire d'un compartiment accordant des autorisations sur des objets qu'il ne possède pas.

Note

Si une identité IAM est supprimée après la mise à jour de votre politique de compartiment, la politique de compartiment affichera un identifiant unique dans l'élément principal au lieu d'un ARN. Ces identifiants uniques ne sont jamais réutilisés. Vous pouvez donc supprimer en toute sécurité les principaux dotés d'identifiants uniques de toutes vos déclarations de police. Pour plus d’informations sur les identifiants uniques, consultez Identificateurs IAM dans le Guide de l’utilisateur IAM.

Octroyer des autorisations anonymes

Avertissement

Soyez vigilant lorsque vous accordez un accès anonyme à votre compartiment Amazon S3. Lorsque vous accordez un accès anonyme, tout le monde peut accéder à votre compartiment. Nous vous recommandons vivement de ne jamais accorder un type d'accès en écriture anonyme quel qu'il soit à votre compartiment S3.

Pour accorder l'autorisation à tout le monde (on parle aussi d'accès anonyme), définissez le caractère générique "*" en tant que valeur Principal. Par exemple, si vous configurez votre compartiment en tant que site Web, vous voulez que tous les objets dans le compartiment soit accessibles publiquement.

"Principal":"*"
"Principal":{"AWS":"*"}

L'utilisation "Principal": "*" avec Allow effet dans le cadre d'une politique basée sur les ressources permet à quiconque, même s'il n'est pas connecté AWS, d'accéder à votre ressource.

L'utilisation de l'interface "Principal" : { "AWS" : "*" } avec un effet Allow dans une politique basée sur les ressources permet à n'importe quel utilisateur racine, utilisateur IAM, séance à rôle supposé ou utilisateur fédéré dans n'importe quel compte de la même partition d'accéder à votre ressource.

Pour les utilisateurs anonymes, ces deux méthodes sont équivalentes. Pour plus d’informations, consultez Tous les principaux dans le Guide de l’utilisateur IAM.

Vous ne pouvez pas utiliser un caractère générique pour une correspondance à une partie d'un nom ou d'un ARN principal.

Important

Comme tout le monde peut créer un Compte AWS, le niveau de sécurité de ces deux méthodes est équivalent, même si elles fonctionnent différemment.

Restriction des autorisations sur les ressources

Vous pouvez également utiliser la politique sur les ressources pour restreindre l'accès aux ressources qui seraient autrement accessibles aux principaux IAM. Utilisez une instruction Deny pour empêcher l'accès.

L'exemple suivant bloque l'accès si aucun protocole de transport sécurisé n'est utilisé :

{"Effect": "Deny", "Principal": "*", "Action": "s3:*", "Resource": <bucket ARN>, "Condition": { "Boolean": { "aws:SecureTransport" : "false"} } }

Au lieu de tenter de refuser l'accès à des comptes ou des principaux spécifiques selon cette méthode, l'utilisation de "Principal": "*" de sorte que cette restriction s'applique à tout le monde est une bonne pratique pour cette politique.

Exiger un accès via des CloudFront URL

Vous pouvez demander à vos utilisateurs d'accéder à votre contenu Amazon S3 uniquement en utilisant des CloudFront URL plutôt que des URL Amazon S3. Pour ce faire, créez un contrôle CloudFront d'accès à l'origine (OAC). Modifiez ensuite les autorisations sur vos données S3. Dans votre politique de compartiment, vous pouvez définir le CloudFront rôle principal comme suit :

"Principal":{"Service":"cloudfront.amazonaws.com"}

Utilisez un Condition élément de la politique CloudFront pour autoriser l'accès au compartiment uniquement lorsque la demande provient de la CloudFront distribution contenant l'origine S3.

"Condition": { "StringEquals": { "AWS:SourceArn": "arn:aws:cloudfront::111122223333:distribution/CloudFront-distribution-ID" } }

Pour plus d'informations sur l'obligation d'accéder à S3 via CloudFront des URL, consultez Restreindre l'accès à une origine Amazon Simple Storage Service dans le manuel Amazon CloudFront Developer Guide. Pour plus d'informations sur les avantages en matière de sécurité et de confidentialité liés à l'utilisation d'Amazon CloudFront, consultez Configuration de l'accès sécurisé et restriction de l'accès au contenu.

Exemples de politiques basées sur les ressources pour Amazon S3

Actions politiques pour Amazon S3

Prend en charge les actions de politique

Oui

Les administrateurs peuvent utiliser les politiques AWS JSON pour spécifier qui a accès à quoi. C’est-à-dire, quel principal peut effectuer des actions sur quelles ressources et dans quelles conditions.

L’élément Action d’une politique JSON décrit les actions que vous pouvez utiliser pour autoriser ou refuser l’accès à une politique. Les actions de stratégie portent généralement le même nom que l'opération AWS d'API associée. Il existe quelques exceptions, telles que les actions avec autorisations uniquement qui n’ont pas d’opération API correspondante. Certaines opérations nécessitent également plusieurs actions dans une politique. Ces actions supplémentaires sont nommées actions dépendantes.

Intégration d’actions dans une stratégie afin d’accorder l’autorisation d’exécuter les opérations associées.

Ce qui suit montre les différents types de relations de mappage entre les opérations de l'API S3 et les actions politiques requises.

  • O ne-to-one mappage portant le même nom. Par exemple, pour utiliser l'opération PutBucketPolicy API, l'action s3:PutBucketPolicy politique est requise.

  • O ne-to-one mappage avec des noms différents. Par exemple, pour utiliser l'opération ListObjectsV2 API, l'action s3:ListBucket politique est requise.

  • Sur la ne-to-many cartographie. Par exemple, pour utiliser l'opération HeadObject API, le s3:GetObject est requis. De même, lorsque vous utilisez S3 Object Lock et que vous souhaitez obtenir le statut de conservation légale ou les paramètres de rétention d'un objet, les actions correspondantes s3:GetObjectLegalHold ou s3:GetObjectRetention politiques sont également requises avant de pouvoir utiliser l'opération d'HeadObjectAPI.

  • any-to-one Cartographie M. Par exemple, pour utiliser les opérations de l'HeadBucketAPI ListObjectsV2 or, l'action s3:ListBucket de politique est requise.

Pour consulter la liste des actions Amazon S3 à utiliser dans les politiques, consultez la section Actions définies par Amazon S3 dans le Service Authorization Reference. Pour obtenir la liste complète des opérations d'API Amazon S3, consultez la section Actions d'API Amazon S3 dans le manuel Amazon Simple Storage Service API Reference.

Les actions politiques dans Amazon S3 utilisent le préfixe suivant avant l'action :

s3

Pour indiquer plusieurs actions dans une seule déclaration, séparez-les par des virgules.

"Action": [ "s3:action1", "s3:action2" ]

Les opérations de compartiment sont des opérations d'API S3 qui opèrent sur le type de ressource de compartiment. Par exemple, CreateBucket, ListObjectsV2 et PutBucketPolicy. Les actions de politique S3 pour les opérations de compartiment nécessitent que l'Resourceélément des politiques de compartiment ou des politiques basées sur l'identité IAM soit l'identifiant Amazon Resource Name (ARN) du type de compartiment S3 dans l'exemple de format suivant.

"Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET"

La politique de compartiment suivante accorde à l'utilisateur Akua possédant le compte 12345678901 l's3:ListBucketautorisation d'effectuer l'opération d'API ListObjectsV2 et de répertorier les objets dans un compartiment S3.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow Akua to list objects in the bucket", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::12345678901:user/Akua" }, "Action": [ "s3:ListBucket" ], "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET" } ] }
Opérations relatives aux compartiments dans les politiques de point d'accès

Les autorisations accordées dans le cadre d'une politique de point d'accès ne sont effectives que si le compartiment sous-jacent autorise les mêmes autorisations. Lorsque vous utilisez des points d'accès S3, vous devez déléguer le contrôle d'accès du compartiment au point d'accès ou ajouter les mêmes autorisations dans les politiques du point d'accès à la politique du compartiment sous-jacent. Pour plus d’informations, consultez Configuration des stratégies IAM pour l'utilisation des points d'accès. Dans les politiques de point d'accès, les actions de politique S3 pour les opérations de compartiment nécessitent que vous utilisiez l'accesspointARN de l'Resourceélément au format suivant.

"Resource": "arn:aws:s3:us-west-2:123456789012:accesspoint/DOC-EXAMPLE-ACCESS-POINT"

La politique de point d'accès suivante accorde à l'utilisateur Akua possédant le compte 12345678901 l's3:ListBucketautorisation d'effectuer l'opération d'API ListObjectsV2 via le point d'accès S3 DOC-EXAMPLE-ACCESS-POINT afin de répertorier les objets dans le compartiment associé au point d'accès.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow Akua to list objects in the bucket through access point", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::12345678901:user/Akua" }, "Action": [ "s3:ListBucket" ], "Resource": "arn:aws:s3:us-west-2:123456789012:accesspoint/DOC-EXAMPLE-ACCESS-POINT" } ] }
Note

Toutes les opérations de compartiment ne sont pas prises en charge par S3 Access Point. Pour plus d’informations, consultez Compatibilité des points d'accès avec les opérations S3.

Les opérations d'objet sont des opérations d'API S3 qui agissent sur le type de ressource de l'objet. Par exemple, GetObject, PutObject et DeleteObject. Les actions de politique S3 pour les opérations sur les objets nécessitent que l'Resourceélément des politiques soit l'ARN de l'objet S3 dans les exemples de formats suivants.

"Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*"
"Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/prefix/*"
Note

L'ARN de l'objet doit contenir une barre oblique après le nom du bucket, comme indiqué dans les exemples précédents.

La politique de compartiment suivante accorde à l'utilisateur Akua possédant le compte 12345678901 l's3:PutObjectautorisation d'effectuer l'opération d'PutObjectAPI pour télécharger des objets dans un compartiment S3.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow Akua to upload objects", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::12345678901:user/Akua" }, "Action": [ "s3:PutObject" ], "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" } ] }
Opérations sur les objets dans les politiques de point d'accès

Lorsque vous utilisez des points d'accès S3 pour contrôler l'accès aux opérations sur les objets, vous pouvez utiliser des politiques de point d'accès. Lorsque vous utilisez des politiques de point d'accès, les actions de politique S3 pour les opérations sur les objets nécessitent que vous utilisiez l'accesspointARN de l'Resourceélément au format suivant :arn:aws:s3:region:account-id:accesspoint/access-point-name/object/resource. Pour les opérations d'objet qui utilisent un point d'accès, vous devez inclure la /object/ valeur après l'ARN complet du point d'accès dans l'Resourceélément. Voici quelques exemples.

"Resource": "arn:aws:s3:us-west-2:123456789012:accesspoint/DOC-EXAMPLE-ACCESS-POINT/object/*"
"Resource": "arn:aws:s3:us-west-2:123456789012:accesspoint/DOC-EXAMPLE-ACCESS-POINT/object/prefix/*"

La politique de point d'accès suivante accorde à l'utilisateur Akua possédant le compte 12345678901 l's3:GetObjectautorisation d'effectuer l'opération d'GetObjectAPI via le point d'accès DOC-EXAMPLE-ACCESS-POINT sur tous les objets du bucket associé au point d'accès.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow Akua to get objects through access point", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::12345678901:user/Akua" }, "Action": [ "s3:GetObject" ], "Resource": "arn:aws:s3:us-west-2:123456789012:accesspoint/DOC-EXAMPLE-ACCESS-POINT/object/*" } ] }
Note

Toutes les opérations sur les objets ne sont pas prises en charge par S3 Access Point. Pour plus d’informations, consultez Compatibilité des points d'accès avec les opérations S3.

Les opérations de point d'accès sont des opérations d'API S3 qui opèrent sur le type de accesspoint ressource. Par exemple, CreateAccessPoint, DeleteAccessPoint et GetAccessPointPolicy. Les actions de politique S3 pour les opérations de point d'accès ne peuvent être utilisées que dans les politiques basées sur l'identité IAM, et non dans les politiques de compartiment ou les politiques de point d'accès. Les opérations sur les points d'accès nécessitent que l'Resourceélément soit l'accesspointARN dans l'exemple de format suivant.

"Resource": "arn:aws:s3:us-west-2:123456789012:accesspoint/DOC-EXAMPLE-ACCESS-POINT"

La politique basée sur l'identité IAM suivante accorde l's3:GetAccessPointPolicyautorisation d'effectuer l'opération d'GetAccessPointPolicyAPI sur le point d'accès S3 DOC-EXAMPLE-ACCESS-POINT.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Grant permission to retrieve the access point policy of access point DOC-EXAMPLE-ACCESS-POINT", "Effect": "Allow", "Action": [ "s3:GetAccessPointPolicy" ], "Resource": "arn:aws:s3:*:123456789012:access point/DOC-EXAMPLE-ACCESS-POINT" } ] }

Lorsque vous utilisez des points d'accès, pour contrôler l'accès aux opérations du bucket, voir Opérations relatives aux compartiments dans les politiques de point d'accès ; pour contrôler l'accès aux opérations sur les objets, voirOpérations sur les objets dans les politiques de point d'accès. Pour plus d'informations sur la configuration des politiques de point d'accès, consultezConfiguration des stratégies IAM pour l'utilisation des points d'accès.

Amazon S3 Object Lambda vous donne la possibilité d'ajouter votre propre code aux requêtes Amazon S3 GET, LIST et HEAD afin de modifier et de traiter les données lorsqu'elles sont renvoyées vers une application. Vous pouvez effectuer des demandes via un point d'accès Object Lambda, qui fonctionne de la même manière que les demandes via d'autres points d'accès. Pour plus d’informations, consultez Transformation d'objets avec S3 Object Lambda.

Pour plus d'informations sur la façon de configurer les politiques pour les opérations du point d'accès Object Lambda, consultez. Configuration des politiques IAM pour les points d'accès Object Lambda

Un point d'accès multirégional fournit un point de terminaison global que les applications peuvent utiliser pour répondre aux demandes provenant de compartiments S3 situés dans plusieurs compartiments. Région AWS Vous pouvez utiliser un point d'accès multirégional pour créer des applications multirégionales avec la même architecture que celle utilisée dans une seule région, puis exécuter ces applications n'importe où dans le monde. Pour plus d’informations, consultez Points d'accès multi-régions dans Amazon S3.

Pour plus d'informations sur la façon de configurer les politiques pour les opérations de points d'accès multirégionaux, consultezExemples de politique de point d'accès multi-régions.

Les opérations de travail (Batch Operations) sont des opérations d'API S3 qui opèrent sur le type de ressource de tâche. Par exemple : DescribeJob et CreateJob. Les actions de politique S3 pour les opérations de travail ne peuvent être utilisées que dans les politiques basées sur l'identité IAM, et non dans les politiques de compartiment. En outre, les opérations de travail nécessitent que l'Resourceélément des politiques basées sur l'identité IAM soit l'jobARN dans l'exemple de format suivant.

"Resource": "arn:aws:s3:*:123456789012:job/*"

La politique basée sur l'identité IAM suivante accorde l's3:DescribeJobautorisation d'effectuer l'opération d'DescribeJobAPI sur S3 Batch Operations Job DOC-EXAMPLE-JOB.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow describing the Batch operation job DOC-EXAMPLE-JOB", "Effect": "Allow", "Action": [ "s3:DescribeJob" ], "Resource": "arn:aws:s3:*:123456789012:job/DOC-EXAMPLE-JOB" } ] }

Pour plus d'informations sur la configuration des opérations de configuration de S3 Storage Lens, consultezAutorisations Amazon S3 Storage Lens.

Les opérations de compte sont des opérations d'API S3 qui fonctionnent au niveau du compte. Par exemple, GetPublicAccessBlock (pour le compte). Le compte n'est pas un type de ressource défini par Amazon S3. Les actions de politique S3 pour les opérations de compte ne peuvent être utilisées que dans les politiques basées sur l'identité IAM, et non dans les politiques de compartiment. En outre, les opérations de compte nécessitent que l'Resourceélément des politiques basées sur l'identité IAM soit. "*"

La politique basée sur l'identité IAM suivante accorde l's3:GetAccountPublicAccessBlockautorisation d'effectuer l'opération d'GetPublicAccessBlockAPI au niveau du compte et de récupérer les paramètres de blocage d'accès public au niveau du compte.

{ "Version":"2012-10-17", "Statement":[ { "Sid":"Allow retrieving the account-level Public Access Block settings", "Effect":"Allow", "Action":[ "s3:GetAccountPublicAccessBlock" ], "Resource":[ "*" ] } ] }

Exemples de politiques pour Amazon S3

Ressources relatives aux politiques pour Amazon S3

Prend en charge les ressources de politique

Oui

Les administrateurs peuvent utiliser les politiques AWS JSON pour spécifier qui a accès à quoi. C’est-à-dire, quel principal peut effectuer des actions sur quelles ressources et dans quelles conditions.

L’élément de politique JSON Resource indique le ou les objets auxquels l’action s’applique. Les instructions doivent inclure un élément Resource ou NotResource. Il est recommandé de définir une ressource à l’aide de son Amazon Resource Name (ARN). Vous pouvez le faire pour des actions qui prennent en charge un type de ressource spécifique, connu sous la dénomination autorisations de niveau ressource.

Pour les actions qui ne sont pas compatibles avec les autorisations de niveau ressource, telles que les opérations de liste, utilisez un caractère générique (*) afin d’indiquer que l’instruction s’applique à toutes les ressources.

"Resource": "*"

Certaines actions de l'API Amazon S3 prennent en charge plusieurs ressources. Par exemple, s3:GetObject accède à EXAMPLE-RESOURCE-1 et EXAMPLE-RESOURCE-2, de sorte qu'un principal doit être autorisé à accéder aux deux ressources. Pour spécifier plusieurs ressources dans une seule instruction, séparez leurs ARN par des virgules.

"Resource": [ "EXAMPLE-RESOURCE-1", "EXAMPLE-RESOURCE-2"

Les ressources d'Amazon S3 sont des compartiments, des objets, des points d'accès ou des tâches. Dans une politique, utilisez l'Amazon Resource Name (ARN) du compartiment, de l'objet, du point d'accès ou de la tâche pour identifier la ressource.

Pour consulter la liste complète des types de ressources Amazon S3 et de leurs ARN, consultez la section Ressources définies par Amazon S3 dans le Service Authorization Reference. Pour savoir avec quelles actions vous pouvez spécifier l'ARN de chaque ressource, consultez Actions définies par Amazon S3.

Wildcards pour les ARN des ressources

Il est possible d'utiliser des caractères génériques dans l'ARN d'une ressource. Vous pouvez utiliser des caractères génériques (* et ?) dans n'importe quel segment d'ARN (les parties séparées par des signes deux-points). Un astérisque (*) représente n'importe quelle combinaison de zéro ou de plusieurs caractères, et un point d'interrogation (?) représente un seul caractère quelconque. Vous pouvez utiliser plusieurs caractères * ou ? dans segment, mais un caractère générique ne peut pas s'étendre à plusieurs segments.

  • L'ARN suivant utilise le caractère générique * dans la partie relative-ID de l'ARN pour identifier tous les objets du compartiment examplebucket.

    arn:aws:s3:::examplebucket/*
  • L'ARN suivant est utilisé * pour indiquer tous les compartiments et objets S3.

    arn:aws:s3:::*
  • L'ARN suivant utilise les deux caractères génériques, * et ?, dans la partie relative-ID. Il identifie tous les objets des compartiments, par exemple example1bucket, example2bucket, example3bucket, etc.

    arn:aws:s3:::example?bucket/*

Variables de politique pour les ARN des ressources

Vous pouvez utiliser des variables de stratégie dans les ARN Amazon S3. Lors de l'évaluation de la stratégie, ces variables prédéfinies sont remplacées par leurs valeurs correspondantes. Supposons que vous organisez votre compartiment comme un ensemble de dossiers, avec un dossier pour chacun de vos utilisateurs. Le nom de dossier est le même que le nom utilisateur. Pour octroyer aux utilisateurs des autorisations à leurs dossiers, vous pouvez spécifier une variable de stratégie dans l'ARN de la ressource :

arn:aws:s3:::bucket_name/developers/${aws:username}/

Lors de l'exécution, lorsque la politique est évaluée, la variable ${aws:username} de l'ARN de la ressource est remplacée par le nom d'utilisateur de la personne qui fait la demande.

Exemples de politiques pour Amazon S3

Clés de conditions de politique pour Amazon S3

Prend en charge les clés de condition de politique spécifiques au service

Oui

Les administrateurs peuvent utiliser les politiques AWS JSON pour spécifier qui a accès à quoi. C’est-à-dire, quel principal peut effectuer des actions sur quelles ressources et dans quelles conditions.

L’élément Condition (ou le bloc Condition) vous permet de spécifier des conditions lorsqu’une instruction est appliquée. L’élément Condition est facultatif. Vous pouvez créer des expressions conditionnelles qui utilisent des opérateurs de condition, tels que les signes égal ou inférieur à, pour faire correspondre la condition de la politique aux valeurs de la demande.

Si vous spécifiez plusieurs éléments Condition dans une instruction, ou plusieurs clés dans un seul élément Condition, AWS les évalue à l’aide d’une opération AND logique. Si vous spécifiez plusieurs valeurs pour une seule clé de condition, AWS évalue la condition à l'aide d'une OR opération logique. Toutes les conditions doivent être remplies avant que les autorisations associées à l’instruction ne soient accordées.

Vous pouvez aussi utiliser des variables d’espace réservé quand vous spécifiez des conditions. Par exemple, vous pouvez accorder à un utilisateur IAM l’autorisation d’accéder à une ressource uniquement si elle est balisée avec son nom d’utilisateur IAM. Pour plus d’informations, consultez Éléments d’une politique IAM : variables et identifications dans le Guide de l’utilisateur IAM.

AWS prend en charge les clés de condition globales et les clés de condition spécifiques au service. Pour voir toutes les clés de condition AWS globales, voir les clés de contexte de condition AWS globales dans le guide de l'utilisateur IAM.

Chaque clé de condition Amazon S3 correspond au même nom que l'en-tête de demande autorisé par l'API sur laquelle la condition peut être définie. Les clés de condition spécifiques à Amazon S3 dictent le comportement des en-têtes de demande du même nom. Par exemple, la clé de condition s3:VersionId utilisée pour accorder une autorisation conditionnelle définit le s3:GetObjectVersion comportement du paramètre de versionId requête que vous définissez dans une demande GET Object.

Pour consulter la liste des clés de condition Amazon S3, consultez la section Clés de condition pour Amazon S3 dans la référence d'autorisation de service. Pour savoir avec quelles actions et ressources vous pouvez utiliser une clé de condition, consultez Actions définies par Amazon S3.

Exemple : restriction des téléchargements d'objets vers des objets dotés d'une classe de stockage spécifique

Supposons que le compte A, représenté par l'ID de compte 123456789012, possède un compartiment. L'administrateur du compte A souhaite restreindre Dave, un utilisateur du compte A, afin que Dave ne puisse télécharger des objets que dans le compartiment stocké avec la classe STANDARD_IA de stockage. Pour restreindre les chargements d'objets vers une classe de stockage spécifique, l'administrateur de compte A peut utiliser la clé de condition s3:x-amz-storage-class, comme illustré dans l'exemple de stratégie de compartiment suivant.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "statement1", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:user/Dave" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET1/*", "Condition": { "StringEquals": { "s3:x-amz-storage-class": [ "STANDARD_IA" ] } } } ] }

Dans l'exemple, le bloc Condition spécifie la condition StringEquals qui est appliquée à la paire clé-valeur spécifiée, "s3:x-amz-acl":["public-read"]. Un jeu de clés prédéfinis peut être utilisé pour exprimer une condition. L'exemple utilise la clé de condition s3:x-amz-acl. Cette condition exige que l'utilisateur inclue l'en-tête x-amz-acl avec la valeur public-read dans chaque demande PUT object.

Exemples de politiques pour Amazon S3

ACL dans Amazon S3

Prend en charge les listes ACL

Oui

Dans Amazon S3, les listes de contrôle d'accès (ACL) contrôlent les Comptes AWS personnes autorisées à accéder à une ressource. Les listes de contrôle d’accès sont similaires aux politiques basées sur les ressources, bien qu’elles n’utilisent pas le format de document de politique JSON.

Important

La majorité des cas d'utilisation modernes dans Amazon S3 ne nécessitent plus l'utilisation des listes ACL.

Pour plus d'informations sur l'utilisation des ACL pour contrôler l'accès dans Amazon S3, consultezGestion des accès à l'aide des listes ACL.

ABAC avec Amazon S3

Prise en charge d’ABAC (identifications dans les politiques)

Partielle

Le contrôle d’accès basé sur les attributs (ABAC) est une politique d’autorisation qui définit des autorisations en fonction des attributs. Dans AWS, ces attributs sont appelés balises. Vous pouvez associer des balises aux entités IAM (utilisateurs ou rôles) et à de nombreuses AWS ressources. L’étiquetage des entités et des ressources est la première étape d’ABAC. Vous concevez ensuite des politiques ABAC pour autoriser des opérations quand l’identification du principal correspond à celle de la ressource à laquelle il tente d’accéder.

L’ABAC est utile dans les environnements qui connaissent une croissance rapide et pour les cas où la gestion des politiques devient fastidieuse.

Pour contrôler l’accès basé sur des étiquettes, vous devez fournir les informations d’étiquette dans l’élément de condition d’une politique utilisant les clés de condition aws:ResourceTag/key-name, aws:RequestTag/key-name ou aws:TagKeys.

Si un service prend en charge les trois clés de condition pour tous les types de ressources, alors la valeur pour ce service est Oui. Si un service prend en charge les trois clés de condition pour certains types de ressources uniquement, la valeur est Partielle.

Pour plus d’informations sur l’ABAC, consultez Qu’est-ce que le contrôle d’accès basé sur les attributs (ABAC) ? dans le Guide de l’utilisateur IAM. Pour accéder à un didacticiel décrivant les étapes de configuration de l’ABAC, consultez Utilisation du contrôle d’accès par attributs (ABAC) dans le Guide de l’utilisateur IAM.

Pour consulter des exemples de politiques basées sur l'identité permettant de limiter l'accès aux tâches S3 Batch Operations en fonction de balises, consultez. Contrôle des autorisations pour les opérations par lot S3 à l’aide d'étiquettes de tâche

ABAC et balises d'objets

Dans les politiques ABAC, les objets utilisent des s3: balises plutôt que des aws: balises. Pour contrôler l'accès aux objets en fonction des balises d'objets, vous devez fournir les informations relatives aux balises dans l'élément de condition d'une politique à l'aide des balises suivantes :

  • s3:ExistingObjectTag/tag-key

  • s3:s3:RequestObjectTagKeys

  • s3:RequestObjectTag/tag-key

Pour plus d'informations sur l'utilisation de balises d'objet pour contrôler l'accès, y compris des exemples de politiques d'autorisation, consultezStratégies de balisage et de contrôle d'accès.

Utilisation d'informations d'identification temporaires avec Amazon S3

Prend en charge les informations d’identification temporaires

Oui

Certains Services AWS ne fonctionnent pas lorsque vous vous connectez à l'aide d'informations d'identification temporaires. Pour plus d'informations, y compris celles qui Services AWS fonctionnent avec des informations d'identification temporaires, consultez Services AWS la section relative à l'utilisation d'IAM dans le guide de l'utilisateur d'IAM.

Vous utilisez des informations d'identification temporaires si vous vous connectez à l' AWS Management Console aide d'une méthode autre qu'un nom d'utilisateur et un mot de passe. Par exemple, lorsque vous accédez à AWS l'aide du lien d'authentification unique (SSO) de votre entreprise, ce processus crée automatiquement des informations d'identification temporaires. Vous créez également automatiquement des informations d’identification temporaires lorsque vous vous connectez à la console en tant qu’utilisateur, puis changez de rôle. Pour plus d’informations sur le changement de rôle, consultez Changement de rôle (console) dans le Guide de l’utilisateur IAM.

Vous pouvez créer manuellement des informations d'identification temporaires à l'aide de l' AWS API AWS CLI or. Vous pouvez ensuite utiliser ces informations d'identification temporaires pour y accéder AWS. AWS recommande de générer dynamiquement des informations d'identification temporaires au lieu d'utiliser des clés d'accès à long terme. Pour plus d’informations, consultez Informations d’identification de sécurité temporaires dans IAM.

Transférer les sessions d'accès pour Amazon S3

Prend en charge les sessions d'accès direct (FAS)

Oui

Lorsque vous utilisez un utilisateur ou un rôle IAM pour effectuer des actions AWS, vous êtes considéré comme un mandant. Lorsque vous utilisez certains services, vous pouvez effectuer une action qui initie une autre action dans un autre service. FAS utilise les autorisations du principal appelant et Service AWS, associées Service AWS à la demande, pour adresser des demandes aux services en aval. Les demandes FAS ne sont effectuées que lorsqu'un service reçoit une demande qui nécessite des interactions avec d'autres personnes Services AWS ou des ressources pour être traitée. Dans ce cas, vous devez disposer d’autorisations nécessaires pour effectuer les deux actions. Pour plus de détails sur une politique lors de la formulation de demandes FAS, consultez Transmission des sessions d’accès.

Rôles de service pour Amazon S3

Prend en charge les fonctions du service

Oui

Une fonction de service est un rôle IAM qu’un service endosse pour accomplir des actions en votre nom. Un administrateur IAM peut créer, modifier et supprimer une fonction du service à partir d’IAM. Pour plus d’informations, consultez Création d’un rôle pour la délégation d’autorisations à un Service AWS dans le Guide de l’utilisateur IAM.

Avertissement

La modification des autorisations associées à un rôle de service peut perturber les fonctionnalités d'Amazon S3. Modifiez les rôles de service uniquement lorsque Amazon S3 fournit des instructions à cet effet.

Rôles liés à un service pour Amazon S3

Prend en charge les rôles liés à un service

Partielle

Un rôle lié à un service est un type de rôle de service lié à un. Service AWS Le service peut endosser le rôle afin d’effectuer une action en votre nom. Les rôles liés à un service apparaissent dans votre Compte AWS répertoire et appartiennent au service. Un administrateur IAM peut consulter, mais ne peut pas modifier, les autorisations concernant les rôles liés à un service.

Amazon S3 prend en charge les rôles liés au service pour Amazon S3 Storage Lens. Pour en savoir plus sur la création ou la gestion des rôles liés aux services Amazon S3, consultez. Utilisation des rôles liés à un service pour le cadre de stockage Amazon S3

Amazon S3 Service en tant que principal

Nom du service dans la politique Fonctionnalité S3 En savoir plus

s3.amazonaws.com

Réplication S3

Configuration de la réplication

s3.amazonaws.com

Notifications d'événements S3

Notifications d'événements Amazon S3

s3.amazonaws.com

Inventaire S3

Inventaire Simple Storage Service (Amazon S3)

access-grants.s3.amazonaws.com

Octrois d’accès S3

Enregistrement d’un emplacement

batchoperations.s3.amazonaws.com

Opérations par lot S3

Octroi d'autorisations pour les opérations par lot Simple Storage Service (Amazon S3)

logging.s3.amazonaws.com

Journalisation des accès au serveur S3

Activation de la journalisation des accès au serveur Amazon S3

storage-lens.s3.amazonaws.com

S3 Storage Lens

Afficher les métriques Amazon S3 Storage Lens à l'aide d'une exportation de données