Cet article fait suite à l’article de la semaine passée où j’évoquais la façon de restaurer un site après un crash sans sauvegarde. Maintenant, que votre site est à nouveau en ligne, vous avez sûrement envie de le sauvegarder de façon déportée pour éviter de nouvelles mésaventures. Je vous explique donc comment sauvegarder votre site WordPress dans le Cloud via le service AWS S3 d’Amazon. Ce tutoriel fait partie des actualités webmarketing.

Pourquoi sauvegarder dans le Cloud?

Bien souvent, par fainéantise ou méconnaissance, on se contente de sauvegarder ses données localement sur le serveur. C’est suffisant pour palier un problème suite à une migration ou une mise à jour malencontreuse d’une page. Mais c’est également un risque si vous n’avez que des sauvegardes locales au serveur car le serveur peut connaître un problème physique ou être hacké ce qui représenterait un risque de perte des données.

La solution est donc de déporter les sauvegardes dans le Cloud. Et pour cet article, j’ai choisi le service cloud d’Amazon et plus particulièrement la fonctionnalité S3. Cette fonctionnalité vous permet de bénéficier d’un espace de stockage flexible en ligne. Cet espace est :

  • sécurisé : accès avec deux facteurs d’authentification,
  • étanche : possibilité de sauvegarder plusieurs sites avec une bonne étanchéité entre les containers,
  • fiable : Amazon dispose d’une bonne infrastructure,
  • crypté : les données peuvent être cryptées par Amazon (ou localement avant l’envoi chez Amazon),
  • flexible : on ne paye que ce qu’on utilise, ni plus ni moins.

Quels sont les pré-requis?

Pour sauvegarder vos données dans le cloud, il suffit d’installer le plugin UpdraftPlus sur votre site WordPress. Ensuite, vous aurez uniquement à entrer les codes de votre utilisateur IAM Amazon.

UpdraftPlus est bien configuré par défaut. Il ne sauvegarde pas tout le site mais uniquement les données irrécupérables comme les thèmes, les extensions et les médias. Il ne sert à rien de sauvegarde WordPress de façon complète car vous pouvez facilement le récupérer. Le seul gain est de pouvoir remettre en ligne son site un peu plus rapidement mais ce point est discutable.

La configuration du service S3 d’Amazon AWS

Cette partie est probablement la plus complexe à maitriser. Il m’a fallu des heures pour ajuster correctement les différents paramètres de configuration afin d’obtenir un niveau de sécurité des plus élevés. Voici le workflow à suivre.

Configurer le compartiment (bucket)

Voici les champs à entrer :

  • Nom du compartiment : je mets le nom de domaine mais on peut mettre ce qu’on veut.
  • Région AWS : sélectionnez une région près de votre hébergement. Sachez que certaines régions ont un coût plus élevé que d’autres.
  • Bloquer tous les accès publics : cochez la case puisque que personne ne doit pouvoir accéder à vos backups.
  • Gestion des versions du compartiment : je désactive mais cela peut-être utile si vous voulez faire du versioning.
  • Chiffrement par défaut : j’active la Clé Amazon S3 (SSE-S3).

Voici l’URL pour créer un bucket sur eu-west-1 : https://s3.console.aws.amazon.com/s3/bucket/create?region=eu-west-1

Configurer une stratégie

Seconde étape, nous allons créer une stratégie pour restreindre l’accès au compartiment. On se rend sur cette page : https://console.aws.amazon.com/iam/home?region=eu-west-1#/policies

Cliquez sur « créer une stratégie » puis sur l’onglet JSON et copiez/collez la stratégie ci-dessous :

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "s3:ListBucketMultipartUploads",
                "s3:ListBucket",
                "s3:GetBucketLocation"
            ],
            "Resource": "arn:aws:s3:::nom_du_compartiment",
            "Condition": {
                "IpAddress": {
                    "aws:SourceIp": "IP_du_serveur/32"
                }
            }
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObjectAcl",
                "s3:GetObject",
                "s3:AbortMultipartUpload",
                "s3:DeleteObjectVersion",
                "s3:PutObjectVersionAcl",
                "s3:GetObjectVersionAcl",
                "s3:DeleteObject",
                "s3:PutObjectAcl",
                "s3:GetObjectVersion"
            ],
            "Resource": "arn:aws:s3:::nom_du_compartiment/*",
            "Condition": {
                "IpAddress": {
                    "aws:SourceIp": "IP_du_serveur/32"
                }
            }
        },
        {
            "Sid": "VisualEditor2",
            "Effect": "Allow",
            "Action": "s3:ListAllMyBuckets",
            "Resource": "*",
            "Condition": {
                "IpAddress": {
                    "aws:SourceIp": "IP_du_serveur/32"
                }
            }
        }
    ]
}

