데이터 엔지니어 · AI 엔지니어를 위한 핵심 요약
Aqua Security는 컨테이너, 쿠버네티스, 서버리스 워크로드를 위한 클라우드 네이티브 보안 플랫폼(CWPP)입니다. 이미지 스캐닝, 런타임 보호, 규정 준수 및 정책 관리 기능을 하나의 플랫폼에서 제공합니다.
컨테이너 이미지의 취약점, 악성코드, 시크릿 노출을 빌드 타임에 탐지합니다. 50+ 취약점 DB와 연동.
실시간 프로세스, 파일, 네트워크 모니터링을 통해 비정상 행위를 차단하고, 드리프트 방지 및 무결성 보호.
CIS Benchmark, PCI DSS, SOC2 등 자동화된 규정 준수 검사와 커스텀 정책 엔진으로 거버넌스 강화.
기존 오픈소스 도구 대비 통합 관리, 정책 엔진, 런타임 탐지에서 강점을 가집니다.
| 기능 | Aqua Security | Trivy | Sysdig Secure | Prisma Cloud |
|---|---|---|---|---|
| 이미지 스캔 | ✅ 고급 (SBOM, 라이선스) | ✅ 기본 | ✅ 고급 | ✅ 고급 |
| 런타임 보호 | ✅ 드리프트, 네트워크, 파일 | ❌ | ✅ 드리프트 | ✅ 풀스택 |
| 정책 엔진 | ✅ Rego 기반 고급 | ❌ | ✅ Falco 기반 | ✅ 자체 정책 |
| 규정 준수 | ✅ CIS, PCI, SOC2 | ✅ CIS (기본) | ✅ CIS, PCI | ✅ 광범위 |
| 멀티 클라우드 | ✅ AKS, EKS, GKE, 온프레미스 | ❌ (CLI 전용) | ✅ | ✅ |
💡 추천 포인트 — Aqua는 특히 런타임 드리프트 방지와 통합 정책 관리가 필요한 엔터프라이즈 환경에 적합합니다.
Aqua 플랫폼은 크게 네 가지 컴포넌트로 구성됩니다.
Aqua CLI aquactl을 통해 플랫폼을 설치하거나 이미지를 스캔할 수 있습니다.
# macOS (Homebrew)
brew install aquasecurity/tap/aquactl
# Linux (curl)
curl -sL https://aquasecurity.github.io/aquactl/install.sh | bash
# 설치 확인
aquactl version
환경 변수 또는 설정 파일로 Aqua Console 주소와 인증 토큰을 지정합니다.
# 환경 변수 설정
export AQUA_CONSOLE_URL=https://console.aquasec.example.com
export AQUA_API_TOKEN=your_api_token_here
# 또는 설정 파일 (~/.aqua/config.yaml)
cat <<EOF > ~/.aqua/config.yaml
console_url: "https://console.aquasec.example.com"
api_token: "your_api_token_here"
EOF
Aqua Python SDK를 사용하여 이미지 취약점을 조회합니다.
# 설치
pip install aqua-sdk
# 예제: 이미지 스캔 결과 가져오기
from aqua_sdk import AquaClient
client = AquaClient(
console_url="https://console.aquasec.example.com",
api_token="your_api_token_here"
)
# 특정 이미지의 취약점 리스트
vulns = client.get_image_vulnerabilities(
registry="docker.io",
repository="library/nginx",
tag="latest"
)
for v in vulns[:5]:
print(f"{v['name']} ({v['severity']}) - {v['description'][:60]}...")
⚠️ 주의 — API 토큰은 읽기 전용 권한으로 발급하고, 코드에 하드코딩하지 마세요. 환경 변수 또는 시크릿 매니저를 사용하세요.
| 설정 항목 | 환경 변수 | 설명 | 기본값 |
|---|---|---|---|
| Console URL | AQUA_CONSOLE_URL |
Aqua Console의 엔드포인트 | https://console.aquasec.com |
| API 토큰 | AQUA_API_TOKEN |
REST API 인증 토큰 | - |
| 스캔 타임아웃 | AQUA_SCAN_TIMEOUT |
이미지 스캔 최대 대기 시간 (초) | 300 |
| 로그 레벨 | AQUA_LOG_LEVEL |
debug, info, warn, error |
info |
| 게이트웨이 주소 | AQUA_GATEWAY_URL |
Enforcer → Gateway 연결 주소 | https://gateway.aquasec.com |
| 정책 파일 경로 | AQUA_POLICY_FILE |
커스텀 Rego 정책 파일 위치 | /etc/aqua/policies/ |
| 문제 | 원인 | 해결책 |
|---|---|---|
| 이미지 스캔 실패 (timeout) | 대형 이미지, 네트워크 지연 | AQUA_SCAN_TIMEOUT 증가, 또는 레지스트리 미러 사용 |
| Enforcer 연결 끊김 | Gateway URL 오류, 인증서 문제 | Gateway 주소 확인, TLS 인증서 체인 검증 |
| 취약점 DB 업데이트 안 됨 | 스캐너가 인터넷에 연결 불가 | 에어갭 환경은 오프라인 DB 번들 사용 |
| 정책 위반 알림 과다 | 기본 정책이 너무 엄격함 | Rego 정책을 조정하거나 예외 목록 추가 |
💡 실무 팁 — CI/CD 파이프라인에 aquactl scan image를 통합하여 빌드 타임에 취약점을 게이트하세요. 실패 조건을 --severity high로 설정하면 효율적입니다.
# CI/CD 예제 (GitHub Actions)
- name: Aqua Scan
run: |
aquactl scan image \
--registry docker.io \
--repository myapp \
--tag ${{ github.sha }} \
--severity high \
--fail-on发现