SECDATA
See also
Official service page: Secure operating environment for sensitive data
Official user guide: User guide to secure operating environment for health and social data
Request / admin contact: secdata@aalto.fi
Container background: CodeRefinery: computational environments and Singularity Containers
SECDATA is Aalto’s dedicated secure computing environment for secret research data (the highest Aalto classification), including secondary-use health and social data. It is a virtual Ubuntu desktop with a network filesystem that is only available from that system. GPUs are available. Most software is brought in as Singularity/Apptainer containers.
Legal requirements mean that data transfer and software installation are done only by admins. Structure your work so that you transfer as little as possible.
To request an environment, write to secdata@aalto.fi. Aalto Scientific Computing (Data Agents and AaltoRSE) can help you decide whether you need SECDATA, use the environment, and build containers. Come to the SciComp garage with your goal and links to the software instructions you want to follow — we can build the container with you, or even build it for you.
When to use SECDATA
Use SECDATA when the data is actually secret: required by legislation (for example secondary-use health data with a Findata permit), a DPIA that calls for strong isolation, or another high-risk case where tightly controlled transfers are desirable.
It is not a good fit when:
Ordinary confidential data is enough (this is most research data, including typical personal data). Confidential systems used properly — Teamwork, department project directories, Triton, Aalto managed workstations — are the right default. See Confidential data handling and Responsible Computational Research.
SECWORK or encrypted files on Teamwork already cover the need.
You are generating a lot of new data (getting results out is slow, because admins must move every transfer).
You need Windows. SECDATA is Ubuntu only.
Sensitive content is not asked for or expected, but might come up (for example qualitative interviews on a non-health topic). Clean or code the data at the start; leftover raw material can sit in SECWORK, or be encrypted on Teamwork.
You could pseudonymise or encrypt a single file as soon as you receive it, and then work on a confidential system.
Data management plans: mention SECDATA only in plans that will really use it (health/secondary-use data, or other data classified secret). Do not list it “just in case” for projects where sensitive topics might appear but are not the focus — SECWORK is more appropriate, and the transfer process is too heavy for that.
Over-classifying data is common and costly. Researchers usually have a hunch about how likely a study is to contain secret data. If you are unsure, talk to a Data Agent or come to the garage before requesting SECDATA.
How the environment works
Each project gets a dedicated virtual desktop (Ubuntu Linux), accessed with VMware Horizon at https://finvdi.aalto.fi (from the Aalto VPN). Multi-factor authentication is required. Access is restricted to Finland by default. Collaboration partners need an Aalto visitor account.
Inside the instance, work happens on a network filesystem that exists only there. Typical layout after admins have moved files in:
Source data (read-only):
/nfs/data(sometimes/nfs/data/source)Incoming code / containers:
/nfs/incomingYour working area:
/nfs/home/username
There is no public internet from the desktop. You cannot install
packages with apt, pip, or conda on the live system in the
usual way. Put the software in a container before it is uploaded.
SECDATA is a Valvira-registered environment for secondary use of health and social data (see the Valvira registry). For Aalto researchers it is one of the few such environments with GPUs (Findata Kapseli and CSC SD Desktop do not provide them). Findata’s primary environment is still Kapseli: using SECDATA for Findata-permit work needs Findata’s approval and a justification in the permit application.
Who does what
Aalto ITS does the technical administration: monitoring, accounts, hardware, and every data transfer in or out.
You plan the analysis, prepare software as containers, work inside the VDI, and ask ITS when something must be moved.
Data Agents and AaltoRSE help with: is SECDATA actually needed; how to structure the project; building and testing Singularity containers; Jupyter / Python / R workflows.
Develop and test methods outside SECDATA with non-secret test data. Only move into SECDATA once the tools and scripts work.
Containers (how software gets in)
A container is a whole computer in one file, so it can be copied into
SECDATA as a single transfer. You write a recipe (a Singularity /
Apptainer definition file) that describes the operating system and
packages. Building that recipe produces a .sif image. That image
is what admins move in.
This is the practical way to get Python, R, Jupyter, and most research software into SECDATA. Some packages may already be on the Ubuntu desktop, but do not rely on installing more yourself.
Background:
Practical workflow
The steps below follow a typical Python / Jupyter analysis. Replace names (instance, project folder, packages) with your own. Official limits still apply: only admins move data in or out.
A. Prepare the container outside SECDATA
Work on a normal Aalto Linux workstation or Triton, with non-secret test data.
Create a Conda environment file environment.yml. List the
packages you actually need; this is only a sketch:
name: myproject
channels:
- conda-forge
dependencies:
- python=3.11
- jupyterlab
- numpy
- pandas
- matplotlib
- pip
- pip:
- pydeface
Create a Singularity definition file conda.def:
Bootstrap: docker
From: continuumio/miniconda3:4.10.3-alpine
%files
environment.yml
%post
# https://github.com/ContinuumIO/docker-images/issues/151
mkdir /opt/conda/pkgs
touch /opt/conda/pkgs/urls.txt
ENV_NAME=$(head -1 environment.yml | cut -d' ' -f2)
conda env create -f environment.yml -p /opt/conda/envs/$ENV_NAME
conda clean --all
%environment
export LC_ALL=C
%runscript
exec "$@"
Build the image (root is often required; Apptainer can also build without root in some setups):
$ sudo singularity build conda.sif conda.def
Test the image locally with dummy data until Jupyter and your scripts
run. Then put the image, code, and only the files that must go in
into one folder and upload them to the SECDATA incoming share (ITS
will tell you the instance name, here INSTANCE). Connect and
upload from the folder that contains your files:
$ cd FOLDER
$ smbclient -k //teamwork/secdata
smb: \> cd INSTANCE
smb: \> cd incoming
To transfer a single file (for example the container image):
smb: \> put my_file.sif
To transfer a whole folder (all files in FOLDER):
smb: \> recurse ON
smb: \> mput *
B. Admins move files into the instance
Ask ITS (secdata@aalto.fi) to import the upload. They place data and
code into the instance: data read-only under /nfs/data, code and
the container under /nfs/incoming.
Connect with VMware Horizon Client to https://finvdi.aalto.fi (Aalto VPN), authenticate, and start your instance.
Open a terminal and create a working project folder (adjust user and instance names):
$ cd /nfs/home
$ mkdir project
$ chown YOURUSERNAME:INSTANCENAME project
$ chmod 770 project
C. Work with the data and the container
Copy incoming material into your project (source data stays read-only
in /nfs/data; this copy is what you write alongside):
$ cd /nfs/home/project
$ mkdir code
$ cp -r /nfs/incoming/. code/
$ mkdir data
$ cp -r /nfs/data/. data/
If the data was zipped, tarred, or password-encrypted, extract it here.
Start the container and JupyterLab:
$ cd /nfs/home/project/code
$ singularity shell -B /nfs --no-home ./conda.sif
$ conda env list
$ source activate myproject
$ jupyter-lab
Jupyter prints a local URL, for example
https://localhost:8888/lab?token=.... Open Firefox inside the
VDI and paste that URL. There is no need (and no way) to open that
port from your own laptop.
You can also run scripts already baked into the image instead of Jupyter; the Jupyter path is the usual way to prototype.
D. Get results out
You cannot copy files out yourself. Ask ITS (secdata@aalto.fi) to export the specific results you need. Plan for this delay: keep exports small and infrequent.
Getting help
ITS / the environment itself: secdata@aalto.fi
Need, workflow, containers, analysis: SciComp garage (Data Agents and AaltoRSE). Bring the goal and the install instructions you want to follow.
Data Agents who hit classification or SECDATA questions can ask SciComp the same way; you do not have to solve the “do we really need SECDATA?” question alone.