Dans le code ci-dessus, remplacez nom_du_compartiment par le nom du compartiment créé précédemment et IP_du_serveur par l’adresse IP de votre serveur web. Attention, ce n’est pas forcément l’adresse IP du site mais bien l’adresse IP utilisée par le serveur quand il envoie des informations (sens sortant). Renseignez-vous auprès de votre hébergeur si vous avez un doute. Un Ping sur votre nom de domaine ne vous donnera pas forcément la bonne information.

Qu’est-ce que ce code fait? Il restreint la connexion au compartiment spécifié. La connexion ne peut se faire que depuis l’adresse IP indiquée. Cela veut dire qu’un hacker qui aurait dérobé vos codes API AWS ne pourrait pas se connecter au compartiment, à moins d’avoir injecté un script sur votre serveur pour réaliser la connexion depuis le serveur.

Configurer un utilisateur IAM

L’utilisateur IAM se crée ici : https://console.aws.amazon.com/iam/home?region=eu-west-1#/users

On clique sur « ajouter un utilisateur ». On donne un nom à l’utilisateur (par exemple le nom de domaine du site à backuper). L’accès se fera par l’API donc on coche « Accès par programmation ». Ensuite, on sélectionne « Attacher directement les stratégies existantes » et on attache la stratégie créée précédemment. On récupère les paramètres fournis à la dernière étape pour les entrer dans l’écran de configuration d’UpdraftPlus ici : url_du_site/wp-admin/options-general.php?page=updraftplus.

UpdraftPlus
UpdraftPlus

Ensuite, on clique sur « Test des paramètres S3 » et là normalement, si vous avez bien suivi les étapes une par une dans le bon ordre, il va vous indiquer que cela fonctionne correctement. Vous pourrez lancer un backup directement pour vérifier. L’affichage dans le compartiment sera disponible via la Console AWS dès la fin du processus de sauvegarde.

Quelques remarques :

  • Le codage de la stratégie correspond à ce besoin. Pour un autre besoin, il faudra un codage différent. De plus, ce codage peut ne plus fonctionner à un moment si Amazon change ses méthodes donc le code est fourni sans aucune garantie.
  • Si votre serveur change d’adresse IP, il faudra mettre à jour la stratégie car sinon, la connexion sera rejetée par Amazon.
  • Pour des raisons de sécurité, il est conseillé d’avoir un utilisateur, une stratégie et un compartiment par site à backuper. Ainsi, si votre site se fait hacker, le hacker n’aura pas accès aux autres compartiments. Cependant, si ce n’est pas un risque pour vous, vous pouvez tout à fait utiliser un seul compartiment et un seul utilisateur IAM.

Quel est le coût d’une sauvegarde dans le Cloud?

Le coût du service S3 d’Amazon est très bas. Amazon vous facture la quantité de données stockées (entre 0.020 et 0.025 $ par Go par mois) ainsi que les transferts sortants (pour récupérer vos données). Si vous n’avez pas besoin d’accéder souvent à vos données, vous pouvez même partir sur du stockage long terme de type S3 Glacier où les données seront moins rapidement accessibles mais le coût de stockage sera encore plus réduit. Bref, dans tous les cas, pour un site, cela vous coûtera moins d’un euro par mois à moins que vous n’ayez une base de données énorme et beaucoup de photos.

Amazon propose un service gratuit de 5 Go pendant 12 mois ce qui vous permet de tester le service facilement pour voir si cela répond à vos besoins.

Ambre
Ambre

Trobairitz du SEO depuis 2005, contribue à la création de nouveaux royaumes au sein d’une joyeuse troupe d’expertes en marketing digital.