| Component | Handles | Acts |
|---|---|---|
| Next Gen SWG | General web traffic: categories, malware, file types | Inline, real-time |
| CASB inline | SaaS activity: upload, share, post, download — with app-instance awareness | Inline, real-time |
| CASB API (SaaS Security Posture) | Data already sitting in sanctioned tenants; sharing, config, retro-scan | Out-of-band, minutes |
| DLP | Content inspection shared by all the above | Wherever it is invoked |
| NPA (Netskope Private Access) | ZTNA to internal applications | Per-session brokering |
The critical realisation: inline and API are two different sources of truth. Inline sees the act of uploading; API sees the file that is now shared publicly. A finding in one does not appear in the other, and investigations frequently need both.
NewEdge is Netskope's private network of POPs — a full compute presence in each location rather than peering-only edges, which is the basis of their latency claim. What you actually need to know operationally:
Two configuration objects control everything about what is intercepted:
Steering options in ascending order of coverage: Cloud apps only (least disruptive, misses general web threats) → Web traffic (HTTP/S) → All traffic (includes non-web ports; needed for full visibility but most likely to break things).
| Object | Means | Example |
|---|---|---|
| Application | A recognised SaaS service | Google Drive, Slack, Salesforce |
| App instance | Which tenant of that app | Our Workspace vs a personal Gmail |
| Activity | The action being performed | Upload, Download, Share, Post, Login, Delete |
| Category | Website classification | Gambling, Webmail, Newly Registered Domain |
| CCI score | Cloud Confidence Index — an app's enterprise-readiness rating | Poor / Low / Medium / High / Excellent |
| Constraint | A qualifier on the activity | "share with anyone outside our domain" |
| User / group | Identity from the IdP or directory | finance@, contractors group |
| Device classification | Managed/unmanaged, posture checks | Encrypted, EDR present, domain-joined |
Instance awareness is the whole reason a CASB exists. A URL filter sees drive.google.com and must allow or block all of it. Netskope distinguishes your corporate tenant from a personal account and lets you write: allow everything in the corporate instance, allow read-only browsing of personal accounts, block uploads to personal accounts. That single policy pattern solves a large share of real data-exfiltration risk.
1. Allow — corporate Google Drive instance, all activities, managed devices 2. Block — activity=Upload, app=Google Drive, instance!=corporate 3. Alert — activity=Download, DLP profile=PII, any cloud storage 4. Block — category=Newly Registered Domains, all users 5. Block — CCI score = Poor, activity=Upload 6. Alert — activity=Share, constraint=external, app=any sanctioned 7. Allow — default web, with threat protection profile
Reading that top to bottom tells you the intent in ten seconds — which is the test of a well-ordered policy set. If you cannot explain your policy list as a narrative, it needs restructuring.
Structure: DLP rules (the matching logic) group into DLP profiles, which are referenced by Real-time or API policies. Rule building blocks:
Netskope connects to sanctioned SaaS via OAuth and inspects at rest. Distinct capabilities you cannot get inline:
Latency is minutes, not milliseconds, and it only covers tenants you have connected. Its blind spot is exactly the inline strength: it never sees personal accounts or unsanctioned apps.
Objects to know:
Design guidance worth stating in a review: define applications narrowly (specific hostname and port, not a /16), because a broad definition recreates the VPN flat-network problem inside a ZTNA product. Also decide how DNS for private names resolves — that is the most common cause of "NPA works for me but not for them".
A policy to block uploads of PII to personal Google Drive is not firing, though the user's upload clearly contained card numbers. What do you check first?
| Area | Contains | You go there to… |
|---|---|---|
| Incidents | DLP, malware, anomaly, compromised credentials | Triage what policy already caught |
| SkopeIT | Application/Page/Network/Alerts/Audit events | Investigate — the raw truth |
| Policies | Real-time, API, SSL decryption, Web, Threat | Change enforcement |
| Settings → Security Cloud Platform | Steering configs, client config, certificates, publishers | Change what is intercepted |
| Settings → Manage | Users, devices, administrators, RBAC | Identity and admin governance |
| Skope IT → Applications | CCI, discovered apps, shadow IT | Answer "what are people using?" |
| Digital Experience Management | Latency and path telemetry per user | Prove it is not Netskope's fault |
| Event type | One row is… | Use for |
|---|---|---|
| Application events | A recognised SaaS activity | "Who uploaded what, where" |
| Page events | A web page/site visit | Browsing, categories, URL forensics |
| Network events | Non-web traffic (with all-traffic steering) | Odd ports, thick clients |
| Alerts | A policy match | What fired and why |
| Audit log | Admin actions in the console | Who changed the policy at 23:40 |
Filters use a straightforward field-operator-value syntax that you can also type directly:
user eq "jdoe@example.com" and activity eq "Upload" app eq "Google Drive" and instance_id ne "example.com" category in ["Newly Registered Domain", "Malicious Site"] dlp_rule eq "UK-PII-High" and severity eq "High" activity eq "Share" and shared_with ne "internal" device_classification eq "Unmanaged" and app_activity eq "Download" traffic_type eq "CloudApp" and os eq "macOS" and _timestamp last 24h
Investigation habit: start in Alerts to see what fired, pivot to Application events for the same user and time window to see everything they did (not just what matched), then Page events for the browsing context that led there. Alerts alone tell you the ending, not the story.
# events for a window (token in header, tenant in the host) curl -H "Netskope-Api-Token: $TOKEN" \ "https://<tenant>.goskope.com/api/v2/events/dataexport/events/application?index=main&operation=next" # typical automation jobs worth building - nightly export of policy configuration -> git diff for change tracking - weekly pull of DLP incidents -> metrics + evidence pack - pull of steering exceptions -> the visibility-gap register - user/group sync verification -> catch policies aimed at empty groups
That first job — configuration in version control — turns "someone changed a policy" from an argument into a diff, and gives you an audit artefact for free.
Write these down with a compensating control each. That document is simultaneously an internal roadmap, an answer to client due-diligence questionnaires, and evidence of mature risk ownership under operational resilience expectations.
A leaver uploads a customer database to a personal cloud account from their own laptop, at home, before their last day. Which control could have caught it?