Les transferts depuis Amazon S3 peuvent utiliser une distribution Amazon CloudFront comme chemin de sortie.
Les transferts de données via CloudFront peuvent bénéficier de coûts de sortie AWS inférieurs par rapport aux transferts directs depuis S3. Pour en savoir plus, consultez les pages Tarifs de CloudFront et Frais de sortie S3.
L'utilisation de CloudFront comme chemin de sortie n'expose pas vos objets S3 au public. Consultez la page L'utilisation de CloudFront expose-t-elle mes objets au public ?
Présentation
Pour transférer des données S3 via CloudFront, procédez comme suit:
- Configurer les autorisations IAM
- Configurer l'accès à votre bucket S3
- Créer une distribution CloudFront pour votre bucket S3
- Créer une tâche de transfert
Configurer les autorisations IAM
Suivez les instructions de la section Autorisations de transfert sans agent pour accorder les autorisations Google Cloud requises.
Configurer l'accès à votre bucket S3
Suivez les instructions de la section Configurer l'accès à une source: Amazon S3 pour configurer l'accès à vos données dans Amazon S3.
Créer une distribution CloudFront pour votre bucket S3
- Dans votre compte AWS, accédez à CloudFront.
- Cliquez sur Créer une distribution CloudFront.
- Sous Domaine d'origine, sélectionnez votre bucket S3.
- Le champ Chemin d'origine doit être laissé vide.
- Acceptez le nom d'origine renseigné automatiquement ou spécifiez votre propre valeur.
- Dans la section Accès à l'origine, sélectionnez Public. Cela ne rend pas votre bucket public. Au lieu de cela, cela indique à CloudFront qu'aucun mécanisme d'accès ne doit être configuré.
- Dans la section Clé de cache et requêtes d'origine :
- Pour Règle de cache, sélectionnez CachingDisabled. Cela empêche CloudFront de mettre en cache les requêtes et de les diffuser auprès des spectateurs non authentifiés.
- Pour Règle de requête d'origine, sélectionnez AllViewerExceptHostHeader. Cela permet à CloudFront de transférer les en-têtes d'authentification vers S3, afin que le service de transfert de stockage puisse accéder à votre bucket avec vos identifiants sécurisés.
- Dans la section Pare-feu d'application Web (WAF), sélectionnez Ne pas activer.
- (Facultatif) Choisissez une classe de prix. Le service de transfert de stockage sélectionne des pools de nœuds de calcul en fonction de la région du bucket source. Les tarifs CloudFront sont donc appliqués dans cette région. Pour obtenir le tarif le plus bas, assurez-vous que votre bucket source se trouve aux États-Unis ou en Europe, ou sélectionnez Utiliser uniquement l'Amérique du Nord et l'Europe comme classe de prix dans CloudFront.
Cliquez sur Créer une distribution CloudFront.
Une fois la distribution créée, la page des détails de la distribution CloudFront s'affiche.
Notez le nom de domaine de distribution. Exemple :
https://dy1h2n3l4ob56.cloudfront.net
. Si la page d'informations n'inclut pas le protocolehttps://
avant le nom de domaine de distribution, vous devrez l'ajouter vous-même lorsque vous créerez la tâche de transfert.
Créer un job de transfert
Le transfert via une distribution CloudFront est compatible avec la console Google Cloud et l'API REST.
N'incluez pas d'informations sensibles telles que des informations permettant d'identifier personnellement l'utilisateur ou des données de sécurité dans le nom de votre tâche de transfert. Les noms de ressources peuvent être propagés aux noms d'autres ressources Google Cloud et peuvent être exposés à des systèmes internes à Google en dehors de votre projet.Console Google Cloud
Pour créer un transfert à l'aide de la console Google Cloud, suivez les instructions pour créer un transfert.
Lorsque vous êtes invité à saisir le domaine CloudFront, saisissez le nom de domaine de distribution que vous avez noté dans la section précédente. Vous pouvez également trouver cette valeur dans la section CloudFront de la console Amazon Web Services. Il se présente au format https://dy1h2n3l4ob56.cloudfront.net
.
API REST
Pour créer un transfert à l'aide de l'API REST, suivez l'exemple sur la page Créer des transferts.
Spécifiez le nom de domaine de distribution comme valeur du champ transferSpec.awsS3DataSource.cloudfrontDomain
:
"transferSpec": {
"awsS3DataSource": {
"bucketName": "AWS_SOURCE_NAME",
"cloudfrontDomain": "https://dy1h2n3l4ob56.cloudfront.net",
"awsAccessKey": {
"accessKeyId": "AWS_ACCESS_KEY_ID",
"secretAccessKey": "AWS_SECRET_ACCESS_KEY"
}
},
...
}
Questions fréquentes
L'utilisation de CloudFront expose-t-elle mes objets au public ?
Non. Si vous avez suivi les étapes de configuration de cette page, vos objets ne sont pas exposés au public.
- Cloudfront n'a pas d'accès direct à vos objets S3.
- Les utilisateurs reçoivent une erreur
permission denied
s'ils tentent d'accéder à vos objets directement ou via CloudFront (si votre bucket est privé). - Le service de transfert de stockage signe les requêtes envoyées à CloudFront à l'aide des identifiants que vous avez fournis dans la tâche de transfert. Cela nous permet de télécharger vos objets de manière sécurisée, comme si nous les téléchargions directement à partir de S3. Cela fonctionne grâce au paramètre de transfert d'en-tête
AllViewerExceptHostHeader
.