Environ 10 minutes

Utiliser Aktar avec Amazon S3

Amazon S3 est le stockage objet historique et fonctionne avec le préréglage Amazon S3 d'Aktar. Le seul point délicat est l'accès public : S3 le bloque par défaut, vous devez donc soit ajouter une stratégie de bucket autorisant la lecture publique, soit placer CloudFront devant le bucket.

Ce qu'il vous faut

  • Un compte AWS
  • L'autorisation de créer des buckets S3 et des utilisateurs IAM
  • Aktar installé sur votre Mac

Pas à pas

  1. 1

    Créer un bucket

    Dans la console S3, cliquez sur Create bucket, choisissez un nom unique au niveau mondial et la région la plus proche de vous, par exemple eu-central-1. Vous pouvez garder la propriété des objets par défaut « Bucket owner enforced » : Aktar n'utilise pas les ACL.

  2. 2

    Autoriser la lecture publique

    Option A, stratégie de bucket : dans l'onglet Permissions du bucket, désactivez les réglages « Block public access » qui bloquent les stratégies de bucket publiques, puis ajoutez cette stratégie de bucket (remplacez YOUR-BUCKET) :

    {
      "Version": "2012-10-17",
      "Statement": [{
        "Sid": "PublicRead",
        "Effect": "Allow",
        "Principal": "*",
        "Action": "s3:GetObject",
        "Resource": "arn:aws:s3:::YOUR-BUCKET/*"
      }]
    }

    Option B, CloudFront : gardez le bucket privé et créez une distribution CloudFront avec le bucket comme origine (en utilisant Origin Access Control). Vous obtenez ainsi le HTTPS sur un domaine personnalisé et la mise en cache.

  3. 3

    Créer un utilisateur IAM pour Aktar

    Dans IAM, créez un utilisateur et associez-lui une stratégie qui n'autorise que ce dont Aktar a besoin sur ce bucket :

    {
      "Version": "2012-10-17",
      "Statement": [
        { "Effect": "Allow", "Action": "s3:ListBucket",
          "Resource": "arn:aws:s3:::YOUR-BUCKET" },
        { "Effect": "Allow",
          "Action": ["s3:PutObject", "s3:GetObject", "s3:DeleteObject"],
          "Resource": "arn:aws:s3:::YOUR-BUCKET/*" }
      ]
    }

    Créez ensuite une clé d'accès pour cet utilisateur et copiez l'Access Key ID et la Secret Access Key.

  4. 4

    Ajouter la destination dans Aktar

    Dans Settings → Destinations → Add Destination, choisissez Amazon S3 et saisissez les valeurs ci-dessous. L'endpoint et la région doivent correspondre à la région du bucket.

  5. 5

    Tester et enregistrer

    Cliquez sur Test Connection pour vérifier que le bucket est accessible en écriture et que l'URL publique sert bien les fichiers, puis sur Save.

Réglages dans Aktar

Saisissez ces valeurs dans Settings → Destinations → Add Destination. Les noms des champs correspondent à ceux de l'app.

ChampExemple de valeur
ProviderAmazon S3
Endpointhttps://s3.eu-central-1.amazonaws.comUtilisez la région de votre bucket.
Regioneu-central-1
Access Key IDAKIA…Issue de l'utilisateur IAM.
Secret Access Key••••••••
Bucketyour-bucket
Public Base URLyour-bucket.s3.eu-central-1.amazonaws.comOu votre domaine CloudFront.

Astuces

  • Privilégiez CloudFront avec un domaine personnalisé si vous partagez des liens publiquement : vous profitez de la mise en cache et pouvez garder le bucket lui-même privé.
  • Limitez la stratégie IAM à un seul bucket. Aktar n'a jamais besoin d'autorisations sur tout le compte.
  • Choisissez une région proche de vous pour des envois plus rapides, et proche de votre audience si vous n'utilisez pas de CDN.

Dépannage

Test Connection signale une erreur de région ou une redirection

L'endpoint et la région doivent correspondre à la région dans laquelle le bucket a été créé, par exemple https://s3.eu-central-1.amazonaws.com avec eu-central-1.

Les envois échouent avec Access Denied

L'utilisateur IAM a besoin de s3:PutObject sur YOUR-BUCKET/* et de s3:ListBucket sur le bucket lui-même.

Les liens renvoient une erreur 403

La stratégie de bucket est absente ou encore bloquée par « Block public access », ou bien CloudFront ne peut pas lire le bucket. Voir erreurs Access Denied.

Toujours bloqué ?Parcourez la FAQ ou posez votre question sur GitHub.