在不同的 SCM 租户(TSG)之间迁移 Prisma Access 配置,用于安全策略、NAT 规则、地址对象等配置的迁移。
Migrate configurations between Prisma Access tenants (TSGs) via the Strata Cloud Manager API.
This skill helps you export configurations from a source tenant and import them into a target tenant. It handles naming conflicts, reference resolution, and dependency ordering.
For detailed API call reference, see migration-workflow.md.
Based on real-world migration testing, here is what can and cannot be migrated directly via SCM API:
ResourceNotesTagsNo issuesAddress ObjectsIP netmask, FQDN, IP range, IP wildcard all supportedAddress GroupsStatic and dynamic; referenced addresses must exist firstService ObjectsNo issuesService GroupsNo issuesApplication FiltersNo issuesApplication GroupsNo issuesExternal Dynamic Lists (EDL)No issuesHIP ObjectsNo issuesHIP ProfilesNo issuesFile Blocking ProfilesNo issuesProfile GroupsSupported, but referenced sub-profiles must exist firstSecurity Rules (most)Simple rules migrate directlyNAT RulesNo issuesDecryption Rules (most)Simple rules migrate directly
ResourceIssueWorkaroundURL Filtering ProfilesService Account returns Access deniedGrant additional API permissions, or recreate manually in SCM consoleData Filtering ProfilesService Account returns Access deniedSame as aboveAI Security ProfilesService Account returns Access deniedSame as aboveCustom URL CategoriesAPI returns 0 results or Access deniedRecreate manually in SCM console before migrating rules that reference themProfile Groups with inaccessible refsReferences URL Filtering / Data Filtering / AI Security profiles that can't be exportedMigrate with invalid references stripped; add them back manually after creating the sub-profiles in the target tenantRules referencing missing objectsSecurity/Decryption rules fail with INVALID_REFERENCECreate the missing referenced objects first, then retry the ruleapp-tagging rulesNested object arrays cause Invalid Request PayloadRecreate manually in SCM consoleCross-folder name conflictsRules with same name in All or Prisma Access folder cause UNIQUEIN_ERRORSkip — these are typically system-preset rules already present in the target
Shared, All, Prisma Access, Mobile Users folders — checking only Shared misses conflictsid, created, last_modified, snippet, override_loc, override_type, override_id, rule_uuid, folder, policy_type, position (position goes in the query parameter instead)Set the following environment variables:
bash
# Source tenant credentials
export SRC_SCM_CLIENT_ID="source-client-id"
export SRC_SCM_CLIENT_SECRET="source-client-secret"
export SRC_SCM_TSG_ID="source-tsg-id"
# Target tenant credentials
export DST_SCM_CLIENT_ID="target-client-id"
export DST_SCM_CLIENT_SECRET="target-client-secret"
export DST_SCM_TSG_ID="target-tsg-id"
Authenticate and export all configuration objects from the source tenant via SCM API:
text
GET https://api.sase.paloaltonetworks.com/sse/config/v1/{resource}?folder={folder}&limit=200
Export objects in dependency order. Handle pagination with offset when total exceeds limit.
Before importing, check the target tenant for conflicts across all folders ( Shared, All, Prisma Access, Mobile Users, Remote Networks):
All folder that block creation in Shared — skip theseFor each conflict, present the user with options:
migrated- prefix)For each object:
id, created, last_modified, snippet, override_loc, override_type, override_id, rule_uuid)folder and policy_type from the body (folder goes in query param)position from body (goes in query param as &position=pre or &position=post)text
POST https://api.sase.paloaltonetworks.com/sse/config/v1/{resource}?folder={folder}
After import:
text
POST https://api.sase.paloaltonetworks.com/sse/config/v1/config-versions/candidate:push
Only commit after user explicitly confirms:
text
POST https://api.sase.paloaltonetworks.com/sse/config/v1/config-versions/running:push
text
/prisma-access:prisma-migrate
Interactive mode: prompts for source and target tenant details.
text
/prisma-access:prisma-migrate 1234567890 0987654321
Migrate from TSG 1234567890 to TSG 0987654321.