Service Group Management¶
This section covers the commands for managing service group objects in Strata Cloud Manager.
Overview¶
Service groups provide a way to logically group multiple services together for use in security policies. The service-group
commands allow you to:
- Create groups of related services
- Reference both custom and built-in services
- Create nested service groups
- Use service groups in policies
- Apply tags for organization
Commands¶
Creating/Updating Service Groups¶
Basic service group:
$ scm set object service-group --folder Texas --name web-services \
--members "http,https,ssl,web-browsing" \
--description "Standard web services"
<span style="color: green;">✓</span> Service group 'web-services' created successfully
Service group with custom services:
$ scm set object service-group --folder Texas --name database-services \
--members "mysql,ms-sql,oracle,postgresql,custom-db" \
--tag "database,backend" \
--description "Database service ports"
<span style="color: green;">✓</span> Service group 'database-services' created successfully
Nested service group:
$ scm set object service-group --folder Texas --name all-services \
--members "web-services,database-services,mail-services" \
--description "All allowed services (nested groups)"
<span style="color: green;">✓</span> Service group 'all-services' created successfully
Listing Service Groups (Default Behavior)¶
$ scm show object service-group --folder Texas
Service groups in folder 'Texas':
- web-services
- database-services
- mail-services
- all-services
Note
When no --name is specified, all service groups are listed by default.
Showing Service Group Details¶
$ scm show object service-group --folder Texas --name web-services
Service Group: web-services
Members: http, https, ssl, web-browsing
Description: Standard web services
Tags: None
Folder: Texas
Deleting Service Groups¶
$ scm delete object service-group --folder Texas --name web-services
<span style="color: green;">✓</span> Service group 'web-services' deleted successfully
Load Service Groups¶
Load multiple service groups from a YAML file.
Syntax¶
Options¶
Option | Description | Required |
---|---|---|
--file TEXT | Path to YAML file containing service group definitions | Yes |
--folder TEXT | Override folder location for all objects | No |
--snippet TEXT | Override snippet location for all objects | No |
--device TEXT | Override device location for all objects | No |
--dry-run | Preview changes without applying them | No |
Examples¶
Load from file with original locations:
$ scm load object service-group --file service-groups.yml
<span style="color: green;">✓</span> Loaded service group: web-services
<span style="color: green;">✓</span> Loaded service group: database-services
<span style="color: green;">✓</span> Loaded service group: mail-services
<span style="color: green;">✓</span> Loaded service group: all-services
Successfully loaded 4 out of 4 service groups from 'service-groups.yml'
Load with folder override:
$ scm load object service-group --file service-groups.yml --folder Austin
<span style="color: green;">✓</span> Loaded service group: web-services
<span style="color: green;">✓</span> Loaded service group: database-services
<span style="color: green;">✓</span> Loaded service group: mail-services
<span style="color: green;">✓</span> Loaded service group: all-services
Successfully loaded 4 out of 4 service groups from 'service-groups.yml'
Note
When using container override options (--folder, --snippet, --device), all service groups will be loaded into the specified container, ignoring the container specified in the YAML file.
Backup Service Groups¶
Backup all service group objects from a specified location to a YAML file.
Syntax¶
Options¶
Option | Description | Required |
---|---|---|
--folder TEXT | Folder to backup service groups from | No* |
--snippet TEXT | Snippet to backup service groups from | No* |
--device TEXT | Device to backup service groups from | No* |
--file TEXT | Output filename (defaults to auto-generated) | No |
* You must specify exactly one of --folder, --snippet, or --device.
Examples¶
Backup from folder:
$ scm backup object service-group --folder Texas
<span style="color: green;">✓</span> Successfully backed up 8 service groups to service-group_folder_texas_20240115_120530.yaml
Backup with custom filename:
$ scm backup object service-group --folder Texas --file texas-service-groups.yaml
<span style="color: green;">✓</span> Successfully backed up 8 service groups to texas-service-groups.yaml
YAML Configuration Format¶
Service groups can be defined in YAML for bulk operations:
service_groups:
- name: web-services
folder: Texas # Container location (folder, snippet, or device)
description: "Standard web services"
members:
- http
- https
- ssl
- web-browsing
- name: database-services
folder: Texas
description: "Database service ports"
members:
- mysql
- ms-sql
- oracle
- postgresql
- custom-db
tag:
- database
- backend
- name: mail-services
folder: Texas
description: "Email services"
members:
- smtp
- smtps
- pop3
- pop3s
- imap
- imaps
tag:
- email
- name: file-transfer
folder: Texas
description: "File transfer services"
members:
- ftp
- ftps
- sftp
- tftp
- custom-file-transfer
- name: all-services
folder: Texas
description: "All allowed services (nested groups)"
members:
- web-services
- database-services
- mail-services
- file-transfer
Configuration Options¶
Required Parameters¶
--name
: Name of the service group--members
: Comma-separated list of service or service group names
Optional Parameters¶
--description
: Detailed description of the group--tag
: Tags for categorization (comma-separated)
Context Parameters¶
Exactly one context parameter must be specified:
--folder
: Folder name (e.g., "Texas", "Shared")--snippet
: Snippet name for Panorama--device
: Device name for NGFW
Examples¶
Create a Basic Service Group¶
Create a Comprehensive Service Group¶
scm set object service-group --folder Shared --name enterprise-apps \
--members "ldap,ldaps,kerberos,radius,tacacs,custom-auth" \
--tag "authentication,enterprise" \
--description "Enterprise authentication services"
Create a Nested Service Group¶
scm set object service-group --folder Shared --name dmz-services \
--members "web-services,mail-services,dns,ntp" \
--tag "dmz,public" \
--description "Services allowed in DMZ"
Best Practices¶
-
Logical Grouping: Group services that are used together in policies
-
Naming Convention: Use descriptive names that indicate the group's purpose
-
Avoid Over-Nesting: While nesting is supported, avoid deep nesting for clarity
-
Documentation: Always include descriptions to explain the group's purpose
-
Regular Review: Periodically review group membership to ensure accuracy
Integration with Security Policies¶
Service groups are commonly used in security rules:
# Allow web services
scm set security rule --folder Shared --name "Allow-Web-Traffic" \
--source-zones "Trust" --destination-zones "DMZ" \
--services "@web-services" --action allow
# Block database access from untrusted zones
scm set security rule --folder Shared --name "Protect-Databases" \
--source-zones "Untrust" --destination-zones "Database" \
--services "@database-services" --action deny
Advanced Features¶
Nested Groups¶
Service groups can contain other service groups, allowing for hierarchical organization:
# Create base groups
scm set object service-group --folder Shared --name tcp-services \
--members "http,https,ssh,telnet"
scm set object service-group --folder Shared --name udp-services \
--members "dns,ntp,snmp,syslog"
# Create parent group
scm set object service-group --folder Shared --name all-protocols \
--members "tcp-services,udp-services"
Dynamic Membership¶
While service group membership is static, you can use tags and scripts to manage groups dynamically:
# Tag services
scm set object service --folder Shared --name custom-app1 \
--protocol tcp --port 9001 --tag "dynamic-group"
# Use external tools to update groups based on tags
Notes¶
- Service group names must be unique within a folder
- Members must be existing services or service groups
- Circular references are not allowed
- Groups can mix built-in and custom services
- Groups can contain other groups (nested)
- Tags must exist before being referenced
- Groups are referenced in policies using the "@" prefix
- Member names must be unique (no duplicates)