Blocage de l'accès public à votre stockage Amazon S3 - 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.

Blocage de l'accès public à votre stockage Amazon S3

La fonction du blocage de l'accès public Amazon S3 fournit des paramètres pour les points d'accès, les compartiments et les comptes afin de vous aider à gérer l'accès public aux ressources Amazon S3. Par défaut, les nouveaux compartiments, points d'accès et objets n'autorisent pas l'accès public. Toutefois, les utilisateurs peuvent modifier les stratégies de compartiment, les stratégies de point d'accès ou les autorisations d'objet pour autoriser l'accès public. Les paramètres de la fonctionnalité de blocage de l'accès public S3 remplacent ces stratégies et autorisations pour que vous puissiez restreindre l'accès public à ces ressources.

Grâce au blocage de l'accès public Amazon S3, les administrateurs de compte et les propriétaires de compartiment configurent facilement les contrôles centralisés, afin de restreindre l'accès public à leurs ressources Amazon S3. Ces contrôles sont appliqués quel que soit le mode de création de ces ressources.

Pour obtenir des instructions sur la configuration du blocage de l'accès public, consultez Configuration du blocage d'accès public.

Quand Amazon S3 reçoit une demande d'accès à un compartiment ou à un objet, il détermine si le paramètre de blocage de l'accès public est défini pour le compartiment ou le compte du propriétaire de compartiment. Si la demande a été effectuée via un point d'accès, Amazon S3 vérifie également les paramètres de blocage de l'accès public pour le point d'accès. S'il existe un paramètre de blocage de l'accès public interdisant l'accès demandé, Amazon S3 rejette la demande.

Le blocage de l'accès public Amazon S3 fournit quatre paramètres. Ces paramètres sont indépendants et peuvent être fournis sous n'importe quelle combinaison. Chaque paramètre peut être appliqué à un point d'accès, à un bucket ou à un Compte AWS. Si les paramètres de blocage de l'accès public pour le point d'accès, le compartiment ou le compte diffèrent, Amazon S3 applique la combinaison la plus restrictive des paramètres du point d'accès, du compartiment et du compte.

Quand Amazon S3 évalue si une opération est interdite par un paramètre de blocage de l'accès public, il rejette toute demande qui irait à l'encontre d'un paramètre de point d'accès, de compartiment ou de compte.

Important

L'accès public est accordé aux compartiments et aux objets via des listes de contrôle d'accès (ACLs), des politiques de point d'accès, des politiques de compartiment, ou tout. Pour être sûr que l'accès public à tous vos points d'accès, compartiments et objets Amazon S3 est bloqué, nous vous recommandons d'activer les quatre paramètres liés au blocage de l'accès public pour votre compte. Ces paramètres bloquent l'accès public pour tous les compartiments et points d'accès présents et futurs.

Avant d'appliquer ces paramètres, vérifiez que vos applications fonctionnent correctement sans accès public. Si vous avez besoin d'un certain niveau d'accès public à vos compartiments ou objets, par exemple pour héberger un site web statique comme décrit dans Hébergement d'un site Web statique à l'aide d'Amazon S3,vous pouvez personnaliser les paramètres individuels afin de les adapter à vos cas d'utilisation du stockage.

L'activation du blocage de l'accès public permet de protéger vos ressources en empêchant l'accès public d'être accordé par le biais des politiques de ressources ou des listes de contrôle d'accès (ACLs) directement associées aux ressources S3. Outre l'activation du blocage de l'accès public, examinez attentivement les politiques suivantes pour vous assurer qu'elles n'accordent pas d'accès public :

  • Politiques basées sur l'identité associées AWS principes (par exemple, IAM rôles)

  • Politiques basées sur les ressources associées AWS ressources (par exemple, AWS Key Management Service (KMS) clés)

Note
  • Vous pouvez activer les paramètres de blocage de l'accès public uniquement pour les points d'accès, les compartiments et Comptes AWS. Amazon S3 ne prend pas en charge les paramètres de blocage de l'accès public par objet.

  • Lorsque vous appliquez des paramètres de blocage de l'accès public à un compte, ils s'appliquent à tous Régions AWS à l'échelle mondiale. Les paramètres peuvent ne pas prendre effet immédiatement ou simultanément dans toutes les Régions, mais ils finissent par s'y propager.

