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 설치 지침을 참조해 주세요.

  1. HahsiCorp tap을 설치한다. ``` $ brew tap hashicorp/tap
  2. HCP Vault Radar CLI를 설치한다. ``` $ brew install vault-radar
  3. 설치를 확인한다. ``` $ 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 기반 배포판에서도 동작할 거예요.

  1. apt 저장소를 업데이트한다. ``` $ sudo apt update
  2. HashiCorp GPG 키를 다운로드한다. ``` $ curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
  3. 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
  4. vault-radar CLI를 설치한다. ``` $ sudo apt update && sudo apt install vault-radar -y
  5. 설치를 확인한다. ``` $ 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 패키지 매니저를 사용하는 다른 배포판에서도 동작할 거예요.

  1. yum 저장소를 업데이트한다. ``` $ sudo yum update
  2. HashiCorp 저장소를 추가한다. ``` Note: 올바른 RHEL/CentOS 또는 Fedora 구성은 공식 패키징 가이드를 참조해 주세요. $ curl -fsSL https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo | sudo tee /etc/yum.repos.d/hashicorp.repo
  3. vault-radar CLI를 설치한다. ``` $ sudo yum update && sudo yum install vault-radar -y
  4. 설치를 확인한다. ``` $ 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 패키지 매니저를 사용해 테스트됐어요.

  1. dnf 저장소를 업데이트한다. ``` $ sudo dnf update
  2. HashiCorp 저장소를 추가한다. ``` Note: 올바른 RHEL/CentOS 또는 Fedora 구성은 공식 패키징 가이드를 참조해 주세요. $ sudo dnf config-manager --add-repo https://rpm.releases.hashicorp.com/fedora/hashicorp.repo
  3. vault-radar CLI를 설치한다. ``` $ sudo dnf update && sudo dnf -y install vault-radar
  4. 설치를 확인한다. ``` $ 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 패키지 매니저를 사용하는 다른 배포판에서도 동작할 거예요.

  1. yum 저장소를 업데이트한다. ``` $ sudo yum update
  2. HashiCorp 저장소를 추가한다. ``` Note: 올바른 RHEL/CentOS 또는 Fedora 구성은 공식 패키징 가이드를 참조해 주세요. $ curl -fsSL https://rpm.releases.hashicorp.com/AmazonLinux/hashicorp.repo | sudo tee /etc/yum.repos.d/hashicorp.repo
  3. vault-radar CLI를 설치한다. ``` $ sudo yum update && sudo yum install vault-radar -y
  4. 설치를 확인한다. ``` $ 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를 업데이트해 주세요.

  1. 관리자 권한으로 PowerShell 터미널을 시작한다. 메시지가 표시되면 Yes를 클릭한다.
  2. releases.hashicorp.com에서 HCP Vault Radar 바이너리의 최신(또는 원하는) 버전을 확인한다. 예를 들어 "0.6.0".
  3. 다운로드 구성용 환경 변수를 만든다. ``` $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"
  4. zip 아카이브를 현재 작업 디렉터리에 다운로드한다. ``` $ Invoke-WebRequest -URI "${Env:RadarURL}/${Env:RadarFile}" -OutFile "./${Env:RadarFile}"
  5. 아카이브 파일을 기본 프로그램 디렉터리로 압축 해제한다. ``` $ Expand-Archive -Path ".\${Env:RadarFile}" -Destination "${Env:Programfiles}\HashiCorp\radar-cli\bin"
  6. Windows 사용자 경로를 업데이트한다. ``` $ [System.Environment]::SetEnvironmentVariable("Path", "$Env:Path;${Env:Programfiles}\HashiCorp\radar-cli\bin", [System.EnvironmentVariableTarget]::User )
  7. 세션을 닫고 PowerShell을 정상적으로 다시 연다.
  8. 설치를 확인한다. ``` $ 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를 실행하는 데 사용할 수 있어요.

  1. Docker Hub에서 HCP Vault Radar 바이너리의 최신(또는 원하는) 버전을 확인한다. 예를 들어 "0.6.0".
  2. 버전을 환경 변수로 설정한다. ``` $ export VAULT_RADAR_VERSION=0.6.0
  3. Docker 이미지를 풀(pull)한다. ``` $ docker pull hashicorp/vault-radar:${VAULT_RADAR_VERSION}
  4. 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예요. 지원되는 로그 레벨은 다음과 같아요:

  • trace
  • debug
  • info
  • warn
  • error

예시: 로그 레벨을 debug로 설정해요.

$ export VAULT_RADAR_LOG_LEVEL=debug

더 알아보기 (Learn more)