
# Savarankiškas AI Atitikties Asistento Sprendimas: RAG susitinka su vaidmenimis parektą prieigą, siekiant saugaus klausimynų automatizavimo

Spartų tempą turinčiame SaaS pasaulyje saugumo klausimynai, atitikties auditai ir tiekėjų vertinimai tapo įėjimo kontrolės ritualu. Įmonės, kurios gali greitai, tiksliai ir su aiškia audito takeliu atsakyti į šiuos prašymus, laimi sandorius, išlaiko klientus ir sumažina teisinę riziką. Tradiciniai rankiniai procesai – teksto kopijavimas, įrodymų paieška ir versijų patikrinimas – nebeatlaikomi.

Į šį procesą įsivelia **Savarankiškas AI Atitikties Asistento Sprendimas** (SSAIA). Sujungdama **Duomenų Išgavimą su Papildyta Generacija (RAG)** su **Vaidmenimis Paremtą Prieigą (RBAC)**, SSAIA suteikia galimybę visiems suinteresuotiems – saugumo inžinieriams, produktų vadovams, teisininkams ir net pardavimų atstovams – pasiekti reikiamus įrodymus, generuoti kontekstualiai pritaikytus atsakymus ir publikuoti juos laikantis atitikties reikalavimų, viskas vienoje bendradarbiavimo erdvėje.

Šiame straipsnyje aptarsime architektūrines pagrindas, duomenų srautus, saugumo garantijas ir praktinius žingsnius, kaip įdiegti SSAIA modernioje SaaS organizacijoje. Parodysime ir „Mermaid“ diagramą, iliustruojančią visą procesą, ir baigsime su konkrečiais patarimais.

---

## 1️⃣ Kodėl sujungti RAG ir RBAC?

