Comment puis-je restreindre l’accès à mon compartiment Amazon S3 en utilisant des points de terminaison d’un VPC ou des adresses IP spécifiques ?
Je souhaite bloquer tout trafic qui ne provient pas d’un point de terminaison Amazon Virtual Private Cloud (VPC) spécifique ou de certaines adresses IP. Ou bien, j’utilise un compartiment Amazon Simple Storage Service (Amazon S3) pour héberger un site Web statique. Le site Web doit être accessible à partir de points de terminaison d’un VPC ou d’adresses IP spécifiques.
Résolution
Avertissement : les exemples de politiques de compartiment présentés dans cet article interdisent explicitement l’accès à toutes les requêtes en dehors des points de terminaison d’un VPC ou des adresses IP autorisés. Veillez à lire attentivement la politique de compartiment avant de l’enregistrer.
Utilisez une politique de compartiment pour indiquer les points de terminaison d’un VPC, les adresses IP source d’un VPC ou les adresses IP externes qui peuvent accéder au compartiment S3.
Remarque : une adresse IP source de VPC est une adresse IP privée provenant d’un VPC. Les adresses privées ne sont pas accessibles sur Internet et peuvent être utilisées pour la communication entre les instances de votre VPC. Par exemple, une adresse IP privée peut être l’adresse IP privée d’une instance Amazon Elastic Compute Cloud (Amazon EC2).
Une adresse IP externe est une adresse IP publique qui peut se trouver dans un VPC ou en dehors de celui-ci. Par exemple, une adresse IP externe peut être l’adresse IP Elastic ou publique d’une instance Amazon Elastic Compute Cloud (Amazon EC2). L’adresse IP externe peut également être l’adresse IP de la passerelle NAT ou du serveur proxy d’un VPC.
Par exemple, la politique de compartiment suivante bloque le trafic vers le compartiment, sauf si la requête provient de points de terminaison d’un VPC spécifiés (aws:sourceVpce) :
{ "Id": "VPCe", "Version": "2012-10-17", "Statement": [ { "Sid": "VPCe", "Action": "s3:*", "Effect": "Deny", "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET", "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" ], "Condition": { "StringNotEquals": { "aws:SourceVpce": [ "vpce-1111111", "vpce-2222222" ] } }, "Principal": "*" } ] }
Remarque :
- pour utiliser cette politique avec la condition aws:sourceVpce, vous devez associer un point de terminaison d’un VPC pour Amazon S3. Le point de terminaison d’un VPC doit être attaché à la table de routage du sous-réseau de l’instance EC2 et se trouver dans la même région AWS que le compartiment.
- Pour permettre aux utilisateurs d’effectuer des actions S3 sur le compartiment à partir des points de terminaison ou des adresses IP d’un VPC, vous devez explicitement accorder les autorisations de niveau utilisateur. Vous pouvez explicitement accorder des autorisations de niveau utilisateur dans une politique AWS Identity and Access Management (IAM) ou dans une autre instruction de la politique de compartiment.
Par exemple, la politique de compartiment suivante bloque le trafic vers le compartiment, sauf si la requête provient d’adresses IP privées spécifiées (aws:VpcSourceIp) :
{ "Id": "VpcSourceIp", "Version": "2012-10-17", "Statement": [ { "Sid": "VpcSourceIp", "Action": "s3:*", "Effect": "Deny", "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET", "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" ], "Condition": { "NotIpAddress": { "aws:VpcSourceIp": [ "10.1.1.1/32", "172.1.1.1/32" ] } }, "Principal": "*" } ] }
Remarque : pour utiliser cette politique avec la condition aws:VpcSourceIP, vous devez associer un point de terminaison d’un VPC pour Amazon S3. Le point de terminaison d’un VPC doit être attaché à la table de routage du sous-réseau de l’instance EC2 et se trouver dans la même région AWS que le compartiment.
Par exemple, la politique de compartiment suivante bloque le trafic vers le compartiment, sauf si la requête provient d’adresses IP externes spécifiées (aws:SourceIp) :
{ "Id": "SourceIP", "Version": "2012-10-17", "Statement": [ { "Sid": "SourceIP", "Action": "s3:*", "Effect": "Deny", "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET", "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" ], "Condition": { "NotIpAddress": { "aws:SourceIp": [ "11.11.11.11/32", "22.22.22.22/32" ] } }, "Principal": "*" } ] }
Avertissement : ces exemples de politiques de compartiment interdisent explicitement l’accès à toutes les requêtes en dehors des points de terminaison d’un VPC ou des adresses IP autorisés. Même l’utilisateur qui a saisi la politique du compartiment peut se voir refuser l’accès au compartiment s’il ne remplit pas les conditions. Par conséquent, veillez donc à lire attentivement la politique de compartiment avant de l’enregistrer. Si vous êtes bloqué par erreur, veuillez consulter la section J’ai accidentellement refusé à tout le monde l’accès au compartiment Amazon S3. Comment puis-je rétablir l’accès ?
Si vous devez autoriser des utilisateurs spécifiques (dans le même compte AWS) à accéder au compartiment, incluez l’instruction suivante dans le bloc Condition :
- AROAEXAMPLEID est l’ID de rôle d’un rôle IAM que vous souhaitez autoriser
- AIDAEXAMPLEID est l’ID utilisateur d’un utilisateur IAM que vous souhaitez autoriser
- 111111111111 est l’ID de compte AWS du compartiment qui représente les informations d’identification de l’utilisateur racine du compte AWS
Exemple :
"Condition": { "StringNotLike": { "aws:userId": [ "AROAEXAMPLEID:*", "AIDAEXAMPLEID", "111111111111" ] } }
Pour plus d’informations sur l’octroi d’accès à des rôles IAM spécifiques, veuillez consulter la section Comment restreindre l’accès au compartiment Amazon S3 à un rôle IAM spécifique.
Informations connexes
Vidéos associées
Contenus pertinents
- demandé il y a 3 moislg...
- demandé il y a 3 moislg...
- demandé il y a un moislg...
- demandé il y a un anlg...
- AWS OFFICIELA mis à jour il y a 6 mois
- Comment puis-je accorder l’accès public en lecture à certains objets de mon compartiment Amazon S3 ?AWS OFFICIELA mis à jour il y a 2 ans
- AWS OFFICIELA mis à jour il y a 2 ans
- AWS OFFICIELA mis à jour il y a un an