

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.

# Commencez avec CloudFront
<a name="GettingStarted"></a>

Les rubriques de cette section vous montrent comment commencer à diffuser votre contenu avec Amazon CloudFront.

La [Configurez votre Compte AWS](setting-up-cloudfront.md) rubrique décrit les prérequis pour les didacticiels suivants, tels que la création d'un Compte AWS et la création d'un utilisateur doté d'un accès administratif.

Le didacticiel de distribution de base vous montre comment configurer le contrôle d’accès d’origine (OAC) pour envoyer des demandes authentifiées à une origine Amazon S3.

Le didacticiel pour site web statique sécurisé explique comment créer un site web statique sécurisé pour votre nom de domaine à l’aide d’un OAC et d’une origine Amazon S3. Le didacticiel utilise un modèle Amazon CloudFront (CloudFront) pour la configuration et le déploiement.

**Topics**
+ [

# Configurez votre Compte AWS
](setting-up-cloudfront.md)
+ [

# Commencez avec une distribution CloudFront standard
](GettingStarted.SimpleDistribution.md)
+ [

# Mise en route avec une distribution standard (AWS CLI)
](get-started-cli-tutorial.md)
+ [

# Mise en route avec un site web statique sécurisé
](getting-started-secure-static-website-cloudformation-template.md)

# Configurez votre Compte AWS
<a name="setting-up-cloudfront"></a>

Cette rubrique décrit les étapes préliminaires, telles que la création d'un Compte AWS, pour vous préparer à utiliser Amazon CloudFront.

