Configuración de Restic en S3

Ei, un mini-manual para realizar la configuracion de restic en Linux sobre un Bucket S3

  1. Lo primero instalar Restic
     apt-get install restic
  1. Lo siguiente será configurarnos las variables para la posterior conexión al Bucket, para ello editamos nuestro bashrc del perfil de usuario, desde donde vamos a lanzar la tarea.

**Nombre de la región donde esta ubicado el bucket de S3 («Endpoint»)

RESTIC_REPOSITORY=s3:https://s3.eu-west-1.amazonaws.com/XXXXXXXXXXXXXXXXX

**Nombre de nuestro bucket

AWS_ACCESS_KEY_ID=AKKKKKKKKKKKKK1

**Usuario de acceso con privilegios de acceso sobre ese bucket

AWS_SECRET_ACCESS_KEY=A1111111111111111111111111111

**Clave de acceso del usuario

RESTIC_PASSWORD=11111111111111111111111111111111

**Clave de cifrado de la copia de RESTIC, !GUARDALA BIEN¡ JEJE, sino estas jodido 🙂

  1. Una vez editado el fichero, le pegamos una actualización para que pille los nuevos cambios.
source .bashrc

  1. Ahora tocara inicializar el Bucket, «Este proceso, lo que hace es generar el bucket dentro de S3», para ello lo que recomiendo es que en el usuario que nos generemos para el Restic, tenga evidentemente privilegios de creación, lectura, etc pero solo sobre este Bucket!!!

Ejemplo de la política, aquí cambiar únicamente el acceso nombre del bucket

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "S3BucketCreate",
            "Effect": "Allow",
            "Action": [
                "s3:CreateBucket"
            ],
            "Resource": "*"
        },
        {
            "Sid": "S3BucketAccess",
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:GetBucketLocation",
                "s3:GetObject",
                "s3:PutObject",
                "s3:DeleteObject"
            ],
            "Resource": [
                "arn:aws:s3:::bucket-test",
                "arn:aws:s3:::bucket-test/*"
            ]
        }
    ]
}

O la otra opción es generar nosotros el bucket y solo darle permisos, sin mas


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

Una vez tengamos definida la política y asignada al usuario dentro del IAM, inicializamos el bucket con Restic.

restic init

**Lanzar un backup de prueba..

restic backup -q /home/test/datos

Comandos y configuraciones útiles en Restic

Definir CRON (Todos los días a las 22.00, dejando únicamente 2 snaps)

0 22 * * * restic backup -q /home/test/datos; restic forget  -q --keep-last 2 --prune

Listar Snapshots

restic snapshots -r s3:s3.amazonaws.com/bucket    
                                              

Restauracion de directorio

restic restore -r s3:s3.amazonaws.com/bucket --target /tmp/restored

Y con esto ya estaría para empezar 😉 , iré añadiendo mas

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>