Vault Radar CLI
Vault Radar CLI
HCP 포털과 더불어, Vault Radar는 다양한 데이터 소스를 스캔해 관리되지 않는 비밀(unmanaged secrets)을 찾아 보안 취약성을 줄일 수 있는 사용하기 쉬운 명령줄 인터페이스(CLI)를 제공해요.
출처: 문서
본문
메모: Vault Radar CLI 버전 0.20.0 이상이 설치되어 있어야 해요. 현재 CLI의 버전은
version명령어로 확인할 수 있어요.
CLI 다운로드 및 설치
HCP Vault Radar CLI는 releases.hashicorp.com/vault-radar에서 zip 아카이브로, 그리고 인기 있는 패키지 매니저로 다운로드할 수 있어요. Docker Hub의 이미지로도 사용할 수 있어요. (Manual / macOS / Linux / Windows / Docker 탭 참고)
HCP Vault Radar CLI를 설치하려면 시스템에 맞는 패키지를 찾아 다운로드해 주세요. vault-radar CLI는 zip 아카이브로 패키징돼 있어요.
zip 아카이브를 다운로드한 후 패키지를 압축 해제해요. HCP Vault Radar 바이너리는 vault-radar라는 단일 바이너리로 실행돼요. 패키지의 다른 파일은 안전하게 제거할 수 있으며, vault-radar는 계속 정상 동작해요.
마지막 단계는 vault-radar 바이너리가 PATH에서 사용 가능한지 확인하는 거예요. Linux와 Mac에서 PATH를 설정하는 방법은 이 페이지를 참조해 주세요. Windows에서 PATH를 설정하는 방법은 이 페이지에 있어요.
제공된 설치 단계는 macOS 14.4에서 테스트됐으며, Homebrew 패키지 매니저를 사용하는 다른 버전에서도 동작할 거예요.
Homebrew가 아직 설치되지 않았다면 Homebrew 설치 지침을 참조해 주세요.
- HahsiCorp tap을 설치한다. ```
$ brew tap hashicorp/tap
- HCP Vault Radar CLI를 설치한다. ```
$ brew install vault-radar
- 설치를 확인한다. ```
$ vault-radar --help
Usage: vault-radar [--version] [--help]
[ ] Available commands are: govern Govern commands index Index commands meter Meter commands scan Scan commands station Station management version Shows the vault-radar cli version and golang version
(다음은 Ubuntu/Debian, CentOS/RHEL, Fedora, Amazon Linux 탭)
제공된 설치 단계는 Ubuntu 22.04에서 테스트됐으며, apt 패키지 매니저를 사용하는 다른 Debian 기반 배포판에서도 동작할 거예요.
- apt 저장소를 업데이트한다. ```
$ sudo apt update
- HashiCorp GPG 키를 다운로드한다. ```
$ curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
- HashiCorp 저장소를 추가한다. ```
$ echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
vault-radarCLI를 설치한다. ``` $ sudo apt update && sudo apt install vault-radar -y- 설치를 확인한다. ```
$ vault-radar --help
Usage: vault-radar [--version] [--help]
[ ] Available commands are: govern Govern commands index Index commands meter Meter commands scan Scan commands station Station management version Shows the vault-radar cli version and golang version
제공된 설치 단계는 CentOS Stream 9에서 테스트됐으며, yum 패키지 매니저를 사용하는 다른 배포판에서도 동작할 거예요.
- yum 저장소를 업데이트한다. ```
$ sudo yum update
- HashiCorp 저장소를 추가한다. ```
Note: 올바른 RHEL/CentOS 또는 Fedora 구성은 공식 패키징 가이드를 참조해 주세요.
$ curl -fsSL https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo | sudo tee /etc/yum.repos.d/hashicorp.repo
vault-radarCLI를 설치한다. ``` $ sudo yum update && sudo yum install vault-radar -y- 설치를 확인한다. ```
$ vault-radar --help
Usage: vault-radar [--version] [--help]
[ ] Available commands are: govern Govern commands index Index commands meter Meter commands scan Scan commands station Station management version Shows the vault-radar cli version and golang version
제공된 설치 단계는 Fedora 39에서 dnf 패키지 매니저를 사용해 테스트됐어요.
- dnf 저장소를 업데이트한다. ```
$ sudo dnf update
- HashiCorp 저장소를 추가한다. ```
Note: 올바른 RHEL/CentOS 또는 Fedora 구성은 공식 패키징 가이드를 참조해 주세요.
$ sudo dnf config-manager --add-repo https://rpm.releases.hashicorp.com/fedora/hashicorp.repo
vault-radarCLI를 설치한다. ``` $ sudo dnf update && sudo dnf -y install vault-radar- 설치를 확인한다. ```
$ vault-radar --help
Usage: vault-radar [--version] [--help]
[ ] Available commands are: govern Govern commands index Index commands meter Meter commands scan Scan commands station Station management version Shows the vault-radar cli version and golang version
제공된 설치 단계는 Amazon Linux 2에서 테스트됐으며, yum 패키지 매니저를 사용하는 다른 배포판에서도 동작할 거예요.
- yum 저장소를 업데이트한다. ```
$ sudo yum update
- HashiCorp 저장소를 추가한다. ```
Note: 올바른 RHEL/CentOS 또는 Fedora 구성은 공식 패키징 가이드를 참조해 주세요.
$ curl -fsSL https://rpm.releases.hashicorp.com/AmazonLinux/hashicorp.repo | sudo tee /etc/yum.repos.d/hashicorp.repo
vault-radarCLI를 설치한다. ``` $ sudo yum update && sudo yum install vault-radar -y- 설치를 확인한다. ```
$ vault-radar --help
Usage: vault-radar [--version] [--help]
[ ] Available commands are: govern Govern commands index Index commands meter Meter commands scan Scan commands station Station management version Shows the vault-radar cli version and golang version
HashiCorp는 Chocolatey나 Scoop을 사용하는 설치 바이너리를 유지 관리하지 않아요. HCP Vault Radar CLI의 최신 버전은 수동 설치로 사용할 수 있어요.
이 예시는 PowerShell을 사용해 Windows AMD64 바이너리를 다운로드해요. 적절한 권한이 있는 Windows 계정을 사용해 바이너리를 Program Files 디렉터리에 압축 해제하고 PATH를 업데이트해 주세요.
- 관리자 권한으로 PowerShell 터미널을 시작한다. 메시지가 표시되면 Yes를 클릭한다.
- releases.hashicorp.com에서 HCP Vault Radar 바이너리의 최신(또는 원하는) 버전을 확인한다. 예를 들어 "0.6.0".
- 다운로드 구성용 환경 변수를 만든다. ```
$Env:RadarVersion = "0.6.0"
$Env:RadarArch = $Env:PROCESSOR_ARCHITECTURE.ToLower()
$Env:RadarURL = "https://releases.hashicorp.com/vault-radar/${Env:RadarVersion}"
$Env:RadarFile = "vault-radar_${Env:RadarVersion}windows${Env:RadarArch}.zip"
- zip 아카이브를 현재 작업 디렉터리에 다운로드한다. ```
$ Invoke-WebRequest
-URI "${Env:RadarURL}/${Env:RadarFile}"-OutFile "./${Env:RadarFile}" - 아카이브 파일을 기본 프로그램 디렉터리로 압축 해제한다. ```
$ Expand-Archive
-Path ".\${Env:RadarFile}"-Destination "${Env:Programfiles}\HashiCorp\radar-cli\bin" - Windows 사용자 경로를 업데이트한다. ```
$ [System.Environment]::SetEnvironmentVariable("Path", "$Env:Path;${Env:Programfiles}\HashiCorp\radar-cli\bin", [System.EnvironmentVariableTarget]::User )
- 세션을 닫고 PowerShell을 정상적으로 다시 연다.
- 설치를 확인한다. ```
$ vault-radar --help
Usage: vault-radar [--version] [--help]
[ ] Available commands are: govern Govern commands index Index commands meter Meter commands scan Scan commands station Station management version Shows the vault-radar cli version and golang version
HCP Vault Radar CLI는 Docker 이미지로도 사용할 수 있어요. 이 이미지는 컨테이너 환경에서 CLI를 실행하는 데 사용할 수 있어요.
- Docker Hub에서 HCP Vault Radar 바이너리의 최신(또는 원하는) 버전을 확인한다. 예를 들어 "0.6.0".
- 버전을 환경 변수로 설정한다. ```
$ export VAULT_RADAR_VERSION=0.6.0
- Docker 이미지를 풀(pull)한다. ```
$ docker pull hashicorp/vault-radar:${VAULT_RADAR_VERSION}
- Docker 컨테이너를 실행한다. ```
$ docker run --rm hashicorp/vault-radar:${VAULT_RADAR_VERSION} vault-radar --help
의존성(Dependencies)
Vault Radar CLI는 다음 URL에 접근해야 해요:
- api.cloud.hashicorp.com
- auth.idp.hashicorp.com
CLI가 이 URL들에 접근할 수 있도록 네트워크 내에 필요한 규칙을 구성해 주세요.
vault-radar가 실행되는 머신에는 다음 의존성이 설치되어 있어야 해요.
- git -
scan repo및scan confluence명령어에 필요 - Docker engine -
scan docker-image명령어에 필요
사용법
Usage: vault-radar [--version] [--help] <command> [<args>]
Available commands are:
agent Agent management
govern Govern commands
index Index commands
install Install commands
meter Meter commands
scan Scan commands
version Shows the vault-radar cli version and golang version
일부 명령어는 HCP에 연결해야 해요. HCP 프로젝트의 HCP_PROJECT_ID, HCP_CLIENT_ID, HCP_CLIENT_SECRET을 설정해야 해요. 서비스 주체 키 생성에 대한 자세한 내용은 여기를 참조해 주세요.
명령어에 대한 더 많은 정보, 예시, 사용법은 사이드바에서 명령어 이름을 클릭해 주세요.
명령어 도움말
언제든지 사용 가능한 명령어 목록을 보려면 인자 없이 vault-radar를 실행하면 돼요:
$ vault-radar
특정 명령어 도움말 출력을 보려면 help(또는 약자 -h)를 사용해요.
예시: vault-radar scan aws-parameter-store 명령어 사용법에 대한 도움말 메시지를 확인해요.
$ vault-radar scan aws-parameter-store -h
Usage: vault-radar scan aws-parameter-store [options]
Scans AWS Parameter Store
Options:
--region, -r Specifies the region of AWS Parameter Store to scan (required)
--outfile , -o Specifies the file to store information about found secrets (required)
--skip-history If specified, scans only the most recent version of the parameters. Default is to scan all available versions
--format, -f Specifies the output format, csv, json, and sarif are supported. Defaults to csv
--index-file Specifies the index file path to use in order to determine which risks are managed
--baseline, -b Specifies the file with previous scan results. Only new secrets will be reported.
--limit, -l Specifies the maximum number of secrets to be reported. The scan will stop when the limit is reached
--parameter-limit Specifies the maximum number of parameters to be scanned. The scan will stop when the limit is reached
--disable-ui Specifies that the scan summary should not be logged to stdout
전역 플래그와 환경 변수
UI 비활성화(Disable UI)
--disable-ui 플래그는 명령어 상태와 요약을 stdout에 기록하는 것을 비활성화해요. 이는 CI/CD 파이프라인처럼 TTY를 사용할 수 없는 환경에서 명령어를 실행하려 할 때 특히 유용해요.
예시: 요약을 stdout에 기록하지 않고 scan aws-parameter-store 명령어를 실행해요.
$ vault-radar scan aws-parameter-store --region us-west-2 --outfile secrets.csv --disable-ui
인덱스 파일(Index file)
모든 스캔 명령어는 index 명령어가 생성한 출력 파일을 지정하는 --index-file 플래그를 지원해요. 이 플래그가 지정되면 스캔 명령어는 인덱스 파일을 사용해 어떤 비밀이 관리되는지(즉 비밀이 HashiCorp Vault 같은 시크릿 매니저에서도 감지되는지)를 결정해요.
예시: 인덱스 파일과 함께 scan aws-parameter-store 명령어를 실행해요.
$ vault-radar scan aws-parameter-store --region us-west-2 \
--outfile secrets.csv --index-file index.jsonl
Vault 인덱스를 생성하는 방법을 확인해 주세요.
위험 한도(Risks limit)
모든 스캔 명령어는 보고할 최대 비밀 수를 지정하는 --limit 플래그를 지원해요. 한도에 도달하면 스캔이 중지돼요.
예시: 한도와 함께 scan aws-parameter-store 명령어를 실행해요.
$ vault-radar scan aws-parameter-store --region us-west-2 \
--outfile secrets.csv --limit 10
로그 레벨(Log level)
CLI의 로그 레벨은 VAULT_RADAR_LOG_LEVEL 환경 변수로 구성할 수 있어요. 기본 로그 레벨은 info예요. 지원되는 로그 레벨은 다음과 같아요:
tracedebuginfowarnerror
예시: 로그 레벨을 debug로 설정해요.
$ export VAULT_RADAR_LOG_LEVEL=debug
더 알아보기 (Learn more)
- CLI 설치하기 — pre-commit 훅 설치를 확인해요.
- 변경 이력(Changelog) — 각 버전의 변경 내용을 확인해요.
- 결과를 HCP에 업로드하기 — HCP 연결 정보를 설정하는 방법을 살펴봐요.