Hi Kai,
- Access control
This is imho included in AG itself already. I do se a problem when you hand over superadmin control to your user (foreign admin): If they mes up settings - who is to blame? You might be able to develop some "regular"-admin-table (or custom page) where you enable the "admin" to do certain things but not be super admin.
- with two factor authentication
Check - can be done quite easily, but for GDPR I am not sure if this is needed (depending on the application you are creating). Nevertheless, see my footer. It's easy to implement and could even be limited to certain userroups/enforced.
- Assignment of different authorizations
Not sure what you mean by that. Maybe the custom "Admin"-control I was writing about above.
- Logging
Check - can be done quite easily, see my footer to the Audit-Log. Audit log does work for AG 5.92 (at least in my tests).
- Archiving and deletion functions (automatic data deletion)
You should be able to implement such functions. Be sure to keep relevant data
- Encryption methods
My first comment on this thread. The biggest problem I see is, that they key must be kept secret (see below).
- data backup
This can be done quite easy. See my footer. I have implemented a database and file backup at a customer using the free FreeFileSync (
https://freefilesync.org/ ). A cron job runs my dbbackup script every hour, creating 24x7 backups (this can be changed easily). Then the FreeFileSync comes into place. This is run from some Windows PC at a regular basis and connects to the webpage using SFTP. It created an incremental backup (while keeping old files in a different folder with timestamps). The backup process does not take longer than one or two minutes, sometimes even only seconds.
- Pseudonymization functions
- Anonymization functions
Well, goes hand in hand with archiving. You might need to setup a table that holds table names with field names that need to be anonymized/pseudonymized. One could build a custom page where the admin can choose which data to clear (anonymize) or let the user kill his account and do so automatically.
Concerning general security
Depending on the application it might be helpful to make access from the outside (=internet) impossible and let users access the application only through a VPN.
As I have written before, there are no secure applications on the web. Just those who are uninteresing to be hacked or those where errors/security holes have not been found yet. Thus I suggest making it very clear to the people using your application, that you are doing your best to ensure data protection, but you can not be hold liable to data loss and/or data breach.
This means you will need to protect your downloads/uploads directory (usually /images).
This also means suggesting, or even forcing users to use strong passwords (and two factor authentication). But ... secure passwords are not (anymore) the gibberisch like
Ag,570!_aso - but long passwords. Probably best a combination but this means educating users about passwords and their use.
I also suggest you take a look at some more links in my footer like Custom-Value-Based-Permissions and Field-Permissions. Those enable you to restrict access/edit base on more criteria than currently available in AG itself.
Almost forgot: As you are dealing with a very complex ecosystem of webserver, database server, firewalls etc. all such things you usually can not control, this is another point why you should educate your target user (admin) that you can not guarantee safety: If the webserver is wide open - what do you want to do about this? At this point I would strongly advise against setting up a sever yourself. We are (most likely) not server admins and there are many, many things to take into account when trying to secure a server. Once you/customer decides to use webhosting provided by some company, you have the data somewhere else. Someone else has to make sure updates are done and your database will most likely not be on premise anymore ... getting us back to the problem where to securely store encryption keys.
Last but not least, concerning your dealings with GDPR: I think it's probably important to see what your application / customer want's to do ... and if (some/what) GDPR (parts) actually apply or need to be applied.
Well, enough for now

Olaf