mond

mcp
Guvenlik Denetimi
Uyari
Health Gecti
  • License รขโ‚ฌโ€ License: MIT
  • Description รขโ‚ฌโ€ Repository has a description
  • Active repo รขโ‚ฌโ€ Last push 0 days ago
  • Community trust รขโ‚ฌโ€ 10 GitHub stars
Code Uyari
  • fs module รขโ‚ฌโ€ File system access in .github/workflows/knowledge-link-check.yml
Permissions Gecti
  • Permissions รขโ‚ฌโ€ No dangerous permissions requested

Bu listing icin henuz AI raporu yok.

SUMMARY

๐ŸŒ™ Mond โ€” AI-Powered Open-Source DevSecOps Platform

README.md

Mond

Mond Logo

AI-Powered Self-Service DevSecOps Platform
AI ๊ธฐ๋ฐ˜ ์…€ํ”„์„œ๋น„์Šค DevSecOps ํ”Œ๋žซํผ

๋ถ„์„์€ AI๊ฐ€, ๊ฒฐ์ •์€ ์‚ฌ๋žŒ์ด.
AI does triage. You decide what matters.

์ž์‚ฐ, ์Šค์บ”, ๋ฐœ๊ฒฌ, ์Šน์ธ, ๊ฐ์‚ฌ๊นŒ์ง€ ํ•œ ํ๋ฆ„์—์„œ.
Inventory, scan, triage, approve, audit in one flow.

License: MIT
Python
React
Claude
Helm



๋” ๋งŽ์€ ํ™”๋ฉด ยท More previews

Login Hero โ€” 3D Moon + AI Triage / Self-service / Auto-audit

Login Hero ยท 3D ์ดˆ์Šน๋‹ฌ ยท 3 pillars (AI Triage ยท Self-service ยท Auto-audit)
๋กœ๊ทธ์ธ ยท SSO ยท MFA ์„ค์ •

AI Insights โ€” Claude ์ž์—ฐ์–ด ์งˆ์˜

AI ์ธ์‚ฌ์ดํŠธ ยท ์ž์—ฐ์–ด๋กœ ์ž์‚ฐยท๋ฐœ๊ฒฌยท์ •์ฑ… ์งˆ์˜. ํ‚ค ์—†์œผ๋ฉด ๊ธฐ๋ณธ ๊ทœ์น™ ๋ชจ๋“œ
AI provider ์„ธํŒ… (Anthropic / OpenAI / Bedrock / Ollama)

Knowledge Hub โ€” DevSecOps + ๊ทœ์ œ ์นด๋“œ + AI ์—ฐ๊ณ„

์ง€์‹ ํ—ˆ๋ธŒ ยท DevSecOps ยท OWASP ยท K-PIPA ยท ISMS-P ยท PCI DSS ยท GDPR โ€” AI์— ๋ฐ”๋กœ ์ด์–ด ๋ฌป๊ธฐ
ํ•œ๊ตญ ๊ทœ์ œ ๋งคํ•‘

IAM Explorer โ€” AWS / GCP / Azure / K8s / LDAP ํ†ตํ•ฉ ๊ถŒํ•œ ํƒ์ƒ‰

IAM ํƒ์ƒ‰ ยท AWS ยท GCP ยท Azure ยท Kubernetes ยท LDAP/AD ๋ฉ€ํ‹ฐ ํด๋ผ์šฐ๋“œ ๊ถŒํ•œ + ์œ„ํ—˜๋„
IAM Source ์—ฐ๋™


๐Ÿ“š ์–ด๋–ค OSS์ธ๊ฐ€์š”? ยท What is Mond?

  • ๋ฌด์—‡์„ ํ‘ธ๋Š”๊ฐ€ โ€” DevSecOps ๋„๊ตฌ๊ฐ€ ๋„ˆ๋ฌด ํฉ์–ด์ ธ ์žˆ๊ณ , ๋ฐœ๊ฒฌ์‚ฌํ•ญ์ด ๋„ˆ๋ฌด ๋งŽ๊ณ , ์˜์‚ฌ๊ฒฐ์ •์€ ๋„ˆ๋ฌด ๋А๋ฆฝ๋‹ˆ๋‹ค. Mond๋Š” AI๊ฐ€ 1์ฐจ ๋ถ„์„ํ•ด์„œ ์‚ฌ๋žŒ์ด ๊ฒฐ์ •๋งŒ ํ•˜๋ฉด ๋˜๋Š” ํ๋ฆ„์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
  • ์–ด๋–ป๊ฒŒ ๋‹ค๋ฅธ๊ฐ€ โ€” ํด๋ผ์šฐ๋“œ / ์Šค์บ๋„ˆ / AI provider / IdP โ€” ์–ด๋””์—๋„ ๋ฌถ์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์–ด๋Œ‘ํ„ฐ๋กœ ๊ฐˆ์•„๋ผ์šฐ๊ณ , ํ•œ๊ตญ์–ด๊ฐ€ 1๊ธ‰ ์‹œ๋ฏผ์ž…๋‹ˆ๋‹ค.
  • ์–ด๋””๋กœ ๊ฐ€๋Š”๊ฐ€ โ€” ์ž์‚ฐ ์ž๋™ ๋™๊ธฐํ™”, RAG ๊ธฐ๋ฐ˜ AI Insights, OPA Rego ํ‰๊ฐ€, CI ํŒจํ‚ค์ง€๋กœ ํ™•์žฅํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“– ์ž์„ธํ•œ ์ด์•ผ๊ธฐ๋Š” โ†’ docs/ABOUT.md