**Topics**
+ [

## Inscrivez-vous pour un Compte AWS
](#sign-up-for-aws)
+ [

## Création d’un utilisateur doté d’un accès administratif
](#create-an-admin)
+ [

## Choisissez le mode d'accès CloudFront
](#introduction-accessing-cloudfront)

## Inscrivez-vous pour un Compte AWS
<a name="sign-up-for-aws"></a>

Si vous n'en avez pas Compte AWS, procédez comme suit pour en créer un.

**Pour vous inscrire à un Compte AWS**

1. Ouvrez l'[https://portal.aws.amazon.com/billing/inscription.](https://portal.aws.amazon.com/billing/signup)

1. Suivez les instructions en ligne.

   Dans le cadre de la procédure d’inscription, vous recevrez un appel téléphonique ou un SMS et vous saisirez un code de vérification en utilisant le clavier numérique du téléphone.

   Lorsque vous vous inscrivez à un Compte AWS, un *Utilisateur racine d'un compte AWS*est créé. Par défaut, seul l’utilisateur racine a accès à l’ensemble des Services AWS et des ressources de ce compte. La meilleure pratique de sécurité consiste à attribuer un accès administratif à un utilisateur, et à utiliser uniquement l’utilisateur racine pour effectuer les [tâches nécessitant un accès utilisateur racine](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks).

AWS vous envoie un e-mail de confirmation une fois le processus d'inscription terminé. À tout moment, vous pouvez consulter l'activité actuelle de votre compte et gérer votre compte en accédant à [https://aws.amazon.com/](https://aws.amazon.com/)et en choisissant **Mon compte**.

## Création d’un utilisateur doté d’un accès administratif
<a name="create-an-admin"></a>

Une fois que vous vous êtes inscrit à un utilisateur administratif Compte AWS, que vous Utilisateur racine d'un compte AWS l'avez sécurisé AWS IAM Identity Center, que vous l'avez activé et que vous en avez créé un, afin de ne pas utiliser l'utilisateur root pour les tâches quotidiennes.

**Sécurisez votre Utilisateur racine d'un compte AWS**

1.  Connectez-vous en [AWS Management Console](https://console.aws.amazon.com/)tant que propriétaire du compte en choisissant **Utilisateur root** et en saisissant votre adresse Compte AWS e-mail. Sur la page suivante, saisissez votre mot de passe.

   Pour obtenir de l’aide pour vous connecter en utilisant l’utilisateur racine, consultez [Connexion en tant qu’utilisateur racine](https://docs.aws.amazon.com/signin/latest/userguide/console-sign-in-tutorials.html#introduction-to-root-user-sign-in-tutorial) dans le *Guide de l’utilisateur Connexion à AWS *.

1. Activez l’authentification multifactorielle (MFA) pour votre utilisateur racine.

   Pour obtenir des instructions, consultez la section [Activer un périphérique MFA virtuel pour votre utilisateur Compte AWS root (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/enable-virt-mfa-for-root.html) dans le guide de l'utilisateur *IAM*.

**Création d’un utilisateur doté d’un accès administratif**

1. Activez IAM Identity Center.

   Pour obtenir des instructions, consultez [Activation d’ AWS IAM Identity Center](https://docs.aws.amazon.com//singlesignon/latest/userguide/get-set-up-for-idc.html) dans le *Guide de l’utilisateur AWS IAM Identity Center *.

1. Dans IAM Identity Center, octroyez un accès administratif à un utilisateur.

   Pour un didacticiel sur l'utilisation du Répertoire IAM Identity Center comme source d'identité, voir [Configurer l'accès utilisateur par défaut Répertoire IAM Identity Center](https://docs.aws.amazon.com//singlesignon/latest/userguide/quick-start-default-idc.html) dans le *Guide de AWS IAM Identity Center l'utilisateur*.

**Connexion en tant qu’utilisateur doté d’un accès administratif**
+ Pour vous connecter avec votre utilisateur IAM Identity Center, utilisez l’URL de connexion qui a été envoyée à votre adresse e-mail lorsque vous avez créé l’utilisateur IAM Identity Center.

  Pour obtenir de l'aide pour vous connecter en utilisant un utilisateur d'IAM Identity Center, consultez la section [Connexion au portail AWS d'accès](https://docs.aws.amazon.com/signin/latest/userguide/iam-id-center-sign-in-tutorial.html) dans le *guide de l'Connexion à AWS utilisateur*.

**Attribution d’un accès à d’autres utilisateurs**

1. Dans IAM Identity Center, créez un ensemble d’autorisations qui respecte la bonne pratique consistant à appliquer les autorisations de moindre privilège.

   Pour obtenir des instructions, consultez [Création d’un ensemble d’autorisations](https://docs.aws.amazon.com//singlesignon/latest/userguide/get-started-create-a-permission-set.html) dans le *Guide de l’utilisateur AWS IAM Identity Center *.

1. Attribuez des utilisateurs à un groupe, puis attribuez un accès par authentification unique au groupe.

   Pour obtenir des instructions, consultez [Ajout de groupes](https://docs.aws.amazon.com//singlesignon/latest/userguide/addgroups.html) dans le *Guide de l’utilisateur AWS IAM Identity Center *.

## Choisissez le mode d'accès CloudFront
<a name="introduction-accessing-cloudfront"></a>

Vous pouvez accéder CloudFront à Amazon de différentes manières :
+ **AWS Management Console**— Les procédures décrites dans ce guide expliquent comment utiliser le AWS Management Console pour effectuer des tâches.
+ **AWS SDKs**— Si vous utilisez un langage de programmation qui AWS fournit un SDK pour, vous pouvez utiliser un SDK pour y accéder. CloudFront SDKs simplifiez l'authentification, intégrez facilement votre environnement de développement et donnez accès aux CloudFront commandes. Pour de plus amples informations, veuillez consulter [Utilisation CloudFront avec un AWS SDK](sdk-general-information-section.md).
+ **CloudFront API** — Si vous utilisez un langage de programmation pour lequel aucun SDK n'est disponible, consultez le [Amazon CloudFront API Reference](https://docs.aws.amazon.com/cloudfront/latest/APIReference/Welcome.html) pour plus d'informations sur les actions d'API et sur la manière de faire des demandes d'API.
+ **AWS CLI**— Le AWS Command Line Interface (AWS CLI) est un outil de gestion unifié Services AWS. Pour en savoir plus sur la manière d’installer et de configurer l’ AWS CLI, consultez [Installation ou mise à jour de la dernière version de l’ AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) dans le *Guide de l’utilisateur de l’AWS Command Line Interface *.
+ **Outils pour Windows PowerShell** — Si vous avez de l'expérience avec Windows PowerShell, vous préférerez peut-être utiliser AWS Tools for Windows PowerShell. Pour plus d’informations, consultez [Installation d’ AWS Tools for Windows PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-getting-set-up.html) dans le *Guide de l’utilisateur Outils AWS pour PowerShell *.

# Commencez avec une distribution CloudFront standard
<a name="GettingStarted.SimpleDistribution"></a>

Les procédures décrites dans cette section vous indiquent comment CloudFront configurer une distribution standard qui effectue les opérations suivantes :
+ Création d’un compartiment S3 comme origine de votre distribution.
+ Stockage des versions d’origine de vos objets dans un compartiment Amazon Simple Storage Service (Amazon S3).
+ Utilisation du contrôle d’accès d’origine (OAC) pour envoyer des demandes authentifiées à votre origine Amazon S3. L'OAC envoie des demandes CloudFront pour empêcher les utilisateurs d'accéder directement à votre compartiment S3. Pour plus d’informations sur l’OAC, consultez [Restriction de l’accès à une origine Amazon S3](private-content-restricting-access-to-s3.md).
+ Utilise le nom de CloudFront domaine URLs pour vos objets (par exemple,`https://d111111abcdef8.cloudfront.net/index.html`).
+ Maintient vos objets dans des emplacements CloudFront périphériques pendant la durée par défaut de 24 heures (la durée minimale est de 0 seconde).

La plupart de ces paramètres sont configurés automatiquement pour vous lorsque vous créez une CloudFront distribution.

**Topics**
+ [

## Conditions préalables
](#GettingStartedSignup)
+ [

## Créer un compartiment Amazon S3
](#GettingStartedCreateBucket)
+ [

## Chargement du contenu dans le compartiment
](#GettingStartedUploadContent)
+ [

## Créez une CloudFront distribution qui utilise une origine Amazon S3 avec OAC
](#GettingStartedCreateDistribution)
+ [

## Accédez à votre contenu via CloudFront
](#GettingStartedAccessingDistributions)
+ [

## Nettoyage
](#GettingStartedDistributionCleanup)
+ [

## Amélioration de votre distribution de base
](#GettingStartedDistributionNotes)

## Conditions préalables
<a name="GettingStartedSignup"></a>

Avant de commencer, vérifiez que vous avez bien terminé les étapes de [Configurez votre Compte AWS](setting-up-cloudfront.md).

## Créer un compartiment Amazon S3
<a name="GettingStartedCreateBucket"></a>

Un compartiment Amazon S3 est un conteneur pour des fichiers (objets) ou des dossiers. CloudFront peut distribuer presque n'importe quel type de fichier pour vous lorsqu'un compartiment S3 est la source. Par exemple, CloudFront peut distribuer du texte, des images et des vidéos. La quantité de données que vous pouvez stocker sur Amazon S3 n’est pas limitée.

Dans ce didacticiel, vous allez créer un compartiment S3 contenant les fichiers d’exemple `hello world` fournis, que vous utiliserez pour créer une page web de base.

**Pour créer un compartiment**

1. Connectez-vous à la console Amazon S3 AWS Management Console et ouvrez-la à l'adresse [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Nous vous recommandons d’utiliser notre exemple Hello World pour ce guide de démarrage. Téléchargez la page Web *Hello World* : [hello-world-html.zip.](samples/hello-world-html.zip) Décompressez-le, puis enregistrez le dossier `css` et le fichier `index` à un emplacement pratique, par exemple sur le bureau où vous utilisez votre navigateur.

1. Choisissez **Créer un compartiment**.

1. Entrez un **Nom de compartiment** unique conforme aux [Règles de dénomination des compartiments à usage général](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html#general-purpose-bucket-names) du *Guide de l’utilisateur Amazon Simple Storage Service*.

1. Pour la **Région**, nous vous recommandons de choisir une Région AWS géographiquement proche de vous. (Ce choix réduit la latence et les coûts.)
   + Vous pouvez également sélectionner une autre région. Vous pourriez le faire, par exemple, pour répondre à des exigences réglementaires.

1. Conservez aux autres paramètres leurs valeurs par défaut, puis cliquez sur **Créer un compartiment**.

## Chargement du contenu dans le compartiment
<a name="GettingStartedUploadContent"></a>

Après avoir créé votre compartiment Amazon S3, téléchargez-y le contenu du fichier `hello world` décompressé. (Vous avez téléchargé et décompressé ce fichier dans [Créer un compartiment Amazon S3](#GettingStartedCreateBucket).)

**Pour charger le contenu dans Amazon S3**

1. Dans la section **Compartiments à usage général**, choisissez le nom de votre nouveau compartiment.

1. Choisissez **Charger**.

1. Sur la page **Charger**, faites glisser le dossier `css` et le fichier `index` jusqu’à la zone de dépôt.

1. Laissez tous les autres paramètres avec leur valeur par défaut, puis sélectionnez **Charger**.

## Créez une CloudFront distribution qui utilise une origine Amazon S3 avec OAC
<a name="GettingStartedCreateDistribution"></a>

Dans le cadre de ce didacticiel, vous allez créer une CloudFront distribution qui utilise une origine Amazon S3 avec un contrôle d'accès à l'origine (OAC). L’OAC vous permet d’envoyer en toute sécurité des demandes authentifiées à votre origine Amazon S3. Pour plus d’informations sur l’OAC, consultez [Restriction de l’accès à une origine Amazon S3](private-content-restricting-access-to-s3.md).<a name="GettingStartedCreateDistributionProcedure"></a>

**Pour créer une CloudFront distribution avec une origine Amazon S3 qui utilise OAC**

1. Ouvrez la CloudFront console à l'adresse[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home).

1. Choisissez **Créer une distribution**.

1. Entrez un **Nom de distribution** pour la distribution standard. Le nom sera affiché comme valeur pour la clé `Name` sous forme de balise. Cette valeur peut être modifiée par la suite. Vous pouvez ajouter jusqu’à 50 balises pour votre distribution standard. Pour de plus amples informations, veuillez consulter [Étiquetage d’une distribution](tagging.md).

1. Choisissez **Site web ou application unique**, puis **Suivant**.

1. Choisissez **Suivant**.

1. Sur la page **Type de l’origine**, sélectionnez **Amazon S3**.

1. Pour **Origine S3**, choisissez **Parcourir S3** et sélectionnez le compartiment S3 que vous avez créé pour ce didacticiel.

1. Dans **Paramètres**, choisissez **Utiliser les paramètres d'origine recommandés**. CloudFront utilisera les paramètres de cache et d'origine recommandés par défaut pour votre origine Amazon S3, y compris la configuration du contrôle d'accès à l'origine (OAC). Pour plus d’informations sur les paramètres recommandés, consultez [Référence des paramètres de distribution préconfigurés](template-preconfigured-origin-settings.md).

1. Choisissez **Suivant**.

1. Sur la page **Activer les protections de sécurité**, choisissez si vous souhaitez activer les protections AWS WAF de sécurité.

1. Choisissez **Suivant**.

1. Choisissez **Créer une distribution**. CloudFront met à jour la politique relative aux compartiments S3 pour vous.

1. Examinez la section **Détails** de la nouvelle distribution. Lorsque le déploiement de votre distribution est terminé, le champ **Dernière modification** passe de **Déploiement** à une date et une heure.

1. Enregistrez le nom de domaine CloudFront attribué à votre distribution. Il ressemble à ce qui suit: `d111111abcdef8.cloudfront.net`.

Avant d’utiliser la distribution et le compartiment S3 décrits dans ce didacticiel dans un environnement de production, vérifiez qu’ils sont configurés pour répondre à vos besoins spécifiques. Pour en savoir plus sur la configuration de l’accès dans un environnement de production, consultez [Configuration d’un accès sécurisé et restriction de l’accès au contenu](SecurityAndPrivateContent.md).

## Accédez à votre contenu via CloudFront
<a name="GettingStartedAccessingDistributions"></a>

Pour accéder à votre contenu via CloudFront, associez le nom de domaine de votre CloudFront distribution à la page principale de votre contenu. (Vous avez enregistré votre nom de domaine de distribution dans [Créez une CloudFront distribution qui utilise une origine Amazon S3 avec OAC](#GettingStartedCreateDistribution).)
+ Le nom de domaine de votre distribution se présente sous cette forme : `d111111abcdef8.cloudfront.net`.
+  Le chemin de la page principale d'un site web est généralement `/index.html`. 

Par conséquent, l'URL permettant d'accéder à votre contenu CloudFront peut ressembler à ceci :

`https://d111111abcdef8.cloudfront.net/index.html`.

Si vous avez suivi les étapes précédentes et utilisé la page web *hello world*, vous devriez voir une page web affichant **Hello world\$1**.

Lorsque vous chargez du contenu supplémentaire dans ce compartiment S3, vous pouvez y accéder en CloudFront combinant le nom de domaine de CloudFront distribution avec le chemin d'accès à l'objet dans le compartiment S3. Par exemple, si vous chargez un nouveau fichier nommé `new-page.html` à la racine de votre compartiment S3, l’URL se présente comme suit :

`https://d111111abcdef8.cloudfront.net/new-page.html`.

## Nettoyage
<a name="GettingStartedDistributionCleanup"></a>

Si vous avez créé votre distribution et votre compartiment S3 uniquement à des fins d’apprentissage, supprimez-les afin de ne plus encourir de coûts. Commencez par supprimer la distribution. Pour plus d'informations, consultez les liens suivants :
+ [Supprimer une distribution](HowToDeleteDistribution.md)
+ [Supprimer un bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/delete-bucket.html)

## Amélioration de votre distribution de base
<a name="GettingStartedDistributionNotes"></a>

Ce didacticiel de mise en route fournit un cadre minimal pour créer une distribution. Nous vous recommandons d'explorer les améliorations suivantes :
+ Vous pouvez utiliser la fonctionnalité de contenu CloudFront privé pour restreindre l'accès au contenu des compartiments Amazon S3. Pour plus d’informations sur la distribution de contenus privés, consultez [Diffusez du contenu privé avec des cookies signés URLs et signés](PrivateContent.md).
+ Vous pouvez configurer votre CloudFront distribution pour utiliser un nom de domaine personnalisé (par exemple, `www.example.com` au lieu de`d111111abcdef8.cloudfront.net`). Pour de plus amples informations, veuillez consulter [Utiliser personnalisé URLs](CNAMEs.md).
+ Ce didacticiel utilise une origine Amazon S3 avec un contrôle d’accès d’origine (OAC). Cependant, vous ne pouvez pas utiliser l’OAC si votre origine est un compartiment S3 configuré comme [point de terminaison de site web](https://docs.aws.amazon.com/AmazonS3/latest/userguide/WebsiteEndpoints.html). Si tel est le cas, vous devez configurer votre bucket en CloudFront tant qu'origine personnalisée. Pour de plus amples informations, veuillez consulter [Utilisation d’un compartiment Amazon S3 configuré en tant que point de terminaison de site web](DownloadDistS3AndCustomOrigins.md#concept_S3Origin_website). Pour plus d’informations sur l’OAC, consultez [Restriction de l’accès à une origine Amazon S3](private-content-restricting-access-to-s3.md).

# Mise en route avec une distribution standard (AWS CLI)
<a name="get-started-cli-tutorial"></a>

Les procédures décrites dans cette section vous montrent comment utiliser le AWS CLI with CloudFront pour configurer une configuration de base impliquant les éléments suivants :
+ Création d’un compartiment Amazon S3 comme origine de votre distribution.
+ Stockage des versions d’origine de vos objets dans le compartiment S3.
+ Utilisation du contrôle d’accès d’origine (OAC) pour envoyer des demandes authentifiées à votre origine Amazon S3. L'OAC envoie des demandes CloudFront pour empêcher les utilisateurs d'accéder directement à votre compartiment S3. Pour plus d’informations sur l’OAC, consultez [Restriction de l’accès à une origine Amazon S3](private-content-restricting-access-to-s3.md).
+ Utiliser le nom de CloudFront domaine URLs pour vos objets (par exemple,`https://d111111abcdef8.cloudfront.net/index.html`).
+ Conserver vos objets dans des emplacements CloudFront périphériques pendant la durée par défaut de 24 heures (la durée minimale est de 0 seconde).

La plupart de ces options sont personnalisables. Pour plus d'informations sur la personnalisation de vos options de distribution CloudFront consultez [Créer une distribution](distribution-web-creating-console.md).

## Conditions préalables
<a name="get-started-cli-prereqs"></a>

Avant de commencer, vérifiez que vous avez bien terminé les étapes de [Configurez votre Compte AWS](setting-up-cloudfront.md).

Installez-le AWS CLI et configurez-le avec vos informations d'identification. Pour plus d’informations, consultez [Mise en route avec le AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html) dans le *AWS CLI Guide de l’utilisateur*.



## Créer un compartiment Amazon S3
<a name="get-started-cli-create-bucket"></a>

Un compartiment Amazon S3 est un conteneur pour des fichiers (objets) ou des dossiers. CloudFront peut distribuer presque n'importe quel type de fichier pour vous lorsqu'un compartiment S3 est la source. Par exemple, CloudFront peut distribuer du texte, des images et des vidéos. La quantité de données que vous pouvez stocker sur Amazon S3 n’est pas limitée.

Dans ce didacticiel, vous allez créer un compartiment S3 et télécharger un fichier HTML qui servira à générer une page web simple.

```
aws s3 mb s3://amzn-s3-demo-bucket/ --region us-east-1
```

*amzn-s3-demo-bucket*Remplacez-le par un nom de compartiment unique au monde. Pour cela Région AWS, nous vous recommandons de choisir une région géographiquement proche de vous. Cette approche diminue la latence et les coûts, bien qu’il soit tout à fait possible d’utiliser une autre région. Par exemple, vous pouvez procéder ainsi afin de satisfaire à des exigences réglementaires.

## Chargement du contenu dans le compartiment
<a name="get-started-cli-upload-content"></a>

Pour ce didacticiel, téléchargez et extrayez les fichiers de contenu d’exemple pour une page web « Hello World » basique.

```
# Create a temporary directory
mkdir -p ~/cloudfront-demo

# Download the sample Hello World files
curl -o ~/cloudfront-demo/hello-world-html.zip https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/samples/hello-world-html.zip

# Extract the zip file
unzip ~/cloudfront-demo/hello-world-html.zip -d ~/cloudfront-demo/hello-world
```

Cette opération crée un répertoire contenant un fichier `index.html` et un dossier `css`. Chargez ces fichier dans votre compartiment S3.

```
aws s3 cp ~/cloudfront-demo/hello-world/ s3://amzn-s3-demo-bucket/ --recursive
```

## Création d’un contrôle d’accès d’origine (OAC)
<a name="get-started-cli-create-oac"></a>

Dans ce didacticiel, vous allez créer un contrôle d’accès d’origine (OAC). L’OAC vous permet d’envoyer en toute sécurité des demandes authentifiées à votre origine Amazon S3. Pour plus d’informations sur l’OAC, consultez [Restriction de l’accès à une origine Amazon S3](private-content-restricting-access-to-s3.md).

```
aws cloudfront create-origin-access-control \
    --origin-access-control-config Name="oac-for-s3",SigningProtocol=sigv4,SigningBehavior=always,OriginAccessControlOriginType=s3
```

Enregistrez l’ID de l’OAC fourni dans la sortie en tant que variable d’environnement. Remplacez les exemples de valeurs par votre propre ID d’OAC. Vous l’utiliserez à l’étape suivante.

```
OAC_ID="E1ABCD2EFGHIJ"
```

## Création d’une distribution standard
<a name="get-started-cli-create-classic"></a>

Créez un fichier de configuration de distribution nommé `distribution-config.json`. Remplacez le nom de compartiment de l’exemple par le vôtre pour les valeurs `Id`, `DomainName` et `TargetOriginId`.

```
cat > distribution-config.json << EOF
{
    "CallerReference": "cli-example-$(date +%s)",
    "Origins": {
        "Quantity": 1,
        "Items": [
            {
                "Id": "S3-amzn-s3-demo-bucket",
                "DomainName": "amzn-s3-demo-bucket.s3.amazonaws.com",
                "S3OriginConfig": {
                    "OriginAccessIdentity": ""
                },
                "OriginAccessControlId": "$OAC_ID"
            }
        ]
    },
    "DefaultCacheBehavior": {
        "TargetOriginId": "S3-amzn-s3-demo-bucket",
        "ViewerProtocolPolicy": "redirect-to-https",
        "AllowedMethods": {
            "Quantity": 2,
            "Items": ["GET", "HEAD"],
            "CachedMethods": {
                "Quantity": 2,
                "Items": ["GET", "HEAD"]
            }
        },
        "DefaultTTL": 86400,
        "MinTTL": 0,
        "MaxTTL": 31536000,
        "Compress": true,
        "ForwardedValues": {
            "QueryString": false,
            "Cookies": {
                "Forward": "none"
            }
        }
    },
    "Comment": "CloudFront distribution for S3 bucket",
    "Enabled": true
}
EOF
```

Créez la distribution standard.

```
aws cloudfront create-distribution --distribution-config file://distribution-config.json
```

Enregistrez l’ID de distribution et le nom de domaine de la sortie en tant que variables d’environnement. Remplacez les exemples de valeurs par les vôtres. Vous les utiliserez ultérieurement dans ce didacticiel.

```
DISTRIBUTION_ID="EABCD1234XMPL"
DOMAIN_NAME="d111111abcdef8.cloudfront.net"
```

Avant d’utiliser la distribution et le compartiment S3 décrits dans ce didacticiel dans un environnement de production, vérifiez qu’ils sont configurés pour répondre à vos besoins spécifiques. Pour en savoir plus sur la configuration de l’accès dans un environnement de production, consultez [Configuration d’un accès sécurisé et restriction de l’accès au contenu](SecurityAndPrivateContent.md).

## Mise à jour de votre stratégie de compartiment S3
<a name="get-started-cli-update-bucket-policy"></a>

Mettez à jour votre politique de compartiment S3 CloudFront pour autoriser l'accès aux objets. Remplacez le nom de compartiment utilisé dans l’exemple par le nom de votre compartiment.

```
# Get your AWS account ID
ACCOUNT_ID=$(aws sts get-caller-identity --query 'Account' --output text)

# Create the bucket policy
cat > bucket-policy.json << EOF
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowCloudFrontServicePrincipal",
            "Effect": "Allow",
            "Principal": {
                "Service": "cloudfront.amazonaws.com"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
            "Condition": {
                "StringEquals": {
                    "AWS:SourceArn": "arn:aws:cloudfront::$ACCOUNT_ID:distribution/$DISTRIBUTION_ID"
                }
            }
        }
    ]
}
EOF

# Apply the bucket policy
aws s3api put-bucket-policy \
    --bucket amzn-s3-demo-bucket \
    --policy file://bucket-policy.json
```

## Confirmation du déploiement de la distribution
<a name="get-started-cli-confirm-deployment"></a>

Une fois votre distribution créée, le déploiement prendra un certain temps. Lorsque l’état de distribution passe de `InProgress` à `Deployed`, passez à l’étape suivante.

```
aws cloudfront get-distribution --id $DISTRIBUTION_ID --query 'Distribution.Status'
```

Vous pouvez également utiliser la commande `wait` pour attendre le déploiement de la distribution.

```
aws cloudfront wait distribution-deployed --id $DISTRIBUTION_ID
```

## Accédez à votre contenu via CloudFront
<a name="get-started-cli-access-content"></a>

Pour accéder à votre contenu via CloudFront, associez le nom de domaine de votre CloudFront distribution à la page principale de votre contenu. Remplacez l'exemple CloudFront de nom de domaine par le vôtre.

```
https://d111111abcdef8.cloudfront.net/index.html
```

Si vous avez suivi les étapes précédentes et créé le fichier HTML, vous devriez voir une page web affichant **Hello world\$1**.

Lorsque vous chargez du contenu supplémentaire dans ce compartiment S3, vous pouvez y accéder en CloudFront combinant le nom de domaine de CloudFront distribution avec le chemin d'accès à l'objet dans le compartiment S3. Par exemple, si vous chargez un nouveau fichier nommé `new-page.html` à la racine de votre compartiment S3, l’URL se présente comme suit :

`https://d111111abcdef8.cloudfront.net/new-page.html`.

## Nettoyage
<a name="get-started-cli-cleanup"></a>

Si vous avez créé votre distribution et votre compartiment S3 uniquement à des fins d’apprentissage, supprimez-les afin de ne plus encourir de coûts. Commencez par désactiver et supprimer la distribution.

**Pour désactiver et supprimer une distribution standard (AWS CLI)**

1. Tout d’abord, désactivez la distribution.

   ```
   # Get the current configuration and ETag
   ETAG=$(aws cloudfront get-distribution-config --id $DISTRIBUTION_ID --query 'ETag' --output text)
   
   # Create a modified configuration with Enabled=false
   aws cloudfront get-distribution-config --id $DISTRIBUTION_ID | \
   jq '.DistributionConfig.Enabled = false' > temp_disabled_config.json
   
   # Update the distribution to disable it
   aws cloudfront update-distribution \
       --id $DISTRIBUTION_ID \
       --distribution-config file://<(jq '.DistributionConfig' temp_disabled_config.json) \
       --if-match $ETAG
   ```

1. Attendez que la distribution soit désactivée.

   ```
   aws cloudfront wait distribution-deployed --id $DISTRIBUTION_ID
   ```

1. Supprimez la distribution.

   ```
   # Get the current ETag
   ETAG=$(aws cloudfront get-distribution-config --id $DISTRIBUTION_ID --query 'ETag' --output text)
   
   # Delete the distribution
   aws cloudfront delete-distribution --id $DISTRIBUTION_ID --if-match $ETAG
   ```

**Pour supprimer un compartiment S3 (AWS CLI)**
+ Supprimez le compartiment S3 et son contenu. Remplacez le nom de compartiment utilisé dans l’exemple par le vôtre.

  ```
  # Delete the bucket contents
  aws s3 rm s3://amzn-s3-demo-bucket --recursive
  
  # Delete the bucket
  aws s3 rb s3://amzn-s3-demo-bucket
  ```

Pour nettoyer les fichiers locaux créés pour ce didacticiel, exécutez les commandes suivantes :

```
# Clean up local files
rm -f distribution-config.json bucket-policy.json temp_disabled_config.json
rm -rf ~/cloudfront-demo
```

Vous pouvez éventuellement supprimer l’OAC que vous avez créé pour ce didacticiel.

```
# Get the OAC ETag
OAC_ETAG=$(aws cloudfront get-origin-access-control --id $OAC_ID --query 'ETag' --output text)

# Delete the OAC
aws cloudfront delete-origin-access-control --id $OAC_ID --if-match $OAC_ETAG
```

# Mise en route avec un site web statique sécurisé
<a name="getting-started-secure-static-website-cloudformation-template"></a>

Vous pouvez commencer à utiliser Amazon CloudFront en utilisant la solution décrite dans cette rubrique pour créer un site Web statique sécurisé pour votre nom de domaine. Un *site Web statique* utilise uniquement des fichiers statiques, tels que du HTML, du CSS, JavaScript des images et des vidéos, et n'a pas besoin de serveurs ou de traitement côté serveur. Avec cette solution, votre site web bénéficie des avantages suivants :
+ **Utilise le stockage durable d'[Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/dev/Welcome.html)** – Cette solution crée un compartiment Amazon S3 pour héberger le contenu de votre site web statique. Pour mettre à jour votre site web, il vous suffit de charger vos nouveaux fichiers dans le compartiment S3.
+ **Accéléré par le réseau de diffusion de CloudFront contenu Amazon** — Cette solution crée une CloudFront distribution pour diffuser votre site Web aux visiteurs avec une faible latence. La distribution est configurée avec le [contrôle d'accès à l'origine](private-content-restricting-access-to-s3.md) (OAC) pour garantir que le site Web est accessible uniquement via S3 CloudFront, et non directement depuis S3.
+ **Est sécurisé par HTTPS et des en-têtes de sécurité** : cette solution crée un SSL/TLS certificat dans [AWS Certificate Manager (ACM)](https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html) et l'attache à la CloudFront distribution. Ce certificat permet à la distribution de diffuser le site web de votre domaine en toute sécurité avec HTTPS.
+ **Est configurée et déployée avec [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)**: cette solution utilise un CloudFormation modèle pour configurer tous les composants, afin que vous puissiez vous concentrer davantage sur le contenu de votre site Web et moins sur la configuration des composants.

Cette solution est open source sur GitHub. Pour afficher le code, envoyer une demande d'extraction ou ouvrir un problème, accédez à [https://github.com/aws-samples/amazon-cloudfront-secure-static-site](https://github.com/aws-samples/amazon-cloudfront-secure-static-site).

**Topics**
+ [

## Présentation de la solution
](#cloudformation-website-overview)
+ [

## Déploiement de la solution
](#deploy-secure-static-website-cloudformation)

## Présentation de la solution
<a name="cloudformation-website-overview"></a>

Le diagramme suivant présente un aperçu du fonctionnement de cette solution de site web statique :

![\[Schéma d'ensemble d'un site Web statique sécurisé avec CloudFront\]](http://docs.aws.amazon.com/fr_fr/AmazonCloudFront/latest/DeveloperGuide/images/cloudfront-secure-static-website-overview-github.png)


1. L'utilisateur demande le site web à l'adresse www.example.com.

1. Si l'objet demandé est mis en cache, CloudFront renvoie l'objet de son cache au visualiseur.

1. Si l'objet n'est pas dans le CloudFront cache, CloudFront demande l'objet depuis l'origine (un compartiment S3).

1. S3 renvoie l'objet à CloudFront.

1. CloudFront met en cache l'objet.

1. Les objets sont renvoyés à l’utilisateur. Les demandes suivantes pour l'objet qui arrivent au même emplacement CloudFront périphérique sont traitées à partir du CloudFront cache.

## Déploiement de la solution
<a name="deploy-secure-static-website-cloudformation"></a>

Pour déployer cette solution de site web statique sécurisé, vous pouvez choisir l'une des options suivantes :
+ Utilisez la CloudFormation console pour déployer la solution avec le contenu par défaut, puis téléchargez le contenu de votre site Web sur Amazon S3.
+ Clonez la solution sur votre ordinateur pour ajouter le contenu de votre site web. Puis, déployez la solution avec l’ AWS Command Line Interface (AWS CLI).

**Note**  
Vous devez utiliser la région USA Est (Virginie du Nord) pour déployer le CloudFormation modèle. 

**Topics**
+ [

### Conditions préalables
](#deploy-website-cloudformation-prerequisites)
+ [

### Utiliser la CloudFormation console
](#deploy-website-cloudformation-console)
+ [

### Clonage local de la solution
](#deploy-website-cloudformation-clone)
+ [

### Recherche des journaux d'accès
](#deploy-website-cloudformation-logs)

### Conditions préalables
<a name="deploy-website-cloudformation-prerequisites"></a>

Pour utiliser cette solution, les prérequis suivant sont nécessaires :
+ Un nom de domaine enregistré, par exemple example.com, pointant vers une zone hébergée Amazon Route 53. La zone hébergée doit se trouver dans le même Compte AWS où vous déployez cette solution. Si vous n'avez pas de nom de domaine enregistré, vous pouvez en [enregistrer un avec Route 53](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/registrar.html). Si vous possédez un nom de domaine enregistré, mais qu'il ne pointe pas vers une zone hébergée Route 53, [configurez Route 53 en tant que votre service DNS](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-configuring.html).
+ Gestion des identités et des accès AWS Autorisations (IAM) pour lancer des CloudFormation modèles qui créent des rôles IAM, et autorisations pour créer toutes les AWS ressources de la solution. Pour plus d’informations, consultez [Contrôle de l’accès à l’aide de Gestion des identités et des accès AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html) dans le *Guide de l’utilisateur AWS CloudFormation *.

Vous assumez les coûts encourus pour utiliser cette solution. Pour plus d'informations sur les coûts, consultez [les pages de tarification correspondantes Service AWS](https://aws.amazon.com/pricing/).

### Utiliser la CloudFormation console
<a name="deploy-website-cloudformation-console"></a>

**Pour déployer à l'aide de la CloudFormation console**

1. [Lancez cette solution dans la CloudFormation console](https://console.aws.amazon.com/cloudformation/home?region=us-east-1#/stacks/new?stackName=amazon-cloudfront-secure-static-site-templates-main&templateURL=https://s3.amazonaws.com/solution-builders-us-east-1/amazon-cloudfront-secure-static-site/latest/main.yaml). Si nécessaire, connectez-vous à votre Compte AWS.

1. L'assistant de **création d'une pile** s'ouvre dans la CloudFormation console, avec des champs préremplis qui spécifient le CloudFormation modèle de cette solution.

   Au bas de la page, sélectionnez **Next**.

1. Dans la page **Spécifier les détails de la pile**, saisissez des valeurs pour les champs suivants :
   + **SubDomain**— Entrez le sous-domaine à utiliser pour votre site Web. Par exemple, si le sous-domaine est *www*, votre site Web est disponible à l'adresse *www.example.com.* (remplacez exemple.com par votre nom de domaine, comme expliqué dans la bullet suivante.)
   + **DomainName**— Entrez votre nom de domaine, tel que*example.com*. Ce domaine doit pointer vers une zone hébergée Route 53.
   + **HostedZoneId**— L'ID de zone hébergée Route 53 de votre nom de domaine.
   + **CreateApex**— (Facultatif) Créez un alias pour le domaine apex (exemple.com) dans votre CloudFront configuration.

1. Lorsque vous avez terminé, choisissez **Next (Suivant)**.

1. (Facultatif) Dans la page **Configure stack options (Configurer les options de pile)**, [ajoutez des balises et d'autres options de pile](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-add-tags.html).

1. Lorsque vous avez terminé, choisissez **Next (Suivant)**.

1. Dans la page **Vérification**, faites défiler jusqu'au bas de la page, puis sélectionnez les deux cases de la section **Capacités**. Ces fonctionnalités permettent CloudFormation de créer un rôle IAM qui permet d'accéder aux ressources de la pile et de nommer les ressources de manière dynamique.

1. Choisissez **Créer une pile**.

1. Attendez la fin de la création de la pile. La pile crée des piles imbriquées, ce qui peut prendre plusieurs minutes. Une fois achevée, l'**État** passe à **CREATE\$1COMPLETE**.

   Lorsque le statut est **CREATE\$1COMPLETE**, accédez à https ://*www.example.com*pour consulter votre site Web (remplacez www.exemple.com par le sous-domaine et le nom de domaine que vous avez spécifiés à l'étape 3). Vous devriez voir le contenu par défaut du site web :  
![\[Contenu par défaut du site web statique de cette solution. Il déclare : « Je suis un site web statique ! »\]](http://docs.aws.amazon.com/fr_fr/AmazonCloudFront/latest/DeveloperGuide/images/cloudfront-secure-static-website-content.png)

**Pour remplacer le contenu par défaut du site web par le vôtre**

1. Ouvrez la console Amazon S3 à l'adresse [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Choisissez le bucket dont le nom commence par **amazon-cloudfront-secure-static-site-s3bucketroot** -.
**Note**  
Assurez-vous de choisir le compartiment dont le nom contient **s3bucketroot** et pas **s3bucketlogs**. Le compartiment dont le nom inclut **s3bucketroot** contient le contenu du site web. Celui dont le nom inclut **s3bucketlogs** ne contient que des fichiers journaux.

1. Supprimez le contenu par défaut du site web, puis chargez le vôtre.
**Note**  
Si vous avez consulté votre site Web avec le contenu par défaut de cette solution, il est probable qu'une partie du contenu par défaut soit mise en cache dans un emplacement CloudFront périphérique. Pour vous assurer que les visiteurs voient le contenu mis à jour de votre site Web, *invalidez* les fichiers pour supprimer les copies mises en cache des emplacements CloudFront périphériques. Pour de plus amples informations, veuillez consulter [Invalidation de fichiers pour supprimer du contenu](Invalidation.md).

### Clonage local de la solution
<a name="deploy-website-cloudformation-clone"></a>

**Conditions préalables**

Pour ajouter votre contenu du site web avant de déployer cette solution, vous devez empaqueter les artefacts de cette dernière localement, ce qui demande Node.js et npm. Pour plus d’informations, consultez [https://www.npmjs.com/get-npm](https://www.npmjs.com/get-npm).

**Pour ajouter votre contenu du site web et déployer la solution**

1. Clonez ou téléchargez la solution à partir de [https://github.com/aws-samples/amazon-cloudfront-secure-static-site](https://github.com/aws-samples/amazon-cloudfront-secure-static-site). Après le clonage ou le téléchargement, ouvrez une invite de commande ou un terminal et accédez au dossier `amazon-cloudfront-secure-static-site`.

1. Exécutez la commande suivante pour installer et empaqueter les artefacts de la solution :

   ```
   make package-static
   ```

1. Copiez votre contenu du site web dans le dossier `www`, en écrasant le contenu par défaut du site web.

1. Exécutez la AWS CLI commande suivante pour créer un compartiment Amazon S3 afin de stocker les artefacts de la solution. *amzn-s3-demo-bucket-for-artifacts*Remplacez-le par votre propre nom de compartiment.

   ```
   aws s3 mb s3://amzn-s3-demo-bucket-for-artifacts --region us-east-1
   ```

1. Exécutez la AWS CLI commande suivante pour empaqueter les artefacts de la solution sous forme de CloudFormation modèle. *amzn-s3-demo-bucket-for-artifacts*Remplacez-le par le nom du bucket que vous avez créé à l'étape précédente.

   ```
   aws cloudformation package \
       --region us-east-1 \ 
       --template-file templates/main.yaml \
       --s3-bucket amzn-s3-demo-bucket-for-artifacts \
       --output-template-file packaged.template
   ```

1. Exécutez la commande suivante pour déployer la solution avec CloudFormation, en remplaçant les valeurs suivantes :
   + *your-CloudFormation-stack-name*— Remplacez par le nom de la CloudFormation pile.
   + *example.com*— Remplacez-le par votre nom de domaine. Ce domaine doit pointer vers une zone hébergée Route 53 dans le même Compte AWS.
   + *www*— Remplacez par le sous-domaine à utiliser pour votre site Web. Par exemple, si le sous-domaine est *www*, votre site web est disponible à l'adresse www.exemple.com.
   + *hosted-zone-ID*— Remplacez par l'ID de zone hébergée Route 53 de votre nom de domaine.

   ```
   aws cloudformation deploy \
       --region us-east-1 \
       --stack-name your-CloudFormation-stack-name \
       --template-file packaged.template \
       --capabilities CAPABILITY_NAMED_IAM CAPABILITY_AUTO_EXPAND \
       --parameter-overrides DomainName=example.com SubDomain=www HostedZoneId=hosted-zone-ID
   ```

   1. (Facultatif) Pour déployer la pile avec un apex de domaine, exécutez plutôt la commande suivante.

     ```
     aws --region us-east-1 cloudformation deploy \
         --stack-name your-CloudFormation-stack-name \
         --template-file packaged.template \
         --capabilities CAPABILITY_NAMED_IAM CAPABILITY_AUTO_EXPAND \
         --parameter-overrides  DomainName=example.com SubDomain=www HostedZoneId=hosted-zone-ID CreateApex=yes
     ```

1. Attendez la fin de la création de la CloudFormation pile. La pile crée des piles imbriquées, ce qui peut prendre plusieurs minutes. Une fois achevée, l'**État** passe à **CREATE\$1COMPLETE**.

   Lorsque le statut passe à **CREATE\$1COMPLETE**, accédez https://www.example.com à pour consulter votre site Web (remplacez www.example.com par le sous-domaine et le nom de domaine que vous avez spécifiés à l'étape précédente). Vous devriez voir le contenu de votre site web.

### Recherche des journaux d'accès
<a name="deploy-website-cloudformation-logs"></a>

Cette solution active les [journaux d'accès](AccessLogs.md) pour la distribution CloudFront. Procédez comme suit pour localiser les journaux d'accès de la distribution.

**Pour localiser les journaux d'accès de la distribution**

1. Ouvrez la console Amazon S3 à l'adresse [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Choisissez le bucket dont le nom commence par **amazon-cloudfront-secure-static-site-s3bucketlogs** -.
**Note**  
Assurez-vous de choisir le compartiment dont le nom contient **s3bucketlogs** et pas **s3bucketroot**. Le compartiment dont le nom inclut **s3bucketlogs** contient des fichiers journaux. Celui dont le nom inclut **s3bucketroot** contient le contenu du site web.

1. Le dossier nommé **cdn** contient les journaux CloudFront d'accès.