Wordpress W3TC plugin.

Permisos de Amazon IAM para usar S3 como CDN en el ‘plugin’ W3 Total Cache de WordPress

Si estás usando S3 como CDN, necesitarás dar al plugin W3TC de WordPress acceso a tu cuenta AWS para que pueda subir archivos a S3. La forma más inteligente y segura de hacer esto es crear un nuevo usuario que tenga acceso únicamente para que W3TC haga su trabajo. ¿Para qué quieres guardar en tu instalación de WordPress las credenciales de acceso a toda tu cuenta de AWS? Si esa información cayese en manos inapropiadas, el daño que podrían causarte sería dramático. Si sólo se tiene acceso a un bucket concreto, el daño sería menor.

El siguiente es un ejemplo de la política de permisos adecuada para usar S3 como CDN en W3TC. Lamentablemente este plugin requiere acceder a listado de todos tus buckets, pero el resto de permisos (leer/escribir/borrar) pueden limitarse al bucket específico con el que vamos a trabajar.

{
  "Version": "2012-10-17",
  "Statement": [{
    "Effect": "Allow",
    "Action": "s3:*",
    "Resource": [
      "arn:aws:s3:::nombredetubucket",
      "arn:aws:s3:::nombredetubucket/*"
    ]},
    {
      "Effect": "Allow",
      "Action": [
        "s3:ListAllMyBuckets"
      ],
      "Resource": "arn:aws:s3:::*"
    }]
}

Si los permisos no son los correctos, podrás ver errores de “permiso denegado” cuando W3TC trata de ejecutar las funciones S3::listBucket y S3::putObject.

Fuentes: Documentación de AWS y Cómo dar acceso sólo a un ‘bucket’ concreto de S3 con Amazon AIM.

Miguel Menéndez

Administrador de sistemas, auditor de redes y seguridad.