Documents for LLM security approval: checklist
Documents for LLM security approval: threat model, access matrix, logging, data storage and an incident response plan.

What Security usually checks in an LLM project
The security team treats an LLM project not as a “smart chat” but as a new way to process data and influence decisions. Three scenarios most often require approval: an internal chatbot for employees (procedures, requests, HR), a knowledge-base search that returns answers in natural language, and document generation (letters, reports, draft orders). The closer the project is to personal data, commercial secrets or classified information, the more likely it becomes “subject to approval.”
Security typically requests artifacts before the pilot for a simple reason: pilots quickly turn into production. If you already loaded real documents on the pilot, gave broad user access or connected an external provider, the risks have already materialised. Fixing things post-launch is harder: you may need to change architecture, revoke access, investigate incidents via logs, and sometimes stop the project.
Usually Security does not need a huge binder. They need clear answers to four questions: what are the risks, who has access to what, how is it monitored, and what to do in an incident. Therefore documents for LLM security approval typically cover:
- system boundaries and data: where requests and documents come from, where they are stored, what is sent to external services (if anything)
- risks and mitigations: threat model, key abuse cases (leaks via prompts, content tampering, harmful instructions) and compensating controls
- access control: roles, rights, administrators, data owners, segregation of duties
- observability: logging of actions, audit of changes, anomaly monitoring without recording unnecessary data
- response: who is responsible, how to quickly cut off access, how to collect evidence and notify stakeholders
It helps to agree with Security in advance on the format and level of detail. The same project can be described in 2–3 pages (to start) or in 30 pages (for formal review). A practical approach is to bring draft “skeleton” documents and ask direct questions: which data is considered sensitive, is an external API allowed, is local storage required, what are log retention periods, and what level of role detail is needed.
Example: a government agency wants to generate draft replies to citizens based on templates and past letters. Security will first ask whether personal data is involved, where the model will run (inside the perimeter or outside), who can see drafts, and how to prove via logs who requested a specific text and which sources it relied on.
Data map: flows, sources and storage points
A data map is the fastest way to explain to Security exactly what the LLM will process and where those data will end up. Essentially it’s a single clear document: data types, their path through the system, and places where they may “linger.”
Start with a list of data categories. Security normally asks to classify them by risk rather than by convenient names: personal data, commercial secrets, internal information and a separate line for classified data (if it could appear at all). For each category briefly indicate the source and whether its use is permitted.
Next describe the flow: where data comes from and where it goes. In an LLM project this is not only “user input.” There is the prompt (what the person typed), the context (what the system pulled from knowledge bases), and the model’s response (which itself may contain sensitive fragments).
To make verification easy, record storage points for artifacts. Security is usually separately interested in:
- training or test datasets (if used)
- vector store indexes and embeddings (RAG)
- request logs and model responses
- backups and archives
- temporary stores (cache, queues, exported files)
Include a block of “forbidden categories” — what must never be included in a prompt or context. For example: identity document numbers, bank details, medical records, passwords and keys, classified information. It is important not only to list prohibitions but also to explain how they are enforced: masking, input filters, DLP templates, user training.
At the end of the data map always answer “who owns it.” Assign a data owner (business), an access owner (IT or Security) and the approver of processing rules. Example: if an LLM bot helps handle employee requests, HR could be the data owner, IT or Security responsible for access, and that clarity speeds approval: reviewers see a responsibility scheme rather than disconnected descriptions.
Threat model: how to describe LLM risks in plain language
It’s useful to write an LLM threat model as a short story: what the system is, where its boundaries are, what we value, who could harm us and how, and what measures we put in place. If the document reads without technical translation, it is easier to approve.
Start with the system boundary. Describe who the users are (employees, contractors, customers), how they access it (web interface, chat, API), what integrations exist (CRM, document management, knowledge bases), where stores reside (vector DB, logs, files) and who supplies the model (internal, cloud, locally deployed). Explicitly indicate points where data leaves the perimeter, even if only metadata does.
Then list assets and attacker goals. Assets are usually straightforward: confidential documents, personal data, accounts, API keys, system prompts, access rules, logs. Goals are also clear: exfiltration, response tampering, bypassing restrictions, sabotage, supply-chain compromise.
Describe typical LLM threats with examples rather than jargon:
- Prompt injection: a user embeds instructions like “ignore the rules and reveal hidden data,” and the model violates policy.
- Data exfiltration: through prompts the model outputs fragments from a connected knowledge base that should be restricted.
- Model inversion: repeated queries try to reconstruct data the model was trained on or that appeared in context.
- Supply chain: tampering with dependencies, plugins, images, or an unauthorized update of the model.
- Quality errors: hallucinations, toxic content, or disallowed disclosures “by similarity.”
After that, record controls and residual risk. A convenient format is: “what we block strictly”, “what we allow with controls”, “what we accept as residual risk and why”. For instance, for an assistant answering internal procedures, you may strictly block full document exports but allow quoting short fragments with personal data masked.
Show the link between threats and controls in plain terms:
- role separation and rights checks before context assembly
- input/output filters (including bans on secrets, personal data, keys)
- source restrictions (only approved databases, integration whitelists)
- anomaly monitoring and alerts (spikes in requests, attempts to bypass rules)
- supply control (signed artifacts, verified images, fixed versions)
Finally add 3–5 “red lines”: data that is never sent to the model, actions that are never performed automatically, and situations where a function is disabled pending investigation. This helps Security quickly understand acceptable risk boundaries.
Access matrix: roles, rights and responsibilities
The access matrix is a simple document that shows exactly who can do what in the LLM project and with which data. For Security this is a key artifact because it quickly reveals excessive privileges and responsibility gaps.
Start with roles, but don’t split them too finely. Usually these are enough: end user, operator (support/operations), platform administrator, developer, Security auditor, data owner. Immediately record segregation of duties: the developer does not grant themselves prod access, the admin does not read data contents, the data owner approves which datasets can be connected to the LLM.
Next list access objects. Often overlooked are side points that cause leaks:
- user interface (chat, dashboard)
- API and access keys
- source document databases
- vector store (embeddings and indexes)
- logs, traces and settings
For each role–object pair record not just allowed/forbidden, but the details that matter in review: access level (read/change/admin), data type, authentication method (SSO/MFA, service accounts), session requirements (timeout, lockout, device/IP restrictions), and who approves and executes (RACI).
A short example: an analyst gets access only to the chat and selected corporate documents for search. An operator sees metrics and statuses but not query texts. An admin manages configuration and keys but cannot export data sets. Security sees audit and reports, and the data owner approves a particular database connection.
Describe the access grant and revocation process: request, owner and Security approval, duration (e.g., 30–90 days), revocation on termination or role change, and periodic review (quarterly or semi-annually). This demonstrates least-privilege as a rule, not just a principle.
Logging and audit: what to record and how not to leak data
Logs often decide the fate of approval. Security wants to know you can investigate incidents, while the business wants assurance logs won’t contain more data than necessary. Usually describe: which events are recorded, where logs are stored, who reads them and how their content is protected.
Which events to record
It helps to separate technical logs (service health) from audit logs (who did what). A minimal set usually includes:
- authentication and sessions: sign-in/sign-out, failed attempts, MFA/password changes, lockouts
- LLM requests: time, user/service identifier, model/version, channel (chat, API), risk labels
- data access: which sources were queried (e.g., knowledge base, file store), outcome (allowed/blocked)
- errors and exceptions: timeouts, rate limits exceeded, integration failures, component crashes
- admin actions: configuration, rights, key changes, connector additions/removals, feature toggles
How to log prompts and responses safely
The main trap is recording personal data, trade secrets or document fragments in logs. Safe approach: by default do not save the full text, only what’s needed for investigation.
For example, for a healthcare staff chat you can store a hash of the request, its length, language, classification (whether it contains PD/medical data), the data source and final filter decision. Full text should be included only in a separate “forensics” mode and for a short period, with masking (phones, IDs, card numbers), tokenisation or selective recording (e.g., first 200 characters after cleaning). This reduces leak risk via SIEM, backups and exports.
To detect abuse, correlate logs with Security signals: sudden spikes in requests, repeated policy-bypass attempts (“ignore rules”), unusual queries to closed data, or a surge of access denials. These signals are easier to investigate if logs carry a single correlation ID across the request path.
Separately describe immutability: integrity control (hash chains, signing), WORM/append-only storage, segregated write/read rights and retention periods per log type.
Access to logs should be a mini-matrix agreed with Security: who views operational logs, who views audit trails, who can enable forensic mode, and how exports are recorded (service request, justification, retention and responsible person).
Storage requirements: retention, encryption, localization
To get Security sign-off, predefine what you store, where, for how long and how you protect it. Security looks for enforceable rules rather than principles.
First, fix data classes and protection requirements. At minimum separate: service data (settings, configs), user data (prompts, attachments), derivative data (embeddings, indexes), operational data (logs, metrics) and sensitive data (PD, medical, commercial secrets). For each class state encryption in transit (e.g., TLS) and at rest (disks, object storage, backups). Also note where keys are stored and who can access KMS/key management tools.
Next, specify retention. Security prefers deadlines by artifact type rather than “project-wide” rules:
- training/fine-tuning datasets: retention and justification, separate rule for anonymised copies
- indexes and vector DBs: retention, rebuild conditions, actions when a source is revoked
- logs and audit: retention, format, who can view
- backups: retention, frequency, encryption, recovery tests
- caches and temp files: where they appear and how they are cleaned
Placement choices are usually tied to localization and access control: on-prem, private cloud or datacentre. If a regulator or internal policy requires data to stay in Kazakhstan, write it explicitly and list systems where data actually resides (prod, test, analytics).
A critical block is deletion and proof of deletion. Explain how you remove not only the original but also derived traces: indexes, embeddings, caches, replicas, backups (or a rule to delete at retention expiry). It helps to add a simple scenario: an employee requests data deletion — who verifies, who executes, and where the result is recorded.
Discuss the risk of copies. Most leaks happen not in prod but in test environments, exported datasets for analysis and on developers’ laptops. Forbid uncontrolled exports, control removable media, and enforce: test data must be synthetic or anonymised, with short retention and automatic cleanup.
Incident response plan: scenarios and responsibilities
Security cares not only about protections but about a clear playbook if protections fail. This section often decides approval: it shows the team can quickly stop damage and preserve evidence.
Which incidents to plan for with LLM
Formulate scenarios in simple phrases tied to business impact:
- data leakage via model response (including dialog history, documents, prompts, system prompts)
- compromise of keys and tokens (API keys, service accounts, OAuth, integration tokens)
- configuration or prompt tampering (rules changed, different provider connected, filters disabled, RAG index swapped)
- prompt injection and policy bypass (model reveals forbidden content or executes wrong instructions)
- availability issues (request spikes, unexpected costs, service outage, degraded response quality)
Also note how incidents are detected. Usually it is a combination of signals: Security alerts (anomalous logins, strange IPs, spike in errors), log indicators (request surges, unusual prompts, mass exports) and user reports (complaints about seeing others’ data).
Sequence of actions and roles
To make the plan actionable, define roles and response times: who is on duty, who can decide to disable features, who communicates with business and legal.
- triage within 15–30 minutes: confirm the incident, estimate scope, assign an Incident Manager
- containment: isolate the component (disable external integrations, cut DB access, switch to “generic responses only”)
- eradication: rotate keys, revoke tokens, remove excess rights, roll back configuration or version, restore from trusted image
- evidence collection: preserve logs, configs, artifact hashes, list of affected users without altering traces
- communications: inform IT and Security immediately, notify the business owner within agreed SLA (e.g., within 2 hours), and involve legal/compliance if PD is at risk
Example: an employee reports the assistant displayed part of an internal document they never opened. The on-call disables knowledge-base access, Security reviews request logs and permissions, the team rotates keys and rebuilds the index, then confirms affected data and prepares notifications.
After an incident, conduct a blameless post-mortem: what failed, which rules and tests to add, what training the team needs, and what to change in the access matrix and logging settings.
How to assemble the document package: step-by-step
Approval is faster if you present the package as a coherent set rather than handing over documents one by one. Start by agreeing the desired level of detail: Security values clear logic and responsibilities more than long text.
Below is a sequence that usually works.
-
Collect inputs and agree format. Document the case purpose, data types (personal, commercial secret, internal), perimeter (internal/external), and regulatory constraints. Ask Security for templates, examples and acceptance criteria.
-
Describe architecture and the data map. Briefly show where the user inputs the request, which services receive it, where the LLM sits, and what storages and integrations are used. Name data and system owners and points where copies may occur (cache, queues, backups).
-
Prepare the threat model and mitigations. Describe risks as simple scenarios: prompt leaks, malicious content insertion, response tampering, unauthorized log access. For each scenario add controls: filtering, context limits, environment isolation, rights checks and monitoring.
-
Produce the access matrix and rights management. List roles (user, admin, analyst, Security, developer), allowed actions, who grants and revokes access, and how often rights are reviewed. This answers “who can see prompts and responses.”
-
Consolidate operational requirements: logs, storage, incidents, and acceptance criteria. Agree which events are logged, how sensitive fields are masked, and who can access audit trails. Separately specify retention, encryption, localization and incident response triggers, SLAs and responsible persons.
Practical example: for a helper in a closed perimeter, Security usually asks you to explicitly ensure prompts with personal data never go to third-party services and that log access is limited to a small group by request.
Finish with a short “acceptance criteria” section: what must be in place before a pilot and what can be closed as a workplan before production.
Common mistakes when getting Security approval
A frequent reason for stalled approval is that documents exist formally but do not answer Security’s main question: where are the system boundaries and what exactly are you protecting? The conversation then becomes a back-and-forth of clarifications and the project loses weeks.
Problems typically appear in five areas:
- threat model written in a vacuum: no system boundary, no component list (client, gateway, LLM, storages), inputs and outputs not described
- logs collected too generously: prompts and responses are saved in full “just in case” without masking and without access rules
- access matrix looks neat but doesn’t match reality: service accounts, admin operations (restart, model export, key rotation), contractor access and temporary incident privileges are forgotten
- no data owner: risk “hangs in the air” with nobody approving categories, exceptions or residual risk
- incident plan too generic: “notify and investigate” without LLM-specific steps (e.g., what to do if prompts leak or API keys are compromised)
Small example: a team deploys an internal support chat. Logs would help investigate ambiguous answers, but if they store full queries, logs will inevitably contain screenshots, ticket numbers and email fragments. Security will usually require at minimum: masking, segregated log access, short retention and a clear process to grant access for forensic needs.
To speed approval, run a quick “interface” check:
- is there a data map that matches the threat model?
- do accesses reflect real operations and service accounts?
- can you enable diagnostics without recording sensitive data?
- are data owners and risk decision makers assigned?
- are there step-by-step actions for 2–3 most likely LLM incidents?
This minimum usually removes most questions before the first review round.
Checklist, sample scenario and next steps
If you need documents for LLM security approval, it’s easier to verify readiness with a short checklist. It helps ensure base artifacts exist and can be shown at a meeting without long explanations.
Short package checklist:
- Data map: sources, where requests go, where responses are stored, and who administers storage points.
- LLM threat model: main leakage, tampering and misuse scenarios plus user error cases.
- Access matrix: roles, rights, approvers, issuers and revokers of access.
- Logging and audit: what events are recorded, who reads logs, how logs are protected and what must not be stored there.
- Storage and response: retention periods, encryption, localization, and an incident response plan.
Next, define acceptance criteria for the pilot so Security can answer not just “yes/no” but “yes, under these conditions.”
Minimum pilot readiness criteria:
- critical risks from the threat model mitigated (controls, owners and deadlines exist)
- owners assigned: business owner, data owner, platform admin, Security contact
- alerts configured for key events (suspicious activity, error spikes, attempts to access closed data)
- clear knowledge of where prompts and responses are stored and which data are forbidden
- a simple escalation process: who decides when to stop the pilot
Sample scenario: an internal assistant that searches a knowledge base (policies, instructions, template letters). Artifacts must state which sections are allowed, which are forbidden (e.g., personal data and finance), how content is fetched (scheduled indexing or on-demand), and how output is restricted (only quoting from allowed sources, ban on guessing). The access matrix typically needs roles: “employee”, “content admin”, “security auditor” and “platform admin” with clear issuance and revocation rules.
For a smooth Security demo, show controls not just answer quality: examples of blocked requests, a sanitized event log screen, and a short “what we do if” (e.g., an employee tries to paste a client database into a prompt).
Next steps are simple: assign owners, prepare one clear architecture diagram and run the checklist before meeting Security. If you also need quick infrastructure deployment, integration with corporate systems and 24/7 support, you may involve a system integrator. For example, GSE.kz as a manufacturer and integrator in Kazakhstan can cover some platform, deployment and operations questions, but Security requirements must still be documented and tied to the specific perimeter and data.
FAQ
What is the minimum set of documents required for Security to start approving an LLM project?
The minimum that usually satisfies Security at the start: a short architecture diagram with system boundaries, a data map (sources, flows, storage points), a threat model with mitigations, an access matrix, logging rules and an incident response plan. That is enough to discuss risks before a pilot and avoid reworking the solution after launch.
Why does Security ask for artifacts before the pilot, not after?
A pilot almost always quickly becomes production: real documents are used, access expands and integrations appear. If this happens before approval, the risk of leakage or unauthorized access may already materialize, and rolling back is hard because of logs, backups, indexes and granted rights.
What does Security usually check in the data map for an LLM?
Primarily the system boundary: what is the input (chat, API), what is considered context (RAG, knowledge bases), and where artifacts live (logs, vector store, cache, backups). It’s important to explicitly state what goes to external services, even if it’s “only metadata.”
Which data should be banned from sending to the LLM and how to justify it to Security?
Define the «forbidden categories» up front and link them to controls. Typically: passwords and keys, payment details, medical data, identity document numbers, classified information. Then explain how you prevent these from entering prompts or context: masking, input filters, DLP templates and user training.
How to describe LLM risks in a threat model so Security doesn't ask for a rewrite?
Describe it as simple scenarios: who can attack, what they want to obtain, through which points, and what the business impact is. For every scenario add concrete protections: rights check before context assembly, input/output filters, source restrictions, configuration change controls and monitoring for policy bypass attempts.
What roles and separation of duties does Security expect to see in the access matrix?
Typical roles are: end user, data owner, platform administrator, developer, operations operator, audit/Sec. Key principle — separation of duties: a developer does not grant themselves prod access; an admin manages configuration but does not read content; the data owner approves sources and categories.
Do prompts and responses need to be logged in full for Security to investigate incidents?
By default, do not store full prompt and response texts. Record what is needed for investigation: identifiers, timestamps, model/version, data sources used, filter decisions, risk labels and a correlation ID. Full text should be included only in a forensic mode for a short period with masking; otherwise logs themselves become a source of leaks.
What storage and retention rules does Security usually require for an LLM project?
Separate artifacts by class: source documents, embeddings/indexes, logs, caches, backups and datasets. For each class define retention, encryption in transit and at rest, and a clear deletion process that covers derived artifacts (indexes, replicas).
Which LLM incidents should be included in the response plan so Security won't block the launch?
Prepare scenarios in advance: leakage via response, key compromise, prompt/configuration tampering, policy bypass, denial of service. For each scenario define who can decide to disable features, how to isolate integrations quickly, how to preserve evidence and who to notify within agreed timeframes.
Is it possible to involve a system integrator to more quickly satisfy Security requirements for LLM?
Yes, but responsibilities must be clear: an integrator can help with the platform, infrastructure, integrations and operations, while you must still document Security requirements tied to your data and perimeter. For projects in Kazakhstan, GSE.kz may address part of the deployment and 24/7 support, but data, logging and access rules must be approved by your Security team.