๐Ÿ› ๏ธ ์„ค์น˜ยท์šด์˜ ๊ฐ€์ด๋“œ โ†’ docs/SETUP.md

In English: a vendor-neutral, self-service DevSecOps platform that consolidates asset inventory, scanning, AI-triaged findings, IAM access requests, policy simulation, and regulation mapping into a single flow. Bring your own scanners (Trivy/Semgrep/Nuclei/...), your own AI provider (Anthropic/OpenAI/Bedrock/Ollama), your own IdP (Keycloak/Okta/Google). See docs/ABOUT.md and docs/SETUP.md.


โšก ์‹œ์ž‘ํ•˜๊ธฐ ยท Get started

๐Ÿณ Docker Compose โ€” 30์ดˆ ๋ฐ๋ชจ (๋กœ์ปฌยทํ‰๊ฐ€์šฉ)

git clone https://github.com/jland-93/mond.git && cd mond
cp .env.example .env
# (์„ ํƒ) ANTHROPIC_API_KEY๋ฅผ .env์— ๋„ฃ์œผ๋ฉด ์‹ค์ œ Claude ๋ถ„์„์ด ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.
docker compose up -d
  • ํ”„๋ก ํŠธ โ†’ http://localhost:3000
  • ๋ฐฑ์—”๋“œ docs โ†’ http://localhost:8000/docs
  • ์ฒซ ๊ฐ€์ž…์ž๊ฐ€ ์ž๋™ ADMIN. MFA(ํŒจ์Šคํ‚ค or TOTP) 1ํšŒ ๋“ฑ๋ก ํ›„ ์ง„์ž….

โ›ต Helm chart โ€” ์šด์˜ ๋ฐฐํฌ (Kubernetes)

OCI ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์— ์ž๋™ ๋ฐฐํฌ๋˜๋Š” ์ฐจํŠธ๋กœ ํ•œ ์ค„ ์„ค์น˜:

helm install mond oci://ghcr.io/jland-93/charts/mond \
  --version 0.1.0 \
  -n mond --create-namespace \
  -f charts/mond/values-prod.yaml \
  --set ingress.hosts[0].host=mond.your-corp.com \
  --set secrets.existingSecret=mond-secrets
  • ์ฐจํŠธ ์†Œ์Šค โ†’ charts/mond/ (values.yaml ยท values-prod.yaml)
  • ์ž๋™ ๋ฐฐํฌ โ†’ ํƒœ๊ทธ push ์‹œ .github/workflows/release.yml helm job
  • ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€ โ†’ ghcr.io/jland-93/mond-backend:<ver> ยท โ€ฆ-frontend:<ver> (multi-arch amd64/arm64)
  • EKS / GKE / AKS ๊ถŒ์žฅ ์„ค์ • ยท ์‹œํฌ๋ฆฟ ๊ด€๋ฆฌ(External-Secrets) โ†’ docs/SETUP.md Part 2

๐Ÿ› ๏ธ SSO ยท MFA ยท AI provider ์ „ํ™˜ ยท ๊ด€๋ฆฌ์ž ์ดˆ๊ธฐ ์„ธํŒ… โ†’ docs/SETUP.md


๐Ÿ“‹ Overview

Mond (๋…์ผ์–ด๋กœ "๋‹ฌ")์€ ์–ด๋–ค ํด๋ผ์šฐ๋“œ๋“  ์–ด๋–ค ์Šค์บ๋„ˆ๋“  ์ƒ๊ด€์—†์ด ๋™์ž‘ํ•˜๋Š”, AI ๊ธฐ๋ฐ˜ ์…€ํ”„์„œ๋น„์Šค DevSecOps ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค. ์ž์‚ฐ / ์Šค์บ” / ๋ฐœ๊ฒฌ์‚ฌํ•ญ / ์ •์ฑ…์„ ๋‹จ์ผ ๋ชจ๋ธ๋กœ ๋‹ค๋ฃจ๊ณ , Claude๋ฅผ ํ™œ์šฉํ•ด ๋ฐœ๊ฒฌ๋œ ์ด์Šˆ๋ฅผ ์ž๋™ ํŠธ๋ฆฌ์•„์ง€ ํ•˜๊ณ  ์ˆ˜์ • ๊ฐ€์ด๋“œ๊นŒ์ง€ ์ œ์‹œํ•ฉ๋‹ˆ๋‹ค.