| Aspektas | Duomenų Išgavimas su Papildyta Generacija (RAG) | Vaidmenimis Paremtą Prieigą (RBAC) |
|----------|-----------------------------------------------|-----------------------------------|
| **Pagrindinis tikslas** | Iš žinių bazės ištraukti svarbius fragmentus ir integruoti juos į AI‑generuojamą tekstą. | Užtikrinti, kad vartotojai matytų arba redaguotų tik duomenis, kuriems turi teisę. |
| **Nauda klausimynams** | Garantuoja, kad atsakymai grindžiami esamais, patikrintais įrodymais (politikos dokumentai, audito žurnalai, testų rezultatai). | Prevencija netyčiniam konfidencialios informacijos atskleidimui neautorizuotiems asmenims. |
| **Atitikties įtaka** | Palaiko įrodymais pagrįstus atsakymus, reikalaujami pagal [SOC 2](https://secureframe.com/hub/soc-2/what-is-soc-2), [ISO 27001](https://www.iso.org/standard/27001), [GDPR](https://gdpr.eu/) ir kt. | Suderinama su duomenų privatumo reglamentais, reikalaujančiais mažiausios teisės principo. |
| **Sinergija** | RAG teikia *ką*; RBAC valdo *kas* ir *kaip* turinys yra naudojamas. | Kartu suteikia **saugų, audituojamą ir kontekstualiai turtingą** atsakymų generavimo darbo eigą. |

Sujungimas pašalina du didžiausius skausmo punktus:

1. **Pasenę arba netinkami įrodymai** – RAG visada išrenka naujausią fragmentą, remiantis vektoriniais panašumais ir metaduomenų filtrais.  
2. **Žmogaus klaida duomenų atskleidime** – RBAC užtikrina, kad, pavyzdžiui, pardavimų atstovas galėtų gauti tik viešus politikos ištraukas, o saugumo inžinierius – vidinius įsilaužimų testų ataskaitas.

---

## 2️⃣ Architektūrinė apžvalga

Žemiau pateikiama aukšto lygio “Mermaid” diagrama, kurioje parodyti pagrindiniai komponentai ir duomenų srautai „Savarankiško AI Atitikties Asistento Sprendimo“.

```mermaid
flowchart TD
    subgraph UserLayer["User Interaction Layer"]
        UI[ "Web UI / Slack Bot" ]
        UI -->|Auth Request| Auth[ "Identity Provider (OIDC)" ]
    end

    subgraph AccessControl["RBAC Engine"]
        Auth -->|Issue JWT| JWT[ "Signed Token" ]
        JWT -->|Validate| RBAC[ "Policy Decision Point\n(PDP)" ]
        RBAC -->|Allow/Deny| Guard[ "Policy Enforcement Point\n(PEP)" ]
    end

    subgraph Retrieval["RAG Retrieval Engine"]
        Guard -->|Query| VectorDB[ "Vector Store\n(FAISS / Pinecone)" ]
        Guard -->|Metadata Filter| MetaDB[ "Metadata DB\n(Postgres)" ]
        VectorDB -->|TopK Docs| Docs[ "Relevant Document Chunks" ]
    end

    subgraph Generation["LLM Generation Service"]
        Docs -->|Context| LLM[ "Large Language Model\n(Claude‑3, GPT‑4o)" ]
        LLM -->|Answer| Draft[ "Draft Answer" ]
    end

    subgraph Auditing["Audit & Versioning"]
        Draft -->|Log| AuditLog[ "Immutable Log\n(ChronicleDB)" ]
        Draft -->|Store| Answers[ "Answer Store\n(Encrypted S3)" ]
    end

    UI -->|Submit Questionnaire| Query[ "Questionnaire Prompt" ]
    Query --> Guard
    Guard --> Retrieval
    Retrieval --> Generation
    Generation --> Auditing
    Auditing -->|Render| UI
```

**Svarbiausi elementai:**

* **Identity Provider (IdP)** autentifikuoja vartotojus ir išduoda JWT su vaidmenų teiginiais.  
* **Policy Decision Point (PDP)** vertina šiuos teiginius pagal leidimų matricą (pvz., *Skaityti viešą politiką*, *Pridėti vidinius įrodymus*).  
* **Policy Enforcement Point (PEP)** filtruojant kiekvieną užklausą į duomenų išgavimo variklį, užtikrina, kad tik įgalioti įrodymai būtų grąžinti.  
* **VectorDB** saugo įrodymų įterpimus, o **MetaDB** – struktūriškus atributus, pvz., konfidencialumo lygį, paskutinio peržiūros datą ir atsakingą asmenį.  
* **LLM** gauna pasirinktą dokumentų fragmentų rinkinį ir klausimo tekstą, generuodama atsakymą, kuris yra **sekmės pėdsakus** galintį atsekti iki šaltinių.  
* **AuditLog** fiksuoja visas užklausas, vartotojus ir sugeneruotus atsakymus, leidžiant pilną forensinę peržiūrą.

---

## 3️⃣ Duomenų modeliavimas: Įrodymai kaip struktūruotos žinios

Patikimas SSAIA priklauso nuo gerai struktūruotos žinių bazės. Žemiau rekomenduojama įrodymo elemento schema:

```json
{
  "id": "evidence-12345",
  "title": "Quarterly Penetration Test Report – Q2 2025",
  "type": "Report",
  "confidentiality": "internal",
  "tags": ["penetration-test", "network", "critical"],
  "owner": "security-team@example.com",
  "created_at": "2025-06-15T08:30:00Z",
  "last_updated": "2025-09-20T12:45:00Z",
  "version": "v2.1",
  "file_uri": "s3://compliance-evidence/pt-q2-2025.pdf",
  "embedding": [0.12, -0.04, ...],
  "metadata": {
    "risk_score": 8,
    "controls_covered": ["A.12.5", "A.13.2"],
    "audit_status": "approved"
  }
}
```

* **confidentiality** valdo RBAC filtrus – tik vartotojai su `role: security-engineer` gali pasiekti `internal` įrodymus.  
* **embedding** maitina semantinę panašumo paiešką vektorinėje duomenų bazėje.  
* **metadata** leidžia atlikti *facet* paieškas, pvz., „rodyti tik įrodymus, patvirtintus ISO 27001, rizikos balas ≥ 7“.

---

## 4️⃣ Duomenų išgavimas ir papildyta generacija (RAG) procesas

1. **Vartotojas pateikia klausimyno elementą** – pvz., „Apibūdinkite duomenų šifravimą poilsio metu.“  
2. **RBAC apsauga patikrina vartotojo vaidmenį**. Jei tai *produktų vadovas* su viešų duomenų prieiga, apsauga apriboja paiešką iki `confidentiality = public`.  
3. **Vektorinė paieška** išrenka top‑k (dažniausiai 5‑7) semantiškai svarbiausius fragmentus.  
4. **Metaduomenų filtrai** dar labiau susiaurina rezultatus (pvz., tik `audit_status = approved`).  
5. **LLM gauna promptą**:  

   ```
   Question: Apibūdinkite duomenų šifravimą poilsio metu.
   Context:
   1. [Fragmentas iš Politikos A – šifravimo algoritmo detalės]
   2. [Fragmentas iš Architektūros Diagramos – raktų valdymo procesas]
   3. [...]
   Provide a concise, compliance‑ready answer. Cite sources using IDs.
   ```
6. **Generavimas** sukuria projekcijos atsakymą su įterptomis citatomis: `Mūsų platforma duomenis poilsio metu šifruoja naudojant AES‑256‑GCM (Įrodymo ID: evidence‑9876). Raktų rotacija vyksta kas 90 dienų (Įrodymo ID: evidence‑12345).`  
7. **Žmogaus peržiūra** (nebūtinai) – vartotojas gali redaguoti ir patvirtinti. Visi redagavimai yra versijuojami.  
8. **Atsakymas saugomas** šifruotame **Answer Store**, o nekeičiama audito įraša įrašoma.

---

## 5️⃣ Vaidmenimis Paremtos Prieigos detalumas

| Rolė | Leidimai | Tipinis naudojimo atvejis |
|------|----------|---------------------------|
| **Saugumo inžinierius** | Skaityti/rašyti visus įrodymus, generuoti atsakymus, patvirtinti juodraščius | Gilinimasis į vidinius kontrolės įrodymus, pridėti penetracijos testų ataskaitas |
| **Produkto vadovas** | Skaityti viešas politikas, generuoti atsakymus (ribojant prieigą prie viešų įrodymų) | Paruošti rinkodaros orientuotas atitikties deklaracijas |
| **Teisininkas** | Skaityti visus įrodymus, anotuoti teisines implikacijas | Užtikrinti, kad reglamentų kalba atitiktų jurisdikciją |
| **Pardavimų atstovas** | Skaityti tik **viešus** atsakymus, prašyti naujų projekcijų | Greitai atsakyti į potencialių klientų RFP |
| **Auditorius** | Skaityti visus įrodymus, bet negali redaguoti | Atlikti trečiųjų šalių įvertinimus |

Smulkios teisės gali būti išreikštos **OPA (Open Policy Agent)** politikomis, leidžiančiomis dinaminį vertinimą pagal užklausos atributus, pvz., *klausimo žymą* ar *įrodymo rizikos balą*. Pvz., pavyzdinė politika (JSON):

```json
{
  "allow": true,
  "input": {
    "role": "product-manager",
    "evidence_confidentiality": "public",
    "question_tags": ["encryption", "privacy"]
  },
  "output": {
    "reason": "Access granted: role matches confidentiality level."
  }
}
```

---

## 6️⃣ Audito takas ir atitikties privalumai

Audituojama organizacija turi atsakyti į tris audito klausimus:

1. **Kas prieigos prie įrodymo?** – JWT teiginių žurnalas `AuditLog`.  
2. **Kokie įrodymai buvo naudoti?** – Citatos (`Evidence ID`) įterptos į atsakymą ir saugomos kartu su juodraščiu.  
3. **Kada atsakymas buvo sugeneruotas?** – Nekeičiamos laiko žymės (ISO 8601) saugomos rašomoje laidoje (pvz., Amazon QLDB arba blokų grandinės saugykloje).

Šie įrašai gali būti eksportuoti **SOC 2**‑suderinamame CSV formate arba panaudoti **GraphQL** API integracijai su išoriniais atitikties valdymo skydeliais.

---

## 7️⃣ Įgyvendinimo planas

| Etapas | Svarbiausi įvykiai | Laiko vertinimas |
|--------|-------------------|------------------|
| **1. Pagrindai** | Nustatyti IdP (Okta), apibrėžti RBAC matricą, paskirstyti VectorDB ir Postgres | 2 sav. |
| **2. Žinių bazės įkėlimas** | Sukurti ETL kanalą PDF, markdown, skaičiuoklių parsiuntimui → įterpimai + metaduomenys | 3 sav. |
| **3. RAG servisas** | Diegti LLM (Claude‑3) privačiame galinėje dalyje, įgyvendinti promptų šablonus | 2 sav. |
| **4. UI ir integracijos** | Sukurti Web UI, Slack bot, API jungtis prie esamų ticketing sistemų (Jira, ServiceNow) | 4 sav. |
| **5. Auditas ir ataskaitos** | Įdiegti nekeičiama audito žurnalą, versijų valdymą, eksportavimo jungtis | 2 sav. |
| **6. Pilotinis testavimas** | Testuoti su saugumo komanda, surinkti metrikas (atsakymo laikas, klaidų procentas) | 4 sav. |
| **7. Organizacinis išskleidimas** | Plėsti RBAC rolės, apmokyti pardavimų ir produktų komandas, paskelbti dokumentaciją | Nuolat |

Svarbiausi našumo rodikliai (KPI):

* **Vidutinis atsakymo laikas** – tikslas < 5 min.  
* **Įrodymų pakartotinis naudojimas** – % atsakymų, cituojančių esamus įrodymus (tikslas > 80 %).  
* **Atitikties incidentų skaičius** – auditorijos rastų klaidų skaičius (tikslas 0).  

---

## 8️⃣ Realiosios situacijos pavyzdys: Atsakymo laiko sumažinimas nuo dienų iki minučių

**Įmonė X** susidūrė su **30‑dienų vidutiniu** laikotarpiu atsakant į **ISO 27001** audito klausimynus. Įdiegus SSAIA rezultatai:

| Metrička | Prieš SSAIA | Po SSAIA |
|----------|--------------|----------|
| Vidutinis atsakymo laikas | 72 val. | 4 min. |
| Rankinių kopijavimo klaidų skaičius | 12 per mėn. | 0 |
| Įrodymų versijų neatitikimų atvejai | 8 | 0 |
| Auditorių pasitenkinimo balas | 3,2 / 5 | 4,8 / 5 |

ROI skaičiavimas parodė **230 000 USD metinių** santaupų dėl sumažinto darbo laiko ir greitesnių sandorių užbaigimo.

---

## 9️⃣ Saugumo apsvarstymų ir sustiprinimo

1. **Zero‑Trust tinklas** – Visos paslaugos viduje privačiame VPC, reikalaujama abipusės TLS autentifikacijos.  
2. **Šifravimas poilsio metu** – SSE‑KMS S3 kibirams, stulpelinė šifravimo PostgreSQL.  
3. **Promptų injekcijos prevencija** – Naudoti vartotojo įvesties sanitarizavimą, apriboti tokenų ilgį, pridėti fiksuotus sistemos promptus.  
4. **Ribojimas (Rate Limiting)** – Apsaugoti LLM galinę prieigą naudojant API vartų reguliavimą.  
5. **Nuolatinė stebėsena** – Įjungti CloudTrail įrašus, naudoti anomalijų aptikimo sistemą autentifikacijos modeliams.

---

## 🔟 Ateities patobulinimai

* **Federacinis mokymas** – Apmokyti vietinį, įmonės specifinį LLM be duomenų siuntimo išorės tiekėjams.  
* **Skirtinis privatumas** – Pridėti triukšmą į įterpimus, apsaugant konfidencialius įrodymus, išlaikant išgavimo kokybę.  
* **Daugiakalbis RAG** – Automatiškai versti įrodymus globalioms komandoms, išlaikant citatų sekimą.  
* **Paaiškinamasis AI** – Rodyti kilmės grafą, susiejantį kiekvieną atsakymo žetoną su šaltinio fragmentu, palengvinant auditoriją.

---

## 📚 Pagrindinės išvados

* **Saugus, audituojamas automatizavimas** yra įmanomas sujungiant RAG galios kontekstą su RBAC griežtą prieigos valdymą.  
* **Struktūruota įrodymų saugykla** – su įterpimais, metaduomenimis ir versijavimu – yra pagrindas.  
* **Žmogaus priežiūra** tebėra būtina; asistentas turėtų **rekomenduoti**, o ne **nustatyti** galutinius atsakymus.  
* **Matuojamas diegimas** užtikrina matomą ROI ir atitikties pasitikėjimą.

Investuojant į Savarankišką AI Atitikties Asistento Sprendimą, SaaS įmonės gali paversti tradicinį darbo našumo našta į strateginį pranašumą – greitesnius, tikslesnius klausimynų atsakymus, išlaikant aukščiausius saugumo standartus.

---

## <span class='highlight-content'>Žiūrėti</span> Also

- [Retrieval‑Augmented Generation: The Next Frontier for Enterprise AI](https://arxiv.org/abs/2005.11401)  
- [Open Policy Agent (OPA) – Policy‑as‑Code for RBAC](https://www.openpolicyagent.org)  
- [Zero‑Trust Architecture for Cloud‑Native Applications](https://www.nist.gov/publications/zero-trust-architecture)