Paramètres de la fonctionnalité de blocage de l'accès public

La fonctionnalité de blocage de l'accès public S3 fournit quatre paramètres. Vous pouvez appliquer ces paramètres dans n'importe quelle combinaison à des points d'accès individuels, à des compartiments ou à l'ensemble Comptes AWS. Si vous appliquez un paramètre à un compte, il s'applique à tous les compartiments et points d'accès appartenant à ce compte. De même, si vous appliquez un paramètre à un compartiment, il s'applique à tous les points d'accès associés à ce compartiment.

Le tableau suivant contient les paramètres disponibles.

Nom Description
BlockPublicAcls

La configuration de cette option sur TRUE entraîne le comportement suivant :

  • PUTLes appels Bucket acl et PUT Object acl échouent si la liste de contrôle d'accès spécifiée (ACL) est publique.

  • PUTLes appels d'objet échouent si la demande inclut un publicACL.

  • Si ce paramètre est appliqué à un compte, les appels PUT Bucket échouent si la demande inclut un compte publicACL.

Lorsque ce paramètre est défini surTRUE, les opérations spécifiées échouent (qu'elles soient effectuées via REST API le AWS CLI, ou AWS SDKs). Toutefois, les politiques existantes et celles ACLs relatives aux compartiments et aux objets ne sont pas modifiées. Ce paramètre vous permet de vous protéger contre l'accès public tout en vous permettant d'auditer, d'affiner ou de modifier les politiques existantes, ainsi que celles ACLs relatives à vos compartiments et à vos objets.

Note

Les points d'accès ne leur sont pas ACLs associés. Si vous appliquez ce paramètre à un point d'accès, il agit comme une transmission au compartiment sous-jacent. Si ce paramètre est activé sur un point d'accès, les demandes effectuées via le point d'accès se comportent comme si ce paramètre était activé dans le compartiment sous-jacent, que ce paramètre soit activé ou non dans le compartiment.

IgnorePublicAcls

Si cette option est définieTRUE, Amazon S3 ignore tous les éléments publics ACLs d'un compartiment et tous les objets qu'il contient. Ce paramètre vous permet de bloquer en toute sécurité l'accès public accordé par ACLs tout en autorisant les appels d'PUTobjet incluant un public ACL (par opposition à BlockPublicAcls ceux qui rejettent les appels d'PUTobjet incluant un publicACL). L'activation de ce paramètre n'affecte pas la persistance des paramètres existants ACLs et n'empêche pas la définition d'un nouveau publicACLs.

Note

Les points d'accès ne leur sont pas ACLs associés. Si vous appliquez ce paramètre à un point d'accès, il agit comme une transmission au compartiment sous-jacent. Si ce paramètre est activé sur un point d'accès, les demandes effectuées via le point d'accès se comportent comme si ce paramètre était activé dans le compartiment sous-jacent, que ce paramètre soit activé ou non dans le compartiment.

BlockPublicPolicy

Si cette option est définie sur TRUE pour un compartiment, Amazon S3 rejette les appels à la politique de PUT compartiment si la politique de compartiment spécifiée autorise un accès public. Si cette option est définie sur TRUE pour un compartiment, Amazon S3 rejette également les appels à la politique de point d'PUTaccès pour tous les points d'accès du même compte du compartiment si la politique spécifiée autorise l'accès public.

Si cette option est définie sur TRUE pour un point d'accès, Amazon S3 rejette les appels à la politique du point d'PUTaccès et à la politique du PUT compartiment effectués via le point d'accès si la politique spécifiée (pour le point d'accès ou le compartiment sous-jacent) autorise l'accès public.

Vous pouvez utiliser ce paramètre pour autoriser les utilisateurs à gérer des stratégies de point d'accès et de compartiment, sans toutefois les autoriser à partager publiquement le compartiment ou les objets qu'il contient. L'activation de ce paramètre n'a pas d'incidence sur les stratégies de point d'accès ou de compartiment existantes.

Important

Pour utiliser ce paramètre efficacement, nous vous recommandons de l'appliquer au niveau du compte. Une stratégie de compartiment peut autoriser les utilisateurs à modifier les paramètres de blocage de l'accès public d'un compte. Par conséquent, les utilisateurs autorisés à modifier une stratégie de compartiment peuvent insérer une stratégie qui leur permet de désactiver les paramètres de blocage de l'accès public pour le compartiment. Si ce paramètre est activé pour le compte entier, et non pour un compartiment spécifique, Amazon S3 bloque les stratégies publiques même si un utilisateur modifie la stratégie de compartiment pour désactiver ce paramètre.

RestrictPublicBuckets

La définition de cette option de TRUE manière à restreindre l'accès à un point d'accès ou à un bucket soumis à une politique publique uniquement AWS les principaux de service et les utilisateurs autorisés du compte du propriétaire du bucket et du compte du propriétaire du point d'accès. Ce paramètre bloque tous les accès entre comptes au point d'accès ou au compartiment (sauf par AWS services principaux), tout en permettant aux utilisateurs du compte de gérer le point d'accès ou le compartiment.

L'activation de ce paramètre n'a pas d'incidence sur les stratégies de point d'accès ou de compartiment existantes, mais Amazon S3 bloque l'accès public et entre comptes provenant des stratégies de point d'accès ou de compartiment publiques, notamment la délégation non publique à des comptes spécifiques.

Important
  • Les appels à GET Bucket acl et GET Object acl renvoient toujours les autorisations effectives en place pour le bucket ou l'objet spécifié. Supposons, par exemple, qu'un bucket possède un ACL qui accorde un accès public, mais que le IgnorePublicAcls paramètre soit également activé sur le bucket. Dans ce cas, GET Bucket acl renvoie un ACL qui reflète les autorisations d'accès appliquées par Amazon S3, plutôt que les autorisations réellement ACL associées au compartiment.

  • Les paramètres de blocage de l'accès public ne modifient pas les politiques existantes ouACLs. Par conséquent, la suppression d'un paramètre de blocage de l'accès public permet à un bucket ou à un objet soumis à une politique publique d'être ACL à nouveau accessible au public.

Exécution d'opérations de blocage d'accès public sur un point d'accès

Pour effectuer des opérations de blocage de l'accès public sur un point d'accès, utilisez le AWS CLI services3control.

Important

Notez qu'il n'est pas possible actuellement de modifier les paramètres de blocage d'accès public d'un point d'accès une fois ce dernier créé. Ainsi, la seule façon de spécifier les paramètres de blocage d'accès public pour un point d'accès est de les inclure lors de la création du point d'accès.

La signification du mot « public »

ACLs

Amazon S3 considère qu'un bucket ou un objet est ACL public s'il accorde des autorisations aux membres du AllUsers ou des AuthenticatedUsers groupes prédéfinis. Pour plus d’informations sur les groupes prédéfinis, consultez Groupes prédéfinis Amazon S3.

Stratégies de compartiment

Lors de l'évaluation d'une stratégie de compartiment, Amazon S3 commence par assumer que la stratégie est publique. Puis, il évalue la stratégie pour déterminer si elle qualifiée comme non publique. Pour être considérée comme non publique, une politique de compartiment doit autoriser l'accès uniquement aux valeurs fixes (valeurs qui ne contiennent pas de caractère générique ou de AWS Identity and Access Management Variable de politique) pour un ou plusieurs des éléments suivants :

  • Un AWS principal, utilisateur, rôle ou principal de service (par exempleaws:PrincipalOrgID)

  • Un ensemble de routages interdomaines sans classe (CIDRs), utilisant. aws:SourceIp Pour plus d'informationsCIDR, voir RFC4632 sur le site Web de l'RFCéditeur.

    Note

    Les politiques de compartiment qui accordent un accès conditionné par la clé de condition aws:SourceIp avec de très larges plages d'adresses IP (par exemple, 0.0.0.0/1) sont considérées comme « publiques ». Cela inclut les valeurs supérieures à /8 pour IPv4 et /32 pour IPv6 (à l'exception des plages RFC1918 privées). Bloquer l'accès public rejette ces politiques « publiques » et empêche l'accès intercompte aux compartiments utilisant déjà ces politiques « publiques ».

  • aws:SourceArn

  • aws:SourceVpc

  • aws:SourceVpce

  • aws:SourceOwner

  • aws:SourceAccount

  • aws:userid, hors du modèle "AROLEID:*"

  • s3:DataAccessPointArn

    Note

    Lorsqu'elle est utilisée dans une stratégie de compartiment, cette valeur peut contenir un caractère générique pour le nom du point d'accès sans rendre la stratégie publique, à condition que l'ID de compte soit corrigé. Par exemple, autoriser l'accès à arn:aws:s3:us-west-2:123456789012:accesspoint/* permettrait l'accès à n'importe quel point d'accès associé au compte 123456789012 dans la Région us-west-2, sans rendre la stratégie de compartiment publique. Notez que ce comportement est différent pour les stratégies de point d'accès. Pour plus d’informations, consultez Points d'accès.

  • s3:DataAccessPointAccount

Pour plus d'informations sur les stratégies de compartiment, consultez Politiques relatives aux compartiments pour Amazon S3.

Exemple : politiques relatives aux compartiments publics

Conformément à ces règles, les exemples de stratégies suivants sont considérés comme publics.

{ "Principal": "*", "Resource": "*", "Action": "s3:PutObject", "Effect": "Allow" }
{ "Principal": "*", "Resource": "*", "Action": "s3:PutObject", "Effect": "Allow", "Condition": { "StringLike": {"aws:SourceVpc": "vpc-*"}} }

Ces stratégies peuvent devenir non publiques grâce à une valeur fixe en incluant l'une des clés de condition énumérée précédemment. Par exemple, la dernière stratégie ci-dessus peut devenir non publique si vous définissez aws:SourceVpc sur une valeur fixe, comme suit :

{ "Principal": "*", "Resource": "*", "Action": "s3:PutObject", "Effect": "Allow", "Condition": {"StringEquals": {"aws:SourceVpc": "vpc-91237329"}} }

Comment Amazon S3 évalue une politique de compartiment qui contient des autorisations d'accès publiques et non publiques ?

Cet exemple illustre comment Amazon S3 évalue une stratégie de compartiment contenant des autorisations d'accès publiques et non publiques.

Supposons qu'un compartiment dispose d'une stratégie qui accorde l'accès à un ensemble de mandataires fixes. Conformément aux règles précédemment décrites, cette stratégie n'est pas publique. Ainsi, si vous activez le paramètre RestrictPublicBuckets, la stratégie reste effective comme indiqué, car RestrictPublicBuckets s'applique uniquement aux compartiments disposant de stratégies publiques. Cependant, si vous ajoutez une déclaration publique à la stratégie, RestrictPublicBuckets s'applique au compartiment. Il permet uniquement AWS les responsables du service et les utilisateurs autorisés du compte du propriétaire du bucket à accéder au bucket.

Par exemple, supposons qu'un compartiment détenu par « Account-1 » dispose d'une stratégie contenant les éléments suivants :

  1. Une déclaration qui donne accès à AWS CloudTrail (qui est un AWS service principal)

  2. Une instruction qui accorde l'accès au compte « Account-2 »

  3. Une instruction qui accorde l'accès au public, par exemple en indiquant "Principal": "*" sans aucune Condition restrictive

Cette stratégie peut être publique à cause de la troisième instruction. Une fois cette politique en place et RestrictPublicBuckets activée, Amazon S3 autorise l'accès uniquement par CloudTrail. Notez que bien que l'instruction 2 ne soit pas publique, Amazon S3 désactive l'accès à « Account-2 ». En effet, l'instruction 3 permet à la stratégie entière de devenir publique, ainsi RestrictPublicBuckets s'applique. Par conséquent, Amazon S3 désactive l'accès entre comptes, bien que la stratégie délègue l'accès à un compte spécifique, « Account-2 ». Mais si vous supprimez l'instruction 3 de la stratégie, cette dernière ne peut pas être publique et RestrictPublicBuckets ne s'applique plus. Ainsi, « Account-2 » a de nouveau accès au compartiment, même si RestrictPublicBuckets reste activé.

Points d'accès

Amazon S3 évalue les paramètres de blocage de l'accès public de façon légèrement différente pour les points d'accès par rapport aux compartiments. Les règles qu'Amazon S3 applique pour déterminer quand une stratégie de point d'accès est publique sont généralement les mêmes pour les points d'accès et pour les compartiments, sauf dans les cas suivants :

  • Un point d'accès issu d'un VPC réseau est toujours considéré comme non public, quel que soit le contenu de sa politique de point d'accès.

  • Une stratégie de point d'accès qui accorde l'accès à un ensemble de points d'accès utilisant s3:DataAccessPointArn est considérée comme publique. Notez que ce comportement est différent de celui des stratégies de compartiment. Par exemple, une stratégie de compartiment qui accorde l'accès aux valeurs de s3:DataAccessPointArn correspondant à arn:aws:s3:us-west-2:123456789012:accesspoint/* n'est pas considérée comme publique. Toutefois, la même instruction dans une stratégie de point d'accès rendrait le point d'accès public.

Utilisation d'IAMAccess Analyzer pour S3 pour examiner les buckets publics

Vous pouvez utiliser IAM Access Analyzer pour S3 pour examiner les compartiments contenant des compartimentsACLs, des politiques de compartiment ou des politiques de point d'accès qui accordent un accès public. IAMAccess Analyzer for S3 vous avertit de la présence de compartiments configurés pour autoriser l'accès à toute personne sur Internet ou autre Comptes AWS, y compris Comptes AWS en dehors de votre organisation. Pour chaque compartiment public ou partagé, vous recevez des résultats qui signalent la source et le niveau d'accès public ou partagé.

Dans IAM Access Analyzer for S3, vous pouvez bloquer tout accès public à un bucket en un seul clic. 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.

Dans de rares cas, IAM Access Analyzer for S3 peut ne pas signaler de résultats concernant un compartiment considéré comme public par une évaluation d'un blocage de l'accès public par Amazon S3. Cela se produit parce que le blocage de l'accès public Amazon S3 examine les stratégies pour les actions en cours et les actions potentielles qui pourraient être ajoutées à l'avenir, ce qui rend un compartiment public. D'autre part, IAM Access Analyzer for S3 analyse uniquement les actions en cours spécifiées pour le service Amazon S3 lors de l'évaluation du statut d'accès.

Pour plus d'informations sur IAM Access Analyzer pour S3, consultezRévision de l'accès aux compartiments à l'aide IAM d'Access Analyzer pour S3.

Autorisations

Pour utiliser les fonctions du blocage de l'accès public Amazon S3, vous devez disposer des autorisations suivantes.

Opération Autorisations requises
GETétat de la politique du bucket s3:GetBucketPolicyStatus
GETParamètres d'accès public du bucket Block s3:GetBucketPublicAccessBlock
PUTParamètres d'accès public du bucket Block s3:PutBucketPublicAccessBlock
DELETEParamètres d'accès public du bucket Block s3:PutBucketPublicAccessBlock
GETparamètres de blocage de l'accès public au compte s3:GetAccountPublicAccessBlock
PUTparamètres de blocage de l'accès public au compte s3:PutAccountPublicAccessBlock
DELETEparamètres de blocage de l'accès public au compte s3:PutAccountPublicAccessBlock
PUTparamètres du point d'accès Bloquer l'accès public s3:CreateAccessPoint
Note

Les DELETE opérations nécessitent les mêmes autorisations que les PUT opérations. Il n'existe aucune autorisation distincte pour les DELETE opérations.

Configuration du blocage d'accès public

Pour plus d'informations sur la configuration du blocage de l'accès public pour votre Compte AWS, vos compartiments Amazon S3 et vos points d'accès, consultez les rubriques suivantes :