storage / knowledge

dataset encryption을 최상위에 걸지 않은 이유

paul 2025.10.09 127words (1m)

TrueNAS에서 dataset을 만들 때 encryption을 켤 수 있다. 켜두면 안전할 것 같아서 pool 전체에 걸고 싶어지는데, 이게 무엇을 막아주는지 보면 판단이 달라진다.

TrueNAS의 dataset encryption은 ZFS native encryption이다. 디스크에 있는 상태의 데이터를 암호화한다. 즉 막아주는 건 HDD를 통째로 뽑아가는 상황이다.

풀이 import되어 있고 시스템이 켜져 있는 동안에는 데이터가 평문으로 보인다. NAS에 침입한 공격자나 잘못된 공유 권한에는 아무 도움이 안 된다.

집에 있는 서버라 디스크를 물리적으로 가져갈 위험은 내 기준에서 크지 않았다. 그래서 이렇게 나눴다.

  • pool과 최상위 dataset은 암호화하지 않는다
  • 그 안에서 정말 민감한 dataset만 골라서 건다

전체를 암호화하면 key 관리가 따라온다. key나 passphrase를 잃으면 데이터도 같이 잃고, 부팅할 때마다 unlock이 필요하면 무인 재부팅이 안 된다. 정전 후 자동 복구를 전제로 구성하고 있는데 여기가 막히면 곤란하다.

암호화는 dataset 단위로 걸 수 있으니 필요한 곳에만 거는 쪽이 얻는 것 대비 잃는 게 적다고 봤다.