Vault를 사용하여 Linux에 민감한 데이터를 저장하는 방법

HashiCorp Vault는 키/값(KV) 시크릿 엔진에 정적 시크릿을 저장하고, 권한이 있는 사용자가 웹 UI 또는 CLI를 통해 이를 검색할 수 있도록 합니다. 이 가이드에서는 로컬 Linux 머신에서 워크플로를 시연합니다. KV v2 시크릿 엔진 과 Vault 개발 모드를 사용하는데, 개발 모드는 의도적으로 보안이 취약하며, 데이터는 메모리에만 저장되고 시스템이 중지되면 삭제됩니다. 여기에 자리 표시자 값을 사용하십시오. 실제 암호, API 키 또는 개인 자격 증명을 입력하지 마십시오. 영구적인 중요 데이터의 경우, 내구성 있는 저장소와 적절한 접근 제어 기능을 갖춘 비개발 모드로 Vault를 배포하십시오.

Debian 또는 Ubuntu에 Vault를 설치하세요

기존의 버전 고정 다운로드 링크 대신 HashiCorp의 공식 패키지 저장소를 사용하십시오. 아래 명령어를 실행하면 서명 키와 apt 저장소가 추가되고 Vault가 설치됩니다. RHEL, Fedora 또는 Amazon Linux를 사용하는 경우 Vault 공식 설치 페이지 에서 해당 패키지 설치 지침을 참조하십시오 .

