Snap 패키지 매니저 실무 치트시트: 샌드박스 패키지 관리

💡 핵심 요약 (Executive Summary)

본 가이드는 pkg snap 핵심 가이드 및 실전 아키텍처의 핵심 개념, 실전 구성 명령어 및 아키텍처 베스트 프랙티스를 다룹니다. 클라우드 네이티브 및 인프라 엔지니어링 실무에 즉시 활용 가능하도록 체계적으로 정리했습니다.

📑 Table of Contents
Daemon Install
Rocky
bash
sudo dnf install epel-release
sudo dnf upgrade
sudo yum install snapd
sudo systemctl enable --now snapd.socket

# /snap 디렉토리 생성. (classic 지원 추가)
sudo ln -s /var/lib/snapd/snap /snap
sudo reboot
Amazon 2023 / Fedora

최신릴리즈 확인 후 작업

bash
# 사전 Dependency 추가
sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
sudo dnf upgrade
sudo dnf module install go-toolset
sudo dnf install rpmdevtools

# build 구성요소 정의
rpmdev-setuptree
cd ~/rpmbuild/SOURCES
curl -L \
		https://github.com/canonical/snapd/releases/download/2.65.3/snapd_2.65.3.no-vendor.tar.xz \
		-o snapd_2.65.3.no-vendor.tar.xz
tar -xvJ -C ~/rpmbuild/SPECS -f snapd_2.65.3.no-vendor.tar.xz --strip-components=3 snapd-2.65.3/packaging/fedora
spectool -g ~/rpmbuild/SPECS/snapd.spec
sudo dnf builddep ~/rpmbuild/SPECS/snapd.spec -y

# build
rpmbuild -bb ~/rpmbuild/SPECS/snapd.spec

# install
sudo dnf localinstall \
   ~/rpmbuild/RPMS/x86_64/snap-confine-2.65.3-0.amzn2023.x86_64.rpm \
   ~/rpmbuild/RPMS/x86_64/snap-confine-debuginfo-2.65.3-0.amzn2023.x86_64.rpm \
   ~/rpmbuild/RPMS/x86_64/snapd-2.65.3-0.amzn2023.x86_64.rpm \
   ~/rpmbuild/RPMS/x86_64/snapd-debuginfo-2.65.3-0.amzn2023.x86_64.rpm \
   ~/rpmbuild/RPMS/x86_64/snapd-debugsource-2.65.3-0.amzn2023.x86_64.rpm \
   ~/rpmbuild/RPMS/noarch/snapd-devel-2.65.3-0.amzn2023.noarch.rpm \
   ~/rpmbuild/RPMS/noarch/snapd-selinux-2.65.3-0.amzn2023.noarch.rpm

# enable
sudo systemctl enable --now snapd.socket

# /snap 디렉토리 생성. (classic 지원 추가)
sudo ln -s /var/lib/snapd/snap /snap
sudo reboot

# test
sudo snap install hello-world
Exec
bash
# 온라인 검색
snap search $text

# 설치 패키지 조회
snap list

# 온라인 설치
snap install $package

# 오프라인 설치
snap install $path/$snapfile.snap
Tips
--classic의 의미
Reference & Guidelines (NOTE)

– 특정 패키지들은 snap install $package --classic으로만 설치가 가능하다.
– snap 매니저는 기본적으로 패키지 설치시 sandboxing이라는 엄격한 보안제약을 두는데, 이 제약을 지켜도 괜찮은 패키지나 어플리케이션만 설치가 가능하다.
– 시스템 통합이 필요한 패키지나 어플리케이션의 경우 반드시 해당 플래그를 사용해야 한다.

Sandboxing이란?
Reference & Guidelines (NOTE)

– 샌드박싱은 프로그램이나 프로세스를 격리된 환경에서 실행하여, 해당 프로그램이 시스템의 나머지 부분에 영향을 주거나 접근하지 못하도록 제한하는 보안 기술.
– 주로 애플리케이션 실행 시 예기치 않은 동작, 악성 코드, 데이터 유출 등의 위험을 최소화하기 위해 사용.
– 주요 항목
– 격리(Isolation):
– 애플리케이션은 가상의 환경에서 실행되며, 다른 애플리케이션이나 운영 체제의 핵심 리소스에 직접 접근할 수 없습니다.
– 각 애플리케이션은 자신의 “샌드박스” 내에서만 작동하도록 설계됩니다.
– 권한 제한(Least Privilege):
– 애플리케이션은 최소한의 권한만 부여받아 특정 작업만 수행할 수 있습니다.
– 예를 들어, 파일 시스템 접근 권한이 제한되거나 네트워크 액세스가 차단될 수 있습니다.
– 보안 경계(Security Boundary):
– 샌드박스는 운영 체제의 다른 부분과 명확한 경계를 형성하여 침입이나 악용을 방지합니다.
– 이 경계는 프로세스 간 통신(IPC)이나 파일 공유 등을 엄격히 통제합니다.

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *