The DLP On Demand (DLPoD) appliance supports three AI-powered content inspection capabilities, referred to together as DLP-LLM.
| Capability | What It Does | Where Inference Runs |
|---|---|---|
| AI File Classification | Classifies an extracted document into a file category, such as Budget Plan or Banking Agreement, so a DLP profile can match on file type. | AWS Bedrock (Netskope-managed access) |
| AI Entity, NER (Named Entity Recognition) | Extracts personally identifiable information (PII), such as names, addresses, phone numbers, and Social Security numbers, so DLP entity rules can detect and redact it. | A SageMaker real-time endpoint that you host in your own AWS account |
| AI Entity, Genomic and Human-omic Detection | Extracts biomedical entities, such as genes, proteins, and diseases, from scientific or clinical text. | The same SageMaker endpoint as NER, plus AWS Bedrock for a second genomic path |
You enable these capabilities from nsshell with two independent commands:
- request dlp-llm configure sets up AI File Classification.
- request dlp-llm-ner configure sets up NER and genomic detection.
The two commands use separate credentials and don’t affect each other. You can enable one without the other.
DLP-LLM inference always runs in AWS, regardless of where your DLPoD appliance is hosted. The appliance itself supports AWS, Azure, GCP, and on-premises hypervisors (Hyper-V, KVM, and VMware), but you need an AWS account to host the inference backends either way. The authentication method the appliance uses depends on where the appliance runs.
| DLPoD Appliance Hosting Platform | AI File Classification (Bedrock) Auth | NER and Genomic (SageMaker) Auth |
|---|---|---|
| AWS (EC2) | IAM role (instance profile), recommended; or AWS keys | IAM role (instance profile), recommended; or permanent IAM key, STS, or JWT |
| Azure, GCP, or on-premises | Bedrock long-term API key, required | JSON Web Token (JWT) through Amazon Cognito, required |
If your appliance runs on AWS EC2, an EC2 instance role is the default and recommended option for both capabilities. The role’s credentials rotate automatically, so you don’t manage or rotate any keys. If your appliance runs on Azure, GCP, or on-premises, it has no native AWS identity, so it must authenticate with a Bedrock long-term API key for AI File Classification and a JWT for NER.
Prerequisites
Before you configure DLP-LLM, confirm the following:
- Your DLPoD appliance is deployed and fully initialized, on a release that includes the dlp-llm service.
- Your appliance is tethered. The configurator encrypts credentials with the tenant transit key, which is only available after tethering.
- Your appliance has network egress to AWS Bedrock and, for NER, to your SageMaker endpoint. If your egress uses SSL inspection, see the troubleshooting section for the CA bundle option.
- You have an AWS account. Bedrock and the SageMaker NER endpoint always run in AWS, regardless of your appliance’s hosting platform.
For AI File Classification, you also need AWS credentials the appliance can use to call Bedrock. For NER, you also need a SageMaker real-time endpoint in your AWS account and credentials that let the appliance invoke it.
If you plan to set up the SageMaker endpoint yourself, you also need these local tools:
- AWS CLI v2
- Docker, with the daemon running
- crane, which the NER deployment script uses to push images in the manifest format SageMaker requires
- IAM permissions to create ECR repositories, IAM roles and policies, and SageMaker models and endpoints
Configuring AI File Classification
AI File Classification runs on AWS Bedrock. The IAM permissions you need depend on which model you select.
Setting Up AWS IAM for Bedrock
Two model families are available, and each uses a different IAM policy.
- google.gemma-4-31b and openai.gpt-5.6-luna run on Bedrock Mantle.
- us.amazon.nova-pro-v1:0 and us.amazon.nova-2-lite-v1:0 run on standard Bedrock.
For the Bedrock Mantle models, attach a policy that allows bedrock-mantle:CreateInference and bedrock-mantle:CallWithBearerToken, scoped to your account’s default Bedrock Mantle project.
For the standard Bedrock models, attach a policy that allows bedrock:InvokeModel and bedrock:InvokeModelWithResponseStream. Cross-region model calls are checked against two resources, the inference profile and the underlying foundation model. Include both in the policy.
If your appliance runs on AWS EC2, you can attach an instance profile instead of using static keys. Create the role, attach the Bedrock policy, create an instance profile, and associate it with your running instance using the AWS CLI. This requires no restart of the instance.
If your appliance runs off AWS (Azure, GCP, or on-premises), generate a Bedrock long-term API key instead:
- In the AWS console, go to Amazon Bedrock > API Keys.
- Under Long-term API Keys, select Generate Long-Term API Key.
- Specify an expiration.
- Copy the key. You enter it as the API key credential in request dlp-llm configure.
Running request dlp-llm configure
From nsshell on the DLPoD appliance, run:
nsappliance> request dlp-llm configure
The command prompts for the following values. Defaults are shown in brackets.
- Auth method: aws-keys (default) or api-key. Choose aws-keys if your appliance runs on AWS EC2, or api-key if it runs off AWS.
- AWS credentials, matching the auth method you chose.
- Region, the AWS region for Bedrock. Default is us-west-2.
- Daily request limit, service.max_daily_requests. Enter 0 for no limit. Default is 100000.
- Model, one of the four supported model IDs. Default is google.gemma-4-31b.
A model change takes effect the next time the dlp-llm service restarts, not on a configuration reload.
Configuring NER and Genomic Entity Detection
NER and genomic detection run against a SageMaker real-time endpoint in your own AWS account. You host the endpoint, and the appliance invokes it. Content sent for inspection never leaves your AWS environment.
Deploying the SageMaker Endpoint
Netskope provides a container image with the NER and genomic models built in, delivered as a compressed Docker image tarball or as a pull reference to a Netskope-hosted registry.
Confirm the following before you deploy:
| Requirement | Detail |
|---|---|
| AWS account and region | Any region where SageMaker GPU real-time endpoints are available |
| Instance type | ml.g5.xlarge recommended for production |
| Service quota | Confirm your account has quota for ml.g5.xlarge endpoint usage |
| Amazon ECR | A private repository in the same region to hold the image |
| IAM | Permissions to create ECR repositories, a SageMaker execution role, and SageMaker models and endpoints |
Netskope provides a deployment script, deploy_ner_sagemaker.sh, that automates the full setup: it loads the image, pushes it to ECR, creates the SageMaker execution role if one doesn’t exist, creates the model, endpoint configuration, and endpoint, and validates both the PII and genomic model families with a test call. Run it with your tarball, AWS account ID, and region:
./deploy_ner_sagemaker.sh --tarball dlp-ner-sagemaker-<version>.tar.gz \ --account <your-aws-account-id> --region <your-region>
To validate a running endpoint without redeploying, run the script with –validate-only.
Setting Up NER Authentication
You choose how the appliance authenticates to your SageMaker endpoint. Four credential types are available.
| Type | When to Use | What It Provides |
|---|---|---|
| A, permanent IAM key | Simplest key-based option | A long-lived AWS access key |
| B, JWT through Amazon Cognito | Required for appliances hosted off AWS | Short-lived tokens minted from a long-lived Cognito client secret; no standing AWS key on the appliance |
| C, STS temporary credentials | Advanced; only if you already rotate short-lived credentials into the appliance | Temporary AWS credentials that you must refresh before expiry |
| D, EC2 instance role | Recommended if your appliance runs on EC2 | Temporary, auto-rotated credentials from the instance role; nothing stored on the appliance |
Whichever type you choose, grant only the minimum permission, sagemaker:InvokeEndpoint, scoped to your endpoint’s Amazon Resource Name (ARN).
If your appliance runs on AWS EC2 (Type D, recommended): attach an IAM role to the appliance’s EC2 instance with the invoke permission above. If the instance already has a role, add the permission to it instead of replacing the role, since an instance can hold only one role. When you run request dlp-llm-ner configure, leave the AWS credential fields blank. The appliance then uses the instance role automatically. If the dlp-llm service is already running, restart it so it picks up the role.
If your appliance runs off AWS (Type B, required): front your SageMaker endpoint with Amazon API Gateway and a Cognito authorizer, so the appliance holds a long-lived Cognito client secret instead of an AWS access key. At a high level:
- Create a Cognito user pool, domain, resource server, and scope.
- Create a machine-to-machine app client, which generates a client ID and client secret.
- Create an IAM role that allows API Gateway to invoke your SageMaker endpoint.
- Create an API Gateway REST API with a POST method, protected by the Cognito authorizer, that integrates with your SageMaker endpoint.
- Deploy the API and note its URL.
You then enter the following values in request dlp-llm-ner configure:
| Field | Value |
|---|---|
| client_id | From the app client you created |
| client_secret | From the app client you created |
| token_url | Your Cognito domain’s OAuth token endpoint |
| api_url | Your deployed API Gateway URL |
| scope | Your Cognito resource server scope, for example predict/Sagemaker.invoke |
Running request dlp-llm-ner configure
From nsshell on the DLPoD appliance, run:
nsappliance> request dlp-llm-ner configure
The command prompts for the following values. Defaults are shown in brackets.
- Auth method: aws-keys (default), api-key, or jwt. Choose based on the credential type you set up above.
- Credentials, matching the auth method you chose. For a permanent IAM key or EC2 instance role, this is an AWS access key ID and secret (leave both blank to use an instance role). For JWT, this is your client ID, client secret, token URL, API URL, and scope.
- Region, the AWS region of your SageMaker endpoint. Default is us-west-2.
- Daily request limit, service.max_daily_requests. Enter 0 for no limit. Default is 100000.
This command doesn’t prompt for a model selection. The NER model is part of your SageMaker endpoint, not a Bedrock model.
Verifying and Troubleshooting
To check the appliance’s overall health and confirm which services are running, use:
nsappliance> request status health nsappliance> request status all
To confirm which authentication method DLP-LLM is using, check the dlp-llm service logs for a message that names the active method, such as an IAM permanent key, a temporary key, JWT, or an EC2 instance role.
The following table lists common issues.
| Symptom | Likely Cause and Fix |
|---|---|
| Configuration fails with a transit-key error | Your appliance isn’t tethered yet, or config sync isn’t ready. Wait, then run the configure command again. |
| NER credentials are rejected | The access key or secret is wrong, or lacks permission to verify AWS identity. Correct the credentials and try again. |
| NER stays disabled with no native identity error | You left the credential fields blank to use an EC2 instance role, but no role is attached to the instance. Attach a role, then restart the service. |
| NER configuration has both JWT and IAM fields | Re-run request dlp-llm-ner configure, which clears stale fields before saving the new style, rather than hand-editing the configuration. |
| AI File Classification returns an access-denied error | Your IAM policy doesn’t match the selected model. Confirm you used the Bedrock Mantle policy for the Mantle models, or the standard Bedrock policy for the two Nova models. |
| AI File Classification fails after switching models | The new model isn’t provisioned for your AWS account in Bedrock. Confirm provisioning, and note that a model change takes effect on the next service restart. |
| The SageMaker endpoint stays in a Creating or Updating state | The model was created without the NER_MODEL_TYPE=xlmr environment variable. Recreate the model with the variable set, create a new endpoint configuration, and update the endpoint. No image rebuild is needed. |
| TLS or SSL errors reaching Bedrock or SageMaker | Your network egress uses SSL inspection. Supply a CA bundle for the JWT authentication path, or install the inspection CA on the appliance. |
| NER credential lookup fails inside a container but works on the host | Raise the EC2 instance metadata hop limit to 2, to allow the containerized service to reach the metadata service. |
Security Notes
Quick Command Reference
request dlp-llm configure # AI File Classification (Bedrock) request dlp-llm-ner configure # NER and genomic detection (SageMaker)