๐ŸŽฏ Why Mond?

  • ๋ฒค๋” ๋น„์ข…์† โ€” Trivy / Semgrep / Nuclei๋ฅผ ์–ด๋Œ‘ํ„ฐ๋กœ ํ†ตํ•ฉ. AWS / ํŠน์ • ํด๋ผ์šฐ๋“œ์— ๋ฌถ์ด์ง€ ์•Š์Œ.
  • AI ์…€ํ”„์„œ๋น„์Šค โ€” Claude๊ฐ€ ๋ฐœ๊ฒฌ์‚ฌํ•ญ์„ ๋ถ„์„ํ•ด severity ์žฌํ‰๊ฐ€, ์ˆ˜์ • ์ฝ”๋“œ ์ œ์•ˆ, ์ž์—ฐ์–ด ์ฟผ๋ฆฌ ์‘๋‹ต.
  • ์ฆ‰์‹œ ์‚ฌ์šฉ โ€” docker compose up ํ•œ ์ค„. ์Šค์บ๋„ˆ ๋ฐ”์ด๋„ˆ๋ฆฌ๊ฐ€ ์—†์œผ๋ฉด stub ๋ชจ๋“œ๋กœ UI ๋ฐ๋ชจ.
  • ๋ชจ๋“ˆ์‹ โ€” ์ƒˆ ์Šค์บ๋„ˆ๋Š” ScannerAdapter ํ•œ ํด๋ž˜์Šค๋กœ ์ถ”๊ฐ€.
  • Mond ๋‹คํฌ ํ…Œ๋งˆ โ€” ๊ฐ€๋…์„ฑ ๋†’์€ ๋‹ฌ๋น› ๋ฌด๋“œ (๋‹คํฌ ๋„ค์ด๋น„ + ๋ณด๋ผ ๊ธ€๋กœ์šฐ).

โœจ ํ•ต์‹ฌ ๊ธฐ๋Šฅ

๋ฉ”๋‰ด ๊ธฐ๋Šฅ
Dashboard ๋ณด์•ˆ ์ ์ˆ˜, ์ž์‚ฐ/๋ฐœ๊ฒฌ ํ†ต๊ณ„, ์ตœ๊ทผ ์Šค์บ”
Assets ์ž์‚ฐ ์ธ๋ฒคํ† ๋ฆฌ (repo / image / host / URL / cloud / app)
Scans ์Šค์บ” ํŠธ๋ฆฌ๊ฑฐ + ์–ด๋Œ‘ํ„ฐ๋ณ„ ์‹คํ–‰ ์ด๋ ฅ
Findings ๋ฐœ๊ฒฌ์‚ฌํ•ญ ์กฐํšŒ/์ƒํƒœ ๋ณ€๊ฒฝ + AI ๋ถ„์„ ๋“œ๋กœ์–ด
Policies SAST / SCA / IaC / DAST / Container / Secrets / Compliance ๋ฃฐ์…‹
Policy Simulation "์ด๋ฒˆ PR์— ์ด finding์ด ๋“ค์–ด๊ฐ€๋ฉด ์–ด๋–ค ์ •์ฑ…์ด ๊นจ์งˆ๊นŒ" ๋ฏธ๋ฆฌ๋ณด๊ธฐ
AI Insights ์ž์—ฐ์–ด ์ฟผ๋ฆฌ, intent ๋ถ„๋ฅ˜, Claude ๋‹ต๋ณ€
Regulations Guide ์‚ฌ์—… ์‹œ๋‚˜๋ฆฌ์˜ค โ†’ ์ ์šฉ ๊ทœ์ œ(K-PIPAยทGDPRยทHIPAAยทPCI-DSSยทโ€ฆ) + ์‹œ์ ยท์˜๋ฌด
Reports ์ž์‚ฐ๋ณ„ SBOM(CycloneDX-lite) + ์‹œ๋‚˜๋ฆฌ์˜ค๋ณ„ ์ปดํ”Œ๋ผ์ด์–ธ์Šค ๋ฆฌํฌํŠธ (JSON / Markdown)
Integrations ์Šค์บ๋„ˆ / AI / MCP (stdio+HTTP) / ์•Œ๋ฆผ ์ฑ„๋„ / GitHub Webhook ์•ˆ๋‚ด
Settings ํ—ฌ์Šค / ๋ฒ„์ „ / ํ™˜๊ฒฝ / ์–ธ์–ด

ํ•œ๊ตญ์–ด ๊ธฐ๋ณธ ยท ์˜์–ด ๋ณด์กฐ (i18n)

UI๋Š” ํ•œ๊ตญ์–ด๋ฅผ ๊ธฐ๋ณธ์œผ๋กœ ํ‘œ์‹œํ•˜๋ฉฐ, ์šฐ์ธก ์ƒ๋‹จ ํ† ๊ธ€๋กœ ์˜์–ด๋กœ ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
DEFAULT_LOCALE=ko|en๋กœ ์ดˆ๊ธฐ๊ฐ’์„ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๊ณ , ์„ ํƒ์€ ๋ธŒ๋ผ์šฐ์ € localStorage์— ์ง€์†๋ฉ๋‹ˆ๋‹ค.

์…€ํ”„์„œ๋น„์Šค ์ž๋™ํ™”