sudo apt update && sudo apt install -y wget gpg
wget -O - https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(grep -oP '(?<=UBUNTU_CODENAME=).*' /etc/os-release || lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
sudo apt update && sudo apt install vault
공식 HashiCorp apt 저장소에서 Vault가 설치된 Ubuntu 터미널 화면입니다.

CLI가 PATH에 추가되어 있는지 확인하십시오.

vault --version
Vault CLI 설치 여부를 확인하기 위해 `vault --version` 명령어가 준비된 Ubuntu 터미널입니다.

로컬 데모 서버를 시작하세요

튜토리얼을 따라하는 동안 이 프로세스를 터미널 창에서 진행하세요. 루프백 주소에 바인딩하여 본인 컴퓨터에서만 접근할 수 있도록 설정하십시오.

vault server -dev -dev-listen-address=127.0.0.1:8200
Vault 개발 서버가 메모리 내 저장소를 사용하여 127.0.0.1:8200에 바인딩되었습니다.

Vault는 이 개발 서버를 자동으로 초기화하고 봉인을 해제합니다. 시작 출력에는 루트 토큰이 포함되어 있으며, UI에 로그인하려면 이 토큰이 필요합니다. 이 토큰은 광범위한 관리자 권한을 가지고 있으므로 로컬 컴퓨터에 보관하고 절대 공유하지 마십시오. 개발 모드는 또한 안전하지 않은 기본 설정과 메모리 내 저장소를 사용합니다. HashiCorp는 이 개발 모드가 프로덕션 환경이 아닌 실험용이라고 명시적으로 밝히고 있습니다. UI는 다음 주소에서 사용할 수 있습니다 http://127.0.0.1:8200/ui. 데모는 루프백 포트에서 일반 HTTP를 사용하므로 이 포트를 네트워크에 노출하지 마십시오.

반복 가능한 예제를 위해, 별도의 KV v2 마운트를 생성하고 이름을 지정하세요 linux-kv. 두 번째 터미널에서 서버 주소를 설정하고, 이 데모가 활성화된 동안 마운트를 한 번 활성화하세요.

export VAULT_ADDR='http://127.0.0.1:8200'
vault secrets enable -path=linux-kv kv-v2

이렇게 하면 예제 설정에 따라 달라질 수 있는 기본 마운트 이름에 의존하지 않게 됩니다. KV v2 마운트 버전은 시크릿 쓰기를 수행합니다. Vault의 KV v2 설정 문서에는 마운트 명령 및 UI 워크플로에 대한 설명이 있습니다.

Vault 로컬 로그인 페이지(127.0.0.1:8200/ui)에는 토큰 입력란과 로그인 버튼이 있습니다.

Vault의 웹 UI에 테스트 비밀 키를 저장하세요

  1. http://127.0.0.1:8200/ui브라우저에서 엽니다 . 서버 터미널에 표시된 루트 토큰을 입력하고 로그인합니다. Vault UI는 개발 모드에서 기본적으로 활성화되어 있습니다. 자세한 UI 관련 내용은 공식 문서를 참조하십시오 .
  2. [비밀]을 선택 하고 마운트를 연 다음 linux-kv/비밀 생성 옵션을 선택합니다. 엔진 페이지에서 이 마운트가 키/값 버전 2로 표시되어야 합니다.
Vault 비밀 엔진 페이지에 linux-kv/ 키/값 마운트 버전 2가 표시됩니다.
  1. 비밀 경로에는 를 입력하세요 linux-demo. 키/값 필드에는 api_key키로 를, test-value값으로 를 입력합니다. 저장을 클릭하세요 . 이 문자열들은 예시이며 실제 자격 증명이 아닙니다.
Vault에서 linux-kv/ 경로에 linux-demo, 키 api_key, 샘플 값 test-value를 사용하여 비밀 키를 생성합니다.

마운트와 경로를 함께 사용하면 이 레코드를 식별할 수 있습니다 linux-kv/linux-demo. 중립적인 경로 및 키 이름을 사용하십시오. 이름은 목록이나 메타데이터에 나타날 수 있으므로 암호나 기타 민감한 정보를 포함하지 마십시오. 일반적인 재사용 가능한 키/값 레코드에는 KV를 사용하십시오. Vault의 Cubbyhole 엔진은 개별 토큰에 한정되며 해당 토큰이 만료되면 삭제됩니다.

CLI를 사용하여 비밀 키를 쓰고 검색하세요.

개발 서버는 로컬 Vault CLI를 자동으로 인증합니다. 다른 터미널에서 필요한 경우 서버 주소를 설정한 다음 아래의 명시적 마운트 구문을 사용하십시오.

export VAULT_ADDR='http://127.0.0.1:8200'
vault kv put -mount=linux-kv linux-demo api_key=test-value
vault kv get -mount=linux-kv linux-demo
Ubuntu 터미널에서 `-mount=linux-kv` 구문을 사용하여 샘플 KV v2 비밀 키를 쓰고 검색하는 방법입니다.

해당 get명령은 값을 출력하므로 예제에서는 자리 표시자만 사용합니다. KV v2는 put새 버전을 작성하고 비밀 키의 현재 데이터를 덮어씁니다. 유지하려는 모든 필드를 포함하세요. 실제 자격 증명을 셸 명령에 직접 입력하지 마세요. 셸 기록에 남거나 로컬 프로세스 검사에 노출될 수 있습니다. 실제 사용자 또는 애플리케이션에는 루트가 아닌 사용자 계정과 제한된 범위의 ACL 정책을 사용하세요.

데모를 중지하고 Vault를 실제 데이터에 맞게 준비하세요.

서버가 실행 중인 터미널로 돌아가서 Ctrl+C 를 누르세요 . 데모가 중지되고 메모리에 저장된 비밀 키와 토큰이 손실됩니다. 다시 시작하면 새 인스턴스가 생성되며 이전 기록은 복원되지 않습니다.

Ctrl+C를 누른 후 Ubuntu 터미널에 Vault 개발 서버가 중지되었으며 임시 데이터 경고 메시지가 표시됩니다.

중요한 기밀 정보를 안전하게 보호하려면 개발 환경이 아닌 Vault 서버에 내구성이 뛰어난 스토리지 백엔드를 구성하십시오. HashiCorp는 자체 관리형 배포 환경에 통합 스토리지를 권장하며, Raft 관련 문서 에서 영구 저장 및 백업/복원 기능을 자세히 설명합니다. 파일 시스템 백엔드 또한 단일 서버에서 내구성을 확보하는 데 사용할 수 있는 옵션이지만, 고가용성을 제공하지는 않습니다.

실제 배포 환경에서는 클라이언트 연결에 TLS를 사용하고, 프로덕션 인증, 최소 권한 정책, 보호된 초기화 및 봉인 해제 자료, 제한된 파일 시스템 접근, 그리고 검증된 백업이 필요합니다. Vault는 저장된 데이터를 암호화하지만, 서버, 토큰, 그리고 백업 자체도 보호해야 합니다. 중요한 자격 증명을 저장하기 전에 HashiCorp의 개발 모드 경고 및 프로덕션 배포 지침을 따르십시오.

댓글 남기기

손실된 파티션과 하드 디스크 데이터를 안전하게 복구하는 방법

손실된 파티션과 하드 디스크 데이터를 안전하게 복구하는 방법

TestDisk와 PhotoRec을 사용하여 손실된 파티션과 파일을 복구하는 방법을 알아보세요. 원본 드라이브를 보호하고 안전하게 스캔한 다음 복구된 데이터를 다른 디스크에 저장하세요.

리눅스 데스크톱에서 QR 코드를 스캔하는 방법

리눅스 데스크톱에서 QR 코드를 스캔하는 방법

웹캠이나 이미지 파일을 사용하여 CoBang으로 Linux에서 QR 코드를 스캔하세요. Flatpak 카메라 접근 관련 설치 옵션, 설정 단계 및 문제 해결 방법을 참조하세요.

Cameractrls를 사용하여 Linux에서 웹캠 설정을 변경하는 방법

Cameractrls를 사용하여 Linux에서 웹캠 설정을 변경하는 방법

Cameractrls를 사용하여 Linux에서 웹캠 설정을 변경하세요. 노출, 색상, 깜빡임 감소 및 기타 지원되는 제어 기능을 조정하고 호환되는 비디오 모드를 확인하세요.

Linux에 PhpStorm을 설치하는 방법: Toolbox, Tar.gz, Snap 및 AUR

Linux에 PhpStorm을 설치하는 방법: Toolbox, Tar.gz, Snap 및 AUR

Linux에 PhpStorm을 설치하려면 JetBrains Toolbox 또는 독립 실행형 tar.gz 아카이브를 사용하세요. Snap 및 Arch AUR 옵션도 제공됩니다. Java는 이미 포함되어 있습니다.

리눅스에 Cisco Packet Tracer를 설치하는 방법

리눅스에 Cisco Packet Tracer를 설치하는 방법

Cisco Packet Tracer 9.0.1 for Ubuntu 64비트 버전을 다운로드하고, APT를 사용하여 DEB 패키지를 설치한 다음, 터미널에서 라이선스에 동의하고 로그인하여 실습을 시작하십시오.

XFCE 4에서 듀얼 패널을 설정하는 방법

XFCE 4에서 듀얼 패널을 설정하는 방법

각 디스플레이마다 별도의 XFCE 4 패널을 생성하고, 두 번째 패널을 올바른 출력에 할당하고, 위치와 크기를 조정한 다음, 필요한 실행기와 상태 항목을 추가합니다.

리눅스에서 CD-ROM을 ISO 파일로 백업하는 방법

리눅스에서 CD-ROM을 ISO 파일로 백업하는 방법

GNOME Disks 또는 dd 명령어를 사용하여 Linux에서 CD-ROM ISO 파일을 생성합니다. 광학 드라이브를 식별하고, 복사 과정을 모니터링하고, 이미지 유효성을 검사하고, 손상된 디스크나 오디오 디스크에 다른 도구가 필요한 경우를 알 수 있습니다.

리눅스에서 GIMP를 사용하여 이미지를 잘라내는 방법

리눅스에서 GIMP를 사용하여 이미지를 잘라내는 방법

GIMP를 사용하여 Linux에서 사진 배경 제거하기: 피사체를 따라 그리고, 선택한 배경을 삭제하고, 투명도를 유지한 다음, 재사용 가능한 PNG 파일로 내보낼 수 있습니다.

FlightGear 무료 다운로드: 공식 설치 가이드

FlightGear 무료 다운로드: 공식 설치 가이드

FlightGear를 공식 사이트에서 무료로 다운로드하세요. Windows, macOS, Linux 패키지를 비교하고, 데이터 파일을 설치한 후 첫 비행을 시작하세요.

Google Tasks 데스크톱 애플리케이션: 컴퓨터에서 사용하는 방법

Google Tasks 데스크톱 애플리케이션: 컴퓨터에서 사용하는 방법

브라우저에서 Google Tasks를 열거나, Chrome 바로가기 또는 앱 스타일 실행을 추가하고, 캘린더 및 Gmail을 통해 날짜별 할 일을 관리하세요.