I am using restic for backups. I would like to use a non-root user to backup my docker volumes. As the files in the volumes have very different access rights and groups, accessing them is difficult without root rights.
Chowning the files doesn’t help sustainably, as new files are created with a different group again.
What recommendation do you have to smoothly backup files from the docker volumes?
Tags #restic #backup #docker
You could just have a dedicated backup user that is in all the groups of you docker volumes.
This is a common strategy in enterprise, they’re called Service Accounts.
Rather than let all services/apps run under one admin account (windows) or a single account with root (*Nix), an account is created for each service/app, with only the minimum necessary permissions. These accounts are also limited, sometimes they’re local accounts on a given server (rather than a domain/directory account), usually with no login capability (so couldn’t run in a user context).
This way you prevent a 3rd party service/app from having change access to other services/apps (in Windows services run as system by default, a terrible security hole). It also prevents a rogue admin from using such access to change other things (or if the service account credentials were stolen).
This might be a good idea. It would only work for files that allow read access for the group, but that should be fine
Add the DAC_READ_SEARCH capability to the restic binary (using setcap).This is what allows to read all files. Obviously this means being able to read all, all, files including shadow etc.
You didn’t mention how big those volumes are and how frequently the data changes.
Assuming it’s not that much data:
- use
tar
to archive each volume first, while using proper options to preserve permissions and whatever else is important for your usecase - use restic to backup those archives
- use a proper pruning strategy to not let your backups get too big:
- I’m not that familiar with
restic
, but maybe you can backup those archives separately and apply a more aggressive pruning strategy just for them - simply might be needed, cause deduplication (AFAIK) might not be that great with backing up archives
- but maybe if the volume data and the resulting archive doesn’t change that often, deduplication would be sufficient even with a not so aggressive pruning strategy
- I’m not that familiar with
Restic uses smart Delta backups, creating a tar before the restic process would defeat the purpose. The permission issue is the same, as I need to have access to the Files either way.
- use