๊ธฐ๋Šฅ ๋ฐฉ์‹
์ž๋™ ์Šค์บ” (GitHub push) POST /api/v1/webhooks/github โ†’ ๋งค์นญ ๋ ˆํฌ ์ž์‚ฐ ์ž๋™ trivy ์Šค์บ”
Slack/Generic ์•Œ๋ฆผ ์ž„๊ณ„์น˜ ์ด์ƒ finding์„ ENV์˜ Webhook URL๋กœ ์ž๋™ ์ „์†ก
MCP โ€” Claude Desktop/Code stdio: python -m mcp_server. HTTP+SSE: /mcp ๋งˆ์šดํŠธ

๐Ÿ—๏ธ ์•„ํ‚คํ…์ฒ˜

graph LR
    UI[Web UI<br/>React + Vite + Ant Design]
    API[REST API<br/>FastAPI + asyncpg]
    AI[AI Engine<br/>Anthropic Claude]
    SCAN[Scanner Adapters<br/>Trivy ยท Semgrep ยท Nuclei]
    DB[(PostgreSQL)]
    R[(Redis)]

    UI -->|/api/v1| API
    API --> DB
    API --> R
    API --> AI
    API --> SCAN

5๊ฐœ ํ•ต์‹ฌ ๋„๋ฉ”์ธ: Asset ยท Scan ยท Finding ยท Policy ยท AIInsight

  • Asset โ€” ๋ณดํ˜ธ ๋Œ€์ƒ (URI + ๋ผ๋ฒจ + ํ™˜๊ฒฝ)
  • Scan โ€” ์–ด๋Œ‘ํ„ฐ 1ํšŒ ์‹คํ–‰ ๊ฒฐ๊ณผ
  • Finding โ€” fingerprint ๊ธฐ๋ฐ˜ dedup๋œ ๋ณด์•ˆ ์ด์Šˆ
  • Policy โ€” ๋ฃฐ์…‹ + ์ปดํ”Œ๋ผ์ด์–ธ์Šค ๋งคํ•‘
  • AIInsight โ€” Claude๊ฐ€ ๋งŒ๋“  triage / remediation / explain

๐Ÿš€ Quick Start

์‚ฌ์ „ ์š”๊ตฌ์‚ฌํ•ญ

  • Docker & Docker Compose
  • (์„ ํƒ) ANTHROPIC_API_KEY โ€” ์—†์–ด๋„ ๊ธฐ๋ณธ ๊ทœ์น™ ๋ชจ๋“œ๋กœ ๋ชจ๋“  ํ™”๋ฉด์ด ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.

์‹คํ–‰

git clone https://github.com/jland-93/mond.git
cd mond
cp .env.example .env
# .env์— ANTHROPIC_API_KEY๋ฅผ ๋„ฃ์œผ๋ฉด ์‹ค์ œ Claude ๋ถ„์„์ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
docker compose up -d

์ฒซ ๋ถ€ํŒ… ์‹œ ๋ฐ๋ชจ ์ž์‚ฐ 3๊ฐœ(๋ ˆํฌ / ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€ / URL)์™€ ์ •์ฑ… 3๊ฐœ๊ฐ€ ์ž๋™ ์‹œ๋“œ๋ฉ๋‹ˆ๋‹ค.

์ฒซ ADMIN ๋กœ๊ทธ์ธ โ€” ๋ง‰ํž˜ ๋ฐฉ์ง€ ๊ฐ€์ด๋“œ

/login ํ™”๋ฉด์— ์ด๋ฉ”์ผ์„ ์ž…๋ ฅํ•ด ์ฒซ ๋กœ๊ทธ์ธํ•˜๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ž๋™์œผ๋กœ ADMIN์œผ๋กœ ๊ฐ€์ž…๋ฉ๋‹ˆ๋‹ค.
ADMIN์€ ๊ธฐ๋ณธ MFA_REQUIRED_ROLES=admin,reviewer ์ •์ฑ…์— ๋”ฐ๋ผ ์ฆ‰์‹œ /mfa๋กœ ์ด๋™ํ•˜๋ฉฐ,
ํŒจ์Šคํ‚ค ๋˜๋Š” TOTP ์ค‘ ํ•˜๋‚˜๋ฅผ ์ธ๋ผ์ธ์œผ๋กœ ๋“ฑ๋กํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํ™˜๊ฒฝ ๋“ฑ๋ก ๊ฐ€๋Šฅ ์ˆ˜๋‹จ
http://localhost:3000 ํŒจ์Šคํ‚ค(๋ธŒ๋ผ์šฐ์ € ์ƒ์ฒด์ธ์ฆ) + TOTP ๋ชจ๋‘ ๊ฐ€๋Šฅ
์‚ฌ๋‚ด IP / HTTP ๋„๋ฉ”์ธ (์˜ˆ: http://192.168.1.10:3000) ํŒจ์Šคํ‚ค๋Š” ๋ธŒ๋ผ์šฐ์ € ์ •์ฑ…์ƒ ์ฐจ๋‹จ โ€” TOTP๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š” (Google Authenticator ยท 1Password ยท Authy)
HTTPS ์šด์˜ ๋„๋ฉ”์ธ ๋‘˜ ๋‹ค ์ •์ƒ

๋งŒ์•ฝ ์ž ๊ฒผ๋‹ค๋ฉด โ€” ์šด์˜์ž ๋ณต๊ตฌ CLI

๋น„๋ฐ€๋ฒˆํ˜ธ ๋งค๋‹ˆ์ € ๋ถ„์‹ค ๋“ฑ์œผ๋กœ ๋ชจ๋“  MFA factor์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†๊ฒŒ ๋์„ ๋•Œ:

docker compose exec backend python -m scripts.admin_unlock [email protected]
# ๋˜๋Š” ํ™•์ธ ํ”„๋กฌํ”„ํŠธ ์—†์ด:
docker compose exec backend python -m scripts.admin_unlock [email protected] --yes

ํ•ด๋‹น ์‚ฌ์šฉ์ž์˜ ๋ชจ๋“  MFA factor (ํŒจ์Šคํ‚คยทTOTPยท๋ฐฑ์—…์ฝ”๋“œ)๊ฐ€ ์‚ญ์ œ๋˜๊ณ , ๋‹ค์Œ ํ™”๋ฉด์—์„œ
์ฒซ ๋“ฑ๋ก ํ™”๋ฉด์ด ๋‹ค์‹œ ๋ณด์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐยท์ž์‚ฐยท์ •์ฑ…์€ ๊ทธ๋Œ€๋กœ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.

MFA ๊ฐ•์ œ ์™„ํ™” (๊ฐœ๋ฐœ/๋ฐ๋ชจ ํ™˜๊ฒฝ)

๋ฐ๋ชจ ํ™˜๊ฒฝ์—์„œ MFA ๊ฐ•์ œ๋ฅผ ๋„๊ณ  ์‹ถ๋‹ค๋ฉด .env์—:

# ์•„๋ฌด๋„ ๊ฐ•์ œ ์•ˆ ํ•จ (์˜ต์…˜์œผ๋กœ๋งŒ)
MFA_REQUIRED_ROLES=
# ๋˜๋Š” ADMIN๋งŒ ๋นผ๊ธฐ
MFA_REQUIRED_ROLES=reviewer

์šด์˜์—์„œ๋Š” ๋ฐ˜๋“œ์‹œ admin,reviewer ์ด์ƒ ์œ ์ง€๋ฅผ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.

๋กœ์ปฌ ๊ฐœ๋ฐœ (๋„์ปค ์—†์ด)

# ๋ฐฑ์—”๋“œ
cd backend
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
DATABASE_URL=postgresql+asyncpg://mond:mond@localhost:5432/mond \
  uvicorn main:app --reload

# ํ”„๋ก ํŠธ์—”๋“œ
cd frontend
npm install
npm run dev

์šด์˜ ๋ฐฐํฌ โ€” Kubernetes (Helm)

ํƒœ๊ทธ๊ฐ€ ํ‘ธ์‹œ๋˜๋ฉด ghcr.io์— mond-backend/mond-frontend ์ด๋ฏธ์ง€์™€ OCI Helm ์ฐจํŠธ๊ฐ€ ์ž๋™ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค.

# 1) ์‹œํฌ๋ฆฟ ๋ฏธ๋ฆฌ ์ƒ์„ฑ (External-Secrets/Sealed-Secrets๋กœ ๋Œ€์ฒด ๊ฐ€๋Šฅ)
kubectl create ns mond
kubectl -n mond create secret generic mond-secrets \
  --from-literal=SECRET_KEY="$(python -c 'import secrets;print(secrets.token_urlsafe(48))')" \
  --from-literal=ANTHROPIC_API_KEY="sk-ant-..." \
  --from-literal=SSO_PROVIDERS="keycloak" \
  --from-literal=SSO_KEYCLOAK_ISSUER="https://keycloak.your-corp.com/realms/mond" \
  --from-literal=SSO_KEYCLOAK_CLIENT_ID="mond" \
  --from-literal=SSO_KEYCLOAK_CLIENT_SECRET="..." \
  --from-literal=DATABASE_URL="postgresql+asyncpg://user:pwd@rds.../mond" \
  --from-literal=REDIS_URL="redis://elasticache.../0"

# 2) Helm ์„ค์น˜ (OCI ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ)
helm install mond oci://ghcr.io/jland-93/charts/mond \
  --version 0.1.0 \
  -n mond \
  -f charts/mond/values-prod.yaml \
  --set ingress.hosts[0].host=mond.your-corp.com

์ž์„ธํ•œ ์˜ต์…˜: charts/mond/values.yaml ยท charts/mond/values-prod.yaml

EKS ๊ฐ€์ด๋“œ

ํ•ญ๋ชฉ ๊ถŒ์žฅ
์ด๋ฏธ์ง€ ghcr.io/jland-93/mond-backend:<ver> ยท โ€ฆ-frontend:<ver> (multi-arch amd64/arm64)
DB / ์บ์‹œ RDS Postgres 16 + ElastiCache Redis (subchart postgresql.enabled=false)
Ingress AWS Load Balancer Controller (ingressClassName: alb + ACM)
์‹œํฌ๋ฆฟ External-Secrets Operator โ†’ AWS Secrets Manager / Parameter Store
์ปดํ“จํŠธ IRSA๋กœ serviceAccount.annotations์— IAM Role ARN ๋ถ€์—ฌ
๊ด€์ธก Prometheus ์Šคํฌ๋ ˆ์ดํ”„ โ€” backend ์ปจํ…Œ์ด๋„ˆ 8000/metrics

์šด์˜ ํ™˜๊ฒฝ(ENVIRONMENT=production)์—์„œ๋Š” ์•ฝํ•œ SECRET_KEY/DEBUG=true/AUTH_MODE=dev/SESSION_SECURE=false ์กฐํ•ฉ์„ ๋ถ€ํŒ… ๋‹จ๊ณ„์—์„œ ๊ฑฐ๋ถ€ํ•ฉ๋‹ˆ๋‹ค (backend/app/core/config.py).


๐Ÿค– AI ๋™์ž‘ ๋ฐฉ์‹

์ž๊ธฐ ํ™˜๊ฒฝ์˜ AI API๋ฅผ ์ง์ ‘ ๋Œ์–ด๋‹ค ์”๋‹ˆ๋‹ค. ๋ชจ๋“  provider๊ฐ€ ๊ฐ™์€ ์ถ”์ƒํ™” layer๋ฅผ ํ†ตํ•ด ํ˜ธ์ถœ๋˜๋ฉฐ, .env์—์„œ ํ•œ ์ค„๋กœ ์ „ํ™˜๋ฉ๋‹ˆ๋‹ค.

Provider ENV ๋ชจ๋ธ ์˜ˆ์‹œ ํ•œ๊ตญ์—์„œ ์˜๋ฏธ
Anthropic (์ง์ ‘) AI_PROVIDER=anthropic + ANTHROPIC_API_KEY claude-haiku-4-5-20251001 ๊ธฐ๋ณธ๊ฐ’
OpenAI / Azure OpenAI AI_PROVIDER=openai + OPENAI_API_KEY (+ OPENAI_BASE_URL for Azure) gpt-4o-mini / gpt-4o GPT ๋ผ์ด์„ ์Šค๊ฐ€ ์žˆ๋Š” ์กฐ์ง
AWS Bedrock AI_PROVIDER=bedrock + IAM ์ž๊ฒฉ anthropic.claude-3-5-sonnet-20241022-v2:0 AWS ๋น„์šฉยท์ •์ฑ… ํ†ตํ•ฉ
Ollama / vLLM (๋กœ์ปฌ) AI_PROVIDER=ollama + OLLAMA_BASE_URL llama3.1:8b / llama3.1:70b ํ์‡„๋งยท๊ธˆ์œตยท๊ณต๊ณตยท๋ณ‘์› โ€” ๋ฐ์ดํ„ฐ ์™ธ๋ถ€ ์œ ์ถœ ๊ธˆ์ง€ ์กฐ์ง

ํ‚ค๋ฅผ ์„ค์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ๊ธฐ๋ณธ ๊ทœ์น™ fallback์œผ๋กœ ๋ชจ๋“  UI๊ฐ€ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์‘๋‹ต์—๋Š” ํ•ญ์ƒ {provider}:{model} ๋ผ๋ฒจ์ด ํ•จ๊ป˜ ๊ธฐ๋ก๋˜์–ด ์ถœ์ฒ˜ ์ถ”์ ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

# ์˜ˆ) GPT๋ฅผ ์“ฐ๋Š” ์กฐ์ง
AI_PROVIDER=openai
OPENAI_API_KEY=sk-proj-...
OPENAI_MODEL_DEFAULT=gpt-4o-mini

# ์˜ˆ) ์‚ฌ๋‚ด ํ์‡„๋ง์—์„œ Ollama๋กœ
AI_PROVIDER=ollama
OLLAMA_BASE_URL=http://ollama.internal:11434
OLLAMA_MODEL_DEFAULT=llama3.1:8b

๐Ÿงฉ ์Šค์บ๋„ˆ ์–ด๋Œ‘ํ„ฐ

backend/app/scanners/์—์„œ ์ƒˆ ์–ด๋Œ‘ํ„ฐ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

class MyAdapter(ScannerAdapter):
    name = "my-tool"
    supported_asset_types = (AssetType.REPOSITORY.value,)

    async def scan(self, asset: Asset) -> ScanResult:
        ...
        return ScanResult(findings=[...], raw_output={...})

registry.py์— ํ•œ ์ค„ ๋“ฑ๋กํ•˜๋ฉด UI ๋ฉ”๋‰ด(Integrations) + ์Šค์บ” ํŠธ๋ฆฌ๊ฑฐ(Scans)์— ์ฆ‰์‹œ ๋…ธ์ถœ๋ฉ๋‹ˆ๋‹ค. ๋ฐ”์ด๋„ˆ๋ฆฌ๊ฐ€ ์—†์„ ๋•Œ๋Š” stub ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋„๋ก ๊ตฌํ˜„ํ•ด ์‚ฌ์šฉ์ž๊ฐ€ ๋นˆ ํ™”๋ฉด์„ ๋ณด์ง€ ์•Š๋„๋ก ํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ๋ณธ ๋™๋ด‰ ์–ด๋Œ‘ํ„ฐ:

  • Trivy โ€” ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€ / IaC / SBOM
  • Semgrep โ€” ์ •์  ์ฝ”๋“œ ๋ถ„์„ (SAST)
  • Nuclei โ€” ํ…œํ”Œ๋ฆฟ ๊ธฐ๋ฐ˜ ๋™์  ์Šค์บ” (DAST)

๐Ÿ—บ๏ธ ๋กœ๋“œ๋งต

  • 5๋„๋ฉ”์ธ + AI ํŠธ๋ฆฌ์•„์ง€ MVP
  • Trivy / Semgrep / Nuclei stub ์–ด๋Œ‘ํ„ฐ
  • ํ•œ๊ตญ์–ด/์˜์–ด i18n (ko ๊ธฐ๋ณธ ยท en ๋ณด์กฐ)
  • Regulations Guide (K-PIPA ยท ISMS-P ยท K-EFSA ยท CSAP ยท GDPR ยท HIPAA ยท PCI-DSS ยท SOC2 ยท ISO-27001 ยท COPPA ยท EU AI Act)
  • Policy Simulation (PR diff ๋ฏธ๋ฆฌ๋ณด๊ธฐ)
  • SBOM / Compliance ๋ฆฌํฌํŠธ (JSON ยท Markdown)
  • GitHub Webhook ์ž๋™ ์Šค์บ”
  • Slack / Generic Webhook ์•Œ๋ฆผ
  • MCP ์„œ๋ฒ„ (stdio + HTTP/SSE)
  • ๋ฉ€ํ‹ฐ์œ ์ € + RBAC + OIDC SSO (Keycloak ยท Okta ยท Google)
  • MFA โ€” ํŒจ์Šคํ‚ค(WebAuthn/FIDO2) + TOTP + ๋ฐฑ์—… ์ฝ”๋“œ
  • IAM ์…€ํ”„์„œ๋น„์Šค โ€” AWS ยท Kubernetes ยท LDAP/AD ยท GCP ยท Azure (5์ข… ์–ด๋Œ‘ํ„ฐ)
  • Helm ์ฐจํŠธ (charts/mond) + ์šด์˜์šฉ ๋ฉ€ํ‹ฐ์Šคํ…Œ์ด์ง€ Docker ์ด๋ฏธ์ง€
  • AI provider ์ถ”์ƒํ™” โ€” Anthropic ยท OpenAI ยท AWS Bedrock ยท Ollama(๋กœ์ปฌ)

v0.2 ๋กœ๋“œ๋งต

  • SBOM ์‹ค ์˜์กด์„ฑ ์ถ”์ถœ (package.json ยท go.mod ยท Dockerfile ํŒŒ์‹ฑ)
  • AI Insights RAG โ€” ์กฐ์ง ๋ฌธ์„œ/์ •์ฑ…์„ ๊ฒ€์ƒ‰ํ•ด ์‘๋‹ต ๊ทผ๊ฑฐํ™”
  • ๋น„๋™๊ธฐ ์Šค์บ” ํ (Celery) โ€” ์ธ๋ผ์ธ ์‹คํ–‰ ๋Œ€์ฒด
  • OPA Rego ์ •์ฑ… ํ‰๊ฐ€
  • ์ž์‚ฐ ์ž๋™ ๋™๊ธฐํ™” (Kubernetes / AWS Auto-scaling / GitHub org)
  • Webhook push ์ด๋ฒคํŠธ โ†’ diff ๋ถ„์„ ํ›„ ์ ์ ˆํ•œ ์Šค์บ๋„ˆ ์„ ํƒ
  • CI ํ†ตํ•ฉ ํŒจํ‚ค์ง€ (GitHub Actions / GitLab CI step)
  • Rate limiting / abuse protection
  • AI ํ”„๋กฌํ”„ํŠธ E2E ์•”ํ˜ธํ™” (๊ณ ๊ฐ ์ฝ”๋“œ ํฌํ•จ ์‹œ)
  • GCP / Azure IAM ์–ด๋Œ‘ํ„ฐ ๊ถŒํ•œ ๋ถ€์—ฌ(grant) ์™„์„ฑ๋„ ๋ณด๊ฐ•

๐Ÿงช Known Limitations (v0.1.0)

์‹ ๋ขฐ์„ฑ ์ธก๋ฉด์—์„œ ์ •์งํ•˜๊ฒŒ ๋ฐํ˜€๋‘ก๋‹ˆ๋‹ค.

  • SBOM โ€” ํ˜„์žฌ CycloneDX-lite stub. ์‹ค ์˜์กด์„ฑ ์ถ”์ถœ์€ v0.2 (UI์— experimental ๋ฐฐ์ง€ ํ‘œ์‹œ)
  • ์Šค์บ๋„ˆ โ€” ๋™๊ธฐ ์ธ๋ผ์ธ ์‹คํ–‰. ๋Œ€์šฉ๋Ÿ‰/์žฅ์‹œ๊ฐ„ ์Šค์บ”์€ ํƒ€์ž„์•„์›ƒ ์œ„ํ—˜. ํ ๋„์ž…์€ v0.2
  • AI Insights โ€” provider ํ˜ธ์ถœ์€ ๋™์ž‘ํ•˜์ง€๋งŒ ์‘๋‹ต์— RAG(์กฐ์ง ๋ฌธ์„œ ๊ฒ€์ƒ‰)๋Š” ๋ฏธ์ ์šฉ โ€” hallucination ์œ„ํ—˜์„ ์ธ์ง€ํ•˜๊ณ  ์ธ๊ฐ„ ๊ฒ€ํ† ์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ ๊ถŒ์žฅ. AI ์ƒ์„ฑ ์นด๋“œ๋Š” ADMIN ์ „์šฉ
  • IAM ์–ด๋Œ‘ํ„ฐ โ€” AWS ยท K8s ยท LDAP/AD๋Š” ๊ถŒํ•œ ๋ถ€์—ฌ/ํšŒ์ˆ˜ ์™„์„ฑ. GCP ยท Azure๋Š” ๋ณด๊ฐ• ์ค‘ (capability API๊ฐ€ ready/coming_soon/demo๋ฅผ ์ •์งํ•˜๊ฒŒ ๋…ธ์ถœ)
  • ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ์ง€ โ€” ์˜๋„์ ์œผ๋กœ ๋‚ฎ์Œ (MVP). ๊ธฐ์—ฌ ํ™˜์˜
  • ์ •์ฑ… ํ…œํ”Œ๋ฆฟ์˜ ๊ทœ์ œ ๋งคํ•‘ โ€” ์ฐธ๊ณ ์šฉ ์ถœ๋ฐœ์ ์ด๋ฉฐ ๋ฒ•์  ์ž๋ฌธ์ด ์•„๋‹™๋‹ˆ๋‹ค

๐Ÿค Contributing

CONTRIBUTING.md๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”. ์ƒˆ ์Šค์บ๋„ˆ ์–ด๋Œ‘ํ„ฐ, AI ํ”„๋กฌํ”„ํŠธ ๊ฐœ์„ , ์ •์ฑ… ์…‹ ์ถ”๊ฐ€ PR์„ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค.


๐Ÿ“„ License

MIT โ€” LICENSE


๐Ÿงญ ๋ฌธ์„œ ํ•œ๋ˆˆ์— ยท Doc Map

๋ฌธ์„œ ์–ด๋””์„œ๋“  ๋‹ค๋ฅธ ๊ณณ์œผ๋กœ ํ•œ ๋ฒˆ์— โ€” ์ฒ˜์Œ์ด๋ผ๋ฉด Setup โ†’ Part 0 ๋ถ€ํ„ฐ.

๋ฌธ์„œ ์œ„์น˜ ๋ฌด์—‡
๐Ÿ  ๋ฉ”์ธ README (์ด ๋ฌธ์„œ) /README.md ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ ยท ์Šคํฌ๋ฆฐ์ƒท ยท ๋น ๋ฅธ ์‹œ์ž‘
๐ŸŒ™ About docs/ABOUT.md ์™œ ๋งŒ๋“ค์—ˆ๋‚˜ ยท ๋ฌด์—‡์„ ํ‘ธ๋Š”๊ฐ€ ยท ๋กœ๋“œ๋งต
๐Ÿ› ๏ธ Setup docs/SETUP.md ์„ค์น˜ ยท ์šด์˜ ยท Part 0 โ€” ์‹œ๋‚˜๋ฆฌ์˜ค ์„ ํƒ
๐Ÿ—๏ธ Architecture docs/development/architecture.md ์‹œ์Šคํ…œ ๊ตฌ์กฐ ยท ๋ชจ๋“ˆ ยท ๋ฐ์ดํ„ฐ ํ๋ฆ„
๐ŸŽจ Brand Guidelines docs/assets/brand-guidelines.md ๋กœ๊ณ  ยท ์ปฌ๋Ÿฌ ยท ํƒ€์ดํฌ
๐Ÿค Contributing CONTRIBUTING.md ๊ธฐ์—ฌ ๊ฐ€์ด๋“œ ยท PR ๊ทœ์น™
๐Ÿ” Security Policy SECURITY.md ์ทจ์•ฝ์  ์‹ ๊ณ  ์ ˆ์ฐจ
๐Ÿ“œ Code of Conduct CODE_OF_CONDUCT.md ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ทœ๋ฒ”
๐Ÿ“‹ Changelog CHANGELOG.md ๋ฒ„์ „๋ณ„ ๋ณ€๊ฒฝ ๋‚ด์—ญ
โœ… Pre-release Checklist PRE_RELEASE_CHECKLIST.md ๋ฆด๋ฆฌ์ฆˆ ์ „ ์ ๊ฒ€ ํ•ญ๋ชฉ
๐Ÿ“ฆ Helm Chart charts/mond/ values.yaml ยท values-prod.yaml
๐Ÿณ Docker Compose docker-compose.yml ๋กœ์ปฌ ๋ฐ๋ชจ์šฉ
โš™๏ธ ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์˜ˆ์‹œ .env.example ๋ชจ๋“  ENV ํ‚ค + ์ฃผ์„

์‹œ๋‚˜๋ฆฌ์˜ค๋ณ„ ๋น ๋ฅธ ์ง„์ž…


๐ŸŒ™ Illuminating the path to secure DevOps

Yorumlar (0)

Sonuc bulunamadi