anagilla
Databricks Employee
Databricks Employee

No, you don't need the Enterprise plan for this. Serverless reads Unity Catalog external locations fine on Premium; Enterprise only comes into play for optional serverless egress control features.

Your trace shows the request is signed and S3 itself returns the 403, so AWS is denying it, and the usual reason it denies serverless but not classic is the network path. Classic compute runs inside your VPC; serverless reaches S3 from Databricks-managed VPCs through a VPC endpoint. Any policy condition written for your VPC won't match serverless traffic.

Three things to check:

  1. Bucket policy network conditions. Look for aws:SourceVpc, aws:sourceVpce, or source-IP conditions in the bucket policy. If you want to keep the bucket locked down, add a condition using aws:VpceOrgPaths with the Databricks organization path, per the serverless firewall doc.

  2. KMS key policy. If the bucket uses SSE-KMS, the key policy must allow your storage credential's IAM role (kms:Decrypt, kms:GenerateDataKey*), per the S3 KMS doc.

  3. Confirm classic is really using the external location. If your classic cluster has an instance profile attached, it may be that role doing the reading. Test on classic with no instance profile so you know the UC storage credential role itself has the S3 permissions.