Fonctionnement d’Amazon S3 avec IAM
Avant d’utiliser IAM pour gérer l’accès à Amazon S3, découvrez les fonctionnalités IAM qui peuvent être utilisées avec Amazon S3.
Fonctionnalité IAM | Prise en charge d’Amazon S3 |
---|---|
Oui |
|
Oui |
|
Oui |
|
Oui |
|
Oui |
|
Oui |
|
Partielle |
|
Oui |
|
Oui |
|
Oui |
|
Partielle |
Pour obtenir une vue d’ensemble de la façon dont Amazon S3 et d’autres services AWS fonctionnent avec la plupart des fonctionnalités IAM, consultez Services AWS qui fonctionnent avec IAM dans le Guide de l’utilisateur IAM.
Pour plus d’informations sur les autorisations relatives aux opérations d’API S3 par type de ressource S3, consultez Autorisations requises pour les opérations d’API Amazon S3.
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 Définition d’autorisations IAM personnalisées avec des politiques gérées par le client 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 voir des exemples de politiques Amazon S3 basées sur l’identité, 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. Par exemple, les politiques de confiance de rôle IAM et les politiques de compartiment Amazon S3 sont des politiques basées sur les ressources. 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 des 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 intercompte à une politique basée sur les ressources ne représente qu’une partie de l’instauration de la relation d’approbation. Quand le principal et la ressource se trouvent dans des Comptes AWS différents, un administrateur IAM dans le compte approuvé doit également accorder à l’entité principal (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 Accès intercompte aux ressources dans IAM dans le Guide de l’utilisateur IAM.
Le service Amazon S3 prend en charge les politiques de compartiment, les stratégies de points d’accès et les autorisations d’accès S3 :
-
Les politiques de compartiment sont des politiques basées sur les ressources. Elles sont associées à un compartiment Amazon S3. Une politique de compartiment désigne les principaux autorisés à effectuer des actions au niveau de ce compartiment.
-
Les stratégies de points d’accès sont des politiques basées sur les ressources. Elles sont évaluées conjointement avec la politique de compartiment sous-jacente.
-
Les autorisations d’accès S3 fournissent un modèle simplifié pour 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 autorisations d’accès S3, consultez Gestion de l’accès avec les autorisations d’accès S3.
Principaux pour les politiques de compartiment
L’élément Principal
spécifie l’utilisateur, le compte, le service ou une autre entité qui a accès ou non à une ressource. Voici quelques exemples de spécification de Principal
. Pour plus d’informations, consultez Principal dans le Guide de l’utilisateur IAM.
Octroyer des autorisations à un Compte AWS
Pour octroyer 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 obtenir des exemples détaillés qui fournissent des instructions étape par étape, consultez Exemple 1 : propriétaire d’un compartiment accordant à ses utilisateurs des autorisations sur un compartiment et Exemple 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 de l’interface "Principal": "*"
avec un effet Allow
dans une politique basée sur les ressources permet à quiconque, même s’il n’est pas connecté à l’interface 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
Du fait que n’importe qui 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 URL CloudFront
Vous pouvez exiger que vos utilisateurs accèdent à votre contenu Amazon S3 à l’aide des URL Amazon CloudFront au lieu des URL Amazon S3. Pour ce faire, créez une identité d’accès d’origine (OAC) CloudFront. Modifiez ensuite les autorisations au niveau de vos données S3. Dans la politique de compartiment, vous pouvez définir CloudFront comme principal comme suit :
"Principal":{"Service":"cloudfront.amazonaws.com"}
Utilisez un élément Condition
de la politique permettant à CloudFront d’accéder au compartiment uniquement lorsque la demande est faite au nom de la distribution CloudFront qui contient l’origine S3.
"Condition": { "StringEquals": { "AWS:SourceArn": "arn:aws:cloudfront::
111122223333
:distribution/CloudFront-distribution-ID
" } }
Pour découvrir comment exiger l’accès S3 à l’aide d’URL CloudFront, consultez Restriction de l’accès à une origine Amazon Simple Storage Service dans le Manuel du développeur Amazon CloudFront. Pour plus d’informations sur les avantages de sécurité et de confidentialité liés à l’utilisation d’Amazon CloudFront, consultez Configuration d’un accès sécurisé au contenu et restriction de cet accès.
Exemples de politiques basées sur les ressources pour Amazon S3
Pour obtenir des exemples de politiques de compartiment Amazon S3, consultez Politiques de compartiment pour Amazon S3.
Pour consulter des exemples de stratégies de points d’accès, consultez Configuration des politiques IAM pour l’utilisation des points d’accès.
Actions de politique pour Amazon S3
Prend en charge les actions de politique : oui
Les administrateurs peuvent utiliser les politiques JSON AWS 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 politique possèdent généralement le même nom que l’opération d’API AWS 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 politique afin d’accorder l’autorisation d’exécuter les opérations associées.
Vous trouverez ci-dessous les différents types de relations de mappage entre les opérations de l’API S3 et les actions de politiques requises.
Mappage de type un à un avec le même nom. Par exemple, pour utiliser l’opération d’API
PutBucketPolicy
, l’action de politiques3:PutBucketPolicy
est requise.Mappage de type un à un avec des noms différents. Par exemple, pour utiliser l’opération d’API
ListObjectsV2
, l’action de politiques3:ListBucket
est requise.Mappage de type un à plusieurs. Par exemple, pour utiliser l’opération d’API
HeadObject
,s3:GetObject
est requis. De même, lorsque vous utilisez le verrouillage d’objet S3 et que vous souhaitez obtenir le statut de conservation légale d’un objet ou les paramètres de rétention d’un objet, les actions de politiques3:GetObjectLegalHold
ous3:GetObjectRetention
correspondantes sont également requises avant de pouvoir utiliser l’opération d’APIHeadObject
.Mappage de type plusieurs à un. Par exemple, pour utiliser les opérations d’API
ListObjectsV2
ouHeadBucket
, l’action de politiques3:ListBucket
est requise.
Pour afficher la liste des actions Amazon S3 que vous pouvez utilisez dans les politiques, consultez Actions définies par Amazon S3 dans la Référence de l’autorisation de service. Pour obtenir la liste des opérations d’API Amazon S3, consultez Actions d’API Amazon S3 dans la Référence d’API Amazon Simple Storage Service.
Pour plus d’informations sur les autorisations relatives aux opérations d’API S3 par type de ressource S3, consultez Autorisations requises pour les opérations d’API Amazon S3.
Les actions de politique 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
" ]
Opérations de compartiment
Les opérations de compartiment sont des opérations d’API S3 qui opèrent sur le type de ressource du compartiment. Par exemple, CreateBucket
, ListObjectsV2
et PutBucketPolicy
. Les actions de politique S3 pour les opérations de compartiment nécessitent que l’élément Resource
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:::
amzn-s3-demo-bucket
"
La politique de compartiment suivante accorde à l’utilisateur
titulaire du compte Akua
l’autorisation 12345678901
s3:ListBucket
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:::amzn-s3-demo-bucket
" } ] }
Opérations sur les compartiments dans les stratégies de point d’accès
Les autorisations accordées dans une stratégie de point d’accès ne sont effectives que si le compartiment sous-jacent accorde également 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 stratégies du point d’accès à la politique du compartiment sous-jacent. Pour en savoir plus, consultez Configuration des politiques IAM pour l’utilisation des points d’accès. Dans les stratégies de point d’accès, les actions de politique S3 pour les opérations de compartiment nécessitent que vous utilisiez l’ARN du point d’accès pour l’élément Resource
au format suivant.
"Resource": "arn:aws:s3:
us-west-2
:123456789012
:accesspoint/example-access-point
"
La stratégie de point d’accès suivante accorde à l’utilisateur
titulaire du compte Akua
l’autorisation 12345678901
s3:ListBucket
d’effectuer l’opération d’API ListObjectsV2 via le point d’accès S3 nommé
. Cette autorisation permet à example-access-point
de répertorier les objets dans le compartiment associé à Akua
. example-access-point
{ "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/example-access-point
" } ] }
Note
Toutes les opérations de compartiment ne sont pas prises en charge par les points d’accès S3. Pour en savoir plus, consultez Compatibilité des points d’accès avec les opérations S3.
Opérations d’objet
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 d’objet nécessitent que l’élément Resource
des politiques soit l’ARN de l’objet S3 dans les exemples de formats suivants.
"Resource": "arn:aws:s3:::
amzn-s3-demo-bucket
/*"
"Resource": "arn:aws:s3:::
amzn-s3-demo-bucket
/prefix
/*"
Note
L’ARN de l’objet doit contenir une barre oblique après le nom du compartiment, comme indiqué dans les exemples précédents.
La politique de compartiment suivante accorde à l’utilisateur (
) du compte Akua
l’autorisation 12345678901
s3:PutObject
. Cette autorisation permet à
d’utiliser l’opération d’API PutObject pour charger des objets dans le compartiment S3 nommé Akua
.amzn-s3-demo-bucket
{ "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:::amzn-s3-demo-bucket
/*" } ] }
Opérations d’objet dans les stratégies de point d’accès
Lorsque vous utilisez des points d’accès S3 pour contrôler l’accès aux opérations d’objet, vous pouvez opter pour des stratégies de point d’accès. Lorsque vous utilisez des stratégies de point d’accès, les actions de politique S3 pour les opérations d’objet nécessitent que vous utilisiez l’ARN du point d’accès pour l’élément Resource
au format suivant :arn:aws:s3:
. Pour les opérations d’objet qui utilisent des points d’accès, vous devez inclure la valeur region
:account-id
:accesspoint/access-point-name
/object/resource
/object/
après l’ARN complet du point d’accès dans l’élément Resource
. Voici quelques exemples.
"Resource": "arn:aws:s3:
us-west-2
:123456789012
:accesspoint/example-access-point
/object/*"
"Resource": "arn:aws:s3:
us-west-2
:123456789012
:accesspoint/example-access-point
/object/prefix
/*"
La stratégie de point d’accès suivante accorde à l’utilisateur
titulaire du compte Akua
l’autorisation 12345678901
s3:GetObject
. Cette autorisation permet à
d’effectuer l’opération d’API GetObject via le point d’accès nommé Akua
sur tous les objets du compartiment associé à ce point d’accès. example-access-point
{ "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/example-access-point
/object/*" } ] }
Note
Les opérations d’objet ne sont pas toutes prises en charge par les points d’accès. Pour en savoir plus, consultez Compatibilité des points d’accès avec les opérations S3.
Opérations de points d’accès
Les opérations de point d’accès sont des opérations d’API S3 qui agissent sur le type de ressource accesspoint
. 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 stratégies de point d’accès. Les opérations de points d’accès nécessitent que l’élément Resource
soit l’ARN du point d’accès dans l’exemple de format suivant.
"Resource": "arn:aws:s3:
us-west-2
:123456789012
:accesspoint/example-access-point
"
La politique basée sur l’identité IAM suivante accorde l’autorisation s3:GetAccessPointPolicy
d’effectuer l’opération d’API GetAccessPointPolicy au niveau du point d’accès S3 nommé
.example-access-point
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Grant permission to retrieve the access point policy of access point
example-access-point
", "Effect": "Allow", "Action": [ "s3:GetAccessPointPolicy" ], "Resource": "arn:aws:s3:*:123456789012
:accesspoint/example-access-point
" } ] }
Lorsque vous utilisez des points d’accès, pour contrôler l’accès aux opérations de compartiment, consultez Opérations sur les compartiments dans les stratégies de point d’accès et, pour contrôler l’accès aux opérations d’objet, consultez Opérations d’objet dans les stratégies de point d’accès. Pour plus d’informations sur la configuration de stratégies de point d’accès, consultez Configuration des politiques IAM pour l’utilisation des points d’accès.
Opérations de point d’accès Object Lambda
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, ce qui fonctionne de la même manière que les demandes via d’autres points d’accès. Pour en savoir plus, consultez Transformation d’objets avec S3 Object Lambda.
Pour plus d’informations sur la configuration de politiques pour les opérations de point d’accès Object Lambda, consultez Configuration des politiques IAM pour les points d’accès Object Lambda.
Opérations de point d’accès multi-régions
Les points d’accès multi-régions Amazon S3 fournissent un point de terminaison global que les applications peuvent utiliser pour traiter les demandes provenant de compartiments S3 situés dans plusieurs Région AWS. Vous pouvez utiliser des points d’accès multi-régions pour créer des applications multi-régions avec la même architecture que celle utilisée dans une seule région, puis exécuter ces applications partout dans le monde. Pour en savoir plus, consultez Gestion du trafic multirégional avec des points d’accès multirégionaux.
Pour plus d’informations sur la configuration de stratégies pour les opérations de points d’accès multi-régions, consultez Exemples de politique de point d'accès multi-régions.
Opérations relatives aux tâches par lots
Les opérations relatives aux tâches par lots (opérations par lot) sont des opérations d’API S3 qui agissent sur le type de ressource job. Par exemple : DescribeJob
et CreateJob
. Les actions de politique S3 pour les opérations relatives aux tâches par lots 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 relatives aux tâches par lots nécessitent que l’élément Resource
des politiques basées sur l’identité IAM soit l’ARN de l’élément job
dans l’exemple de format suivant.
"Resource": "arn:aws:s3:*:
123456789012
:job/*"
La politique basée sur l’identité IAM suivante accorde l’autorisation s3:DescribeJob
d’effectuer l’opération d’API DescribeJob au niveau de la tâche d’opérations par lot nommée
.example-job
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow describing the Batch operation job
example-job
", "Effect": "Allow", "Action": [ "s3:DescribeJob" ], "Resource": "arn:aws:s3:*:123456789012
:job/example-job
" } ] }
Opérations de configuration S3 Storage Lens
Pour plus d’informations sur les opérations de configuration S3 Storage Lens, consultez Définition d’autorisations Amazon S3 Storage Lens.
Opérations de compte
Les opérations de compte sont des opérations d’API S3 qui agissent 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’élément Resource
des politiques basées sur l’identité IAM soit "*"
.
La politique basée sur l’identité IAM suivante accorde l’autorisation s3:GetAccountPublicAccessBlock
d’effectuer l’opération d’API GetPublicAccessBlock au niveau du compte et de récupérer les paramètres de blocage de l’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
-
Pour voir des exemples de politiques Amazon S3 basées sur l’identité, consultez Politiques basées sur l’identité pour Amazon S3.
-
Pour afficher des exemples de politiques basées sur les ressources Amazon S3, consultez Politiques de compartiment pour Amazon S3 et Configuration des politiques IAM pour l’utilisation des points d’accès.
Ressources de politique pour Amazon S3
Prend en charge les ressources de politique : oui
Les administrateurs peuvent utiliser les politiques JSON AWS 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 d’API Amazon S3 prennent en charge plusieurs ressources. Par exemple, sachant que s3:GetObject
accède à
et à example-resource-1
, un principal doit disposer des autorisations d’accès à ces deux ressources. Pour spécifier plusieurs actions dans une seule instruction, séparez les ARN par des virgules comme l’indique l’exemple suivant. example-resource-2
"Resource": [ "
example-resource-1
", "example-resource-2
"
Dans Amazon S3, les ressources sont les compartiments, les objets, les points d’accès ou les 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 afficher une liste complète des types de ressources Amazon S3, consultez Ressources définies par Amazon S3 dans la Référence de l’autorisation de service. Pour savoir les actions avec lesquelles vous pouvez spécifier l’ARN de chaque ressource, consultez Actions définies par Amazon S3.
Pour plus d’informations sur les autorisations relatives aux opérations d’API S3 par type de ressource S3, consultez Autorisations requises pour les opérations d’API Amazon S3.
Caractères génériques dans l’ARN des ressources
Vous pouvez 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 (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 chaque segment. Toutefois, un caractère générique ne peut pas couvrir des segments.
-
L’ARN suivant utilise le caractère générique
*
dans la partierelative-ID
de l’ARN pour identifier tous les objets du compartiment
.amzn-s3-demo-bucket
arn:aws:s3:::
amzn-s3-demo-bucket
/* -
L’ARN suivant utilise
*
pour indiquer tous les compartiments et tous les objets Amazon S3.arn:aws:s3:::*
-
L’ARN suivant utilise les deux caractères génériques,
*
et?
, dans la partierelative-ID
. Cet ARN identifie tous les objets des compartiments, par exemple
,amzn-s3-demo-example1bucket
,amzn-s3-demo-example2bucket
, etc.amzn-s3-demo-example3bucket
arn:aws:s3:::
amzn-s3-demo-example
?bucket
/*
Variables de politique dans l’ARN des ressources
Vous pouvez utiliser des variables de stratégie dans les ARN Amazon S3. Lors de l’évaluation de la politique, ces variables prédéfinies sont remplacées par leurs valeurs correspondantes. Supposons que vous organisiez 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 d’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, quand la politique est évaluée, la variable ${aws:username}
dans l’ARN de la ressource est remplacée par le nom de l’utilisateur effectuant la demande.
Exemples de politiques pour Amazon S3
-
Pour voir des exemples de politiques Amazon S3 basées sur l’identité, consultez Politiques basées sur l’identité pour Amazon S3.
-
Pour afficher des exemples de politiques basées sur les ressources Amazon S3, consultez Politiques de compartiment pour Amazon S3 et Configuration des politiques IAM pour l’utilisation des points d’accès.
Clés de condition 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 JSON AWS 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 opération OR
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 à un service. Pour afficher toutes les clés de condition globales AWS, consultez Clés de contexte de condition globales AWS dans le Guide de l’utilisateur IAM.
Chaque clé de condition Amazon S3 est mappée à l’en-tête de demande du même nom autorisé par l’API sur lequel 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 octroyer l’autorisation conditionnelle pour s3:GetObjectVersion
définit le comportement du paramètre de requête versionId
que vous définissez dans une demande GET Object.
Pour afficher la liste des clés de condition Amazon S3, consultez Clés de condition pour Amazon S3 dans la Référence de l’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 : Restreindre les chargements aux objets avec une classe de stockage spécifique
Supposons que le compte A, représenté par l’ID de compte
, possède un compartiment. L’administrateur du compte A souhaite restreindre 123456789012
un utilisateur du compte A, afin que Dave
ne puisse charger des objets dans le compartiment que si l’objet est stocké dans la classe de stockage Dave
STANDARD_IA
. 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 politique 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:::amzn-s3-demo-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 PutObject
.
Exemples de politiques pour Amazon S3
-
Pour voir des exemples de politiques Amazon S3 basées sur l’identité, consultez Politiques basées sur l’identité pour Amazon S3.
-
Pour afficher des exemples de politiques basées sur les ressources Amazon S3, consultez Politiques de compartiment pour Amazon S3 et Configuration des politiques IAM pour l’utilisation des points d’accès.
Listes ACL dans Amazon S3
Prend en charge les ACL : oui
Dans Amazon S3, les listes de contrôle d’accès (ACL) vérifient quels Comptes AWS ont l’autorisation d’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 listes ACL pour contrôler l’accès dans Amazon S3, consultez Gestion des accès à l’aide des listes ACL.
ABAC avec Amazon S3
Prend en charge ABAC (identifications dans les politiques) : partiellement
Le contrôle d’accès par attributs (ABAC) est une stratégie d’autorisation qui définit des autorisations en fonction des attributs. Dans AWS, ces attributs sont appelés étiquettes. Vous pouvez attacher des étiquettes à des entités IAM (utilisateurs ou rôles), ainsi qu’à de nombreuses ressources AWS. 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/
ou key-name
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 ABAC, consultez Définition d’autorisations avec l’autorisation 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 obtenir des exemples de politiques basées sur l’identité permettant de limiter l’accès aux tâches des opérations par lot S3 en fonction des balises, consultez Contrôle des autorisations pour les opérations par lot à l’aide de balises de tâche.
ABAC et balises d’objet
Dans les politiques ABAC, les objets utilisent des balises s3:
plutôt que des balises aws:
. Pour contrôler l’accès aux objets avec des balises d’objet, vous devez fournir les informations de balise dans l’élément Condition d’une politique avec les balises suivantes :
-
s3:ExistingObjectTag/
tag-key
-
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, consultez Straté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 quand vous vous connectez à l’aide d’informations d’identification temporaires. Pour plus d’informations, notamment sur les Services AWS qui fonctionnent avec des informations d’identification temporaires, consultez Services AWS qui fonctionnent avec IAM dans le Guide de l’utilisateur IAM.
Vous utilisez des informations d’identification temporaires quand vous vous connectez à la AWS Management Console en utilisant toute méthode autre qu’un nom d’utilisateur et un mot de passe. Par exemple, lorsque vous accédez à AWS en utilisant le lien d’authentification unique (SSO) de votre société, 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 Passage d’un rôle utilisateur à un rôle IAM (console) dans le Guide de l’utilisateur IAM.
Vous pouvez créer manuellement des informations d’identification temporaires à l’aide de l’AWS CLI ou de l’API AWS. Vous pouvez ensuite utiliser ces informations d’identification temporaires pour accéder à AWS. AWS recommande de générer des informations d’identification temporaires de façon dynamique 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.
Transmission des sessions d’accès pour Amazon S3
Prend en charge les sessions d’accès direct (FAS) : oui
Lorsque vous vous servez d’un utilisateur ou d’un rôle IAM pour accomplir des actions dans AWS, vous êtes considéré comme un principal. 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 qui appelle Service AWS, combinées à Service AWS qui demande pour effectuer des demandes aux services en aval. Les demandes FAS ne sont effectuées que lorsqu’un service reçoit une demande dont l’exécution nécessite des interactions avec d’autres Services AWS ou ressources. 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.
La transmission des sessions d’accès, ou FAS, est utilisée par Amazon S3 pour effectuer des appels à AWS KMS afin de déchiffrer un objet lorsque SSE-KMS a été utilisé pour le chiffrer. Pour en savoir plus, consultez Utilisation du chiffrement côté serveur avec des clés AWS KMS (SSE-KMS).
Les autorisations d’accès S3 utilisent également FAS. Après avoir créé une autorisation d’accès à vos données S3 pour une identité particulière, le bénéficiaire demande un identifiant temporaire aux autorisations d’accès S3. Les autorisations d’accès S3 obtiennent un identifiant temporaire pour le demandeur auprès de AWS STS et les transmettent au demandeur. Pour en savoir plus, consultez Demande d’un accès aux données Amazon S3 via les autorisations d’accès S3.
Rôles de service pour Amazon S3
Prend en charge les rôles de service : oui
Un rôle 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 un rôle de 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 d’un rôle de service peut altérer la fonctionnalité d’Amazon S3. Ne modifiez des rôles de service que quand Amazon S3 vous le conseille.
Rôles liés à un service pour Amazon S3
Prend en charge les rôles liés à un service : partiellement
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 s’affichent dans votre Compte AWS et sont détenus par le 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 plus d’informations sur la création ou la gestion des rôles liés à un service Amazon S3, consultez Utilisation des rôles liés à un service pour Amazon S3 Storage Lens.
Service Amazon S3 en tant que principal
Nom du service dans la politique | Fonctionnalité de S3 | En savoir plus |
---|---|---|
|
Réplication S3 |
Présentation de la configuration de la réplication en direct |
|
Notifications d’événements S3 |
|
|
Inventaire S3 |
|
|
Autorisations d’accès S3 |
|
|
Opérations par lot S3 |
|
|
Journalisation des accès au serveur S3 |
Activation de la journalisation des accès au serveur Amazon S3 |
|
S3 Storage Lens |
Afficher les métriques Amazon S3 Storage Lens à l’aide d’une exportation de données |