How do we…
What belongs inside the boundary of our SOC 2 report?
Add to board memoOpen the memo
The short answer
- Recommendation
- Name the one service, then test every system, function, environment and route to production in turn: a provider gets its own decision, anything that touches customer data or production is inside, and only a stated fact keeps a thing out.
- Reasoning
- The description and every control depend on the boundary, and the CPA firm examines what management says it is. An exclusion made to save effort is the commonest way a boundary fails, so every exclusion needs a reason that is a fact about the system. People who run production see the routes in that the writer misses.
- Considerations
- A provider is not part of the system merely because you pay it. It is a subservice organisation when it runs part of the system and its controls matter to the commitments.
- Staff of providers who work under your direction, and contractors with production access, belong in the people section.
- Do the boundary checklist twice: on the first draft, and again after the readiness walkthroughs, when you know more.
The decision, step by step
Select any step for the reasoning behind it and where the pack covers it.
- Start
- Step
- Decision
- Outcome
- Loop back
Keyboard: Tab to a step, arrow keys move along the flow, Enter pins its explanation, + and − zoom, 0 fits the diagram, Esc closes. The text version below has the same content.
Where a step quotes a number, it is the default in the CISO Times pack. Your own standard may set a different one. A code beside a source, such as RR-17, is the number of a rule in that pack document; the document lists its rules.
Read as text
The same flow written out: each step, its reasoning and where the pack covers it. 17 steps.
Start
We must draw the boundary of the system for the SOC 2 report
The report is about one system, not the whole company: the service, and the infrastructure, software, people, procedures and data that provide it. Management owns the description, and the boundary decides what every control and the whole report are about. Start from the service the customer buys, then explain every exclusion.
In the pack
- P32-A03 System Description & Boundary TemplateDS-09 The boundary
- P32-A01 P32-A01(rule SR-04)
Step
Name the one service customers rely on, as the contract names it
Use the name customers use, and the same name that appears in the contracts. The first boundary check asks for one named service as the subject of the report. The report is about one system, so settle the one service before anything else.
In the pack
- P32-A03 System Description & Boundary TemplateBoundary checklist
- P32-A02 SOC 2 Report Scoping AssessmentInstructions
Step
Write down the principal commitments the service keeps
List the principal commitments made in contracts, service levels and published policies, with where each is made and what the system must do to keep it. The description must agree with the contract language. Where they differ the contract wins, so fix the description or change the contract.
In the pack
- P32-A03 System Description & Boundary TemplateDS-03 Principal service commitments and system requirements
- P32-A03 System Description & Boundary TemplateCommon mistakes
Step
List every candidate: components, functions, environments, routes in
Take the five components in turn: infrastructure, software, people, procedures and data. Then list what a reader might think is inside: support, onboarding and billing, the environments from production to development, and every route to production, such as administration consoles, single sign-on, remote access, the deployment pipeline and support tools.
In the pack
- P32-A03 System Description & Boundary TemplateBoundary checklist
Decision
Is the candidate run by another company?
A provider is not part of the system merely because you pay it. It is a subservice organisation when it runs part of the system and its controls matter to the commitments. Choose providers from your supplier register and give each its own decision.
- Yes: Send it to its own carve-out, inclusive or outside decision
- No: Does it handle this service's customer data or reach production?
In the pack
- P32-A03 System Description & Boundary TemplateProviders: carve-out, inclusive or outside the boundary
Step
Send it to its own carve-out, inclusive or outside decision
Decide separately for each provider, before the description is written: carve-out, inclusive, or outside the boundary with a reason. Each leaves you something to do afterwards. “Which service providers do we carve out of our SOC 2 report, and what do we tell customers?” takes that decision in full.
In the pack
- P32-A03 System Description & Boundary TemplateProviders: carve-out, inclusive or outside the boundary (rule SR-06)
Decision
Does it handle this service's customer data or reach production?
Every system that stores, processes or sends customer data for this service is inside the boundary, or is a provider in the table. Every route to production is inside or accounted for. If the part serves the same customers with the same data, it is inside. If you are not sure, answer yes.
- Yes, or not known: Put it inside, in the section for its kind
- No: Is there a fact about the system that keeps it out?
In the pack
- P32-A03 System Description & Boundary TemplateBoundary checklist
- P32-A03 System Description & Boundary TemplateDS-09 The boundary
Step
Put it inside, in the section for its kind
Describe it under infrastructure, software, people, procedures or data, and show it on the diagram. A no on a system that holds customer data is solved by describing the system, or by changing it. Every person with production access appears in the people section, including contractors.
In the pack
- P32-A03 System Description & Boundary TemplateBoundary checklist
- P32-A03 System Description & Boundary TemplateDS-09 The boundary
Decision
Is there a fact about the system that keeps it out?
Each exclusion needs a reason that is a fact about the system, for example that a separate company runs it with no access to the system. The boundary follows the service the customer buys, not the budget. If you cannot state the fact, the candidate is inside.
- Yes: Write it outside, with the reason
- No, or not known: Put it inside, in the section for its kind
In the pack
- P32-A03 System Description & Boundary TemplateDS-09 The boundary
- P32-A03 System Description & Boundary TemplateCommon mistakes
Step
Write it outside, with the reason
Name it in the boundary section, with the reason, and name any function a reader might think is inside but is not. In the pack's worked example the marketing website is outside because it holds no customer data. Check each period that the reason still holds.
In the pack
- P32-A03 System Description & Boundary TemplateDS-09 The boundary
- P32-A03 System Description & Boundary TemplateProviders: carve-out, inclusive or outside the boundary
Decision
Is any other candidate left to decide?
Go round again until every candidate is inside, a provider with a method chosen, or outside with a reason. Customer-facing functions and each environment are each decided, never left blank.
- Yes: Is the candidate run by another company? (back to an earlier step)
- No: Draw the diagram so it shows the five components and each provider
In the pack
- P32-A03 System Description & Boundary TemplateBoundary checklist
Step
Draw the diagram so it shows the five components and each provider
The diagram shows the five components and where each provider sits, and it agrees with the text. Someone other than the writer, such as the Head of Engineering, compares it line by line with the infrastructure, software and boundary text.
In the pack
- P32-A03 System Description & Boundary TemplateDS-09 The boundary
- P32-A03 System Description & Boundary TemplateConsistency check
Decision
Do all twelve boundary checks read Yes?
The checklist has twelve checks, each answered Yes, No or Unsure, with where the evidence is. Anything other than Yes is a gap to close before the description is finalised. Do the checklist twice: on the first draft, and again after the readiness walkthroughs.
- Yes: Has someone who runs production read it against the real system?
- No, or Unsure: Close each gap by describing the system or changing it
In the pack
- P32-A03 System Description & Boundary TemplateBoundary checklist
Step
Close each gap by describing the system or changing it
A boundary drawn to leave out the awkward part is not a boundary. Fix the text, the diagram or the system, then run the checks again.
- Then: Do all twelve boundary checks read Yes? (back to an earlier step)
In the pack
- P32-A03 System Description & Boundary TemplateBoundary checklist
- P32-A01 P32-A01(rule SR-04)
Decision
Has someone who runs production read it against the real system?
A first description written by one person alone is almost always wrong in places. The people who operate the system read it against how it really works, and someone outside the writing team checks it against the records, such as the asset inventory and the production access list.
- Yes: Boundary drawn: keep the reasons and re-scope when things change
- No, or not known: Go through it with the engineer who knows production best
In the pack
- P32-A03 System Description & Boundary TemplateFilling in the template
- P32-A03 System Description & Boundary TemplateManagement owns the description
- P32-A03 System Description & Boundary TemplateConsistency check
Step
Go through it with the engineer who knows production best
Sit with the engineer who knows production best and compare each line of the boundary with how the system really runs. Note what is missing or wrong, fix it, and run the checks again.
- Then: Do all twelve boundary checks read Yes? (back to an earlier step)
In the pack
- P32-A03 System Description & Boundary TemplateBoundary checklist
Outcome
Boundary drawn: keep the reasons and re-scope when things change
Keep the reason for each exclusion with the description. Re-scope when the service, the boundary, a major provider or a customer commitment changes, and before each new period, and write down why the scope is what it is.
In the pack
- P32-A03 System Description & Boundary TemplateBoundary checklist
- P32-A01 P32-A01(rule SR-08)
Practical checklist
- Name the one service as customers and contracts name it.
- List every candidate: components, customer-facing functions, environments and every route to production.
- Send each provider to its own carve-out, inclusive or outside decision.
- Put inside anything that handles customer data for the service or reaches production, unless a stated fact keeps it out.
- Draw the diagram and run the twelve boundary checks.
- Have someone who runs production read the draft against the real system.
Evidence to have ready
- The boundary section with what is inside, what is outside and the reason for each exclusion.
- The diagram, checked line by line against the text.
- The completed boundary checklist, with where the evidence for each check is.
- The record of who read the draft against production and when.
Assumptions
- You have chosen the one service the report is about, and you know which customers rely on it.
- You can get someone who runs production to read the draft, and you can see the customer contracts.
- A list of your suppliers exists to pick providers from, such as a supplier register.
Not covered here
- Whether a provider is carved out or included, and what to tell customers. That is “Which service providers do we carve out of our SOC 2 report, and what do we tell customers?”.
- Which Trust Services Categories the report covers. That is “Which Trust Services Categories should our SOC 2 report cover?”.
- Getting control owners, evidence and a readiness check in place. That is “How do we get ready for a SOC 2 examination: owners, evidence and a readiness check?”.
- Setting the scope of an ISO 27001 management system, which is a different scope. That is “How do we set the scope of our ISMS?”.