diff --git a/acceptance/openstack/sharedfilesystems/v2/securityservices.go b/acceptance/openstack/sharedfilesystems/v2/securityservices.go
new file mode 100644
index 0000000..e9b5549
--- /dev/null
+++ b/acceptance/openstack/sharedfilesystems/v2/securityservices.go
@@ -0,0 +1,49 @@
+package v2
+
+import (
+	"testing"
+
+	"github.com/gophercloud/gophercloud"
+	"github.com/gophercloud/gophercloud/acceptance/tools"
+	"github.com/gophercloud/gophercloud/openstack/sharedfilesystems/v2/securityservices"
+)
+
+// CreateSecurityService will create a security service with a random name. An
+// error will be returned if the security service was unable to be created.
+func CreateSecurityService(t *testing.T, client *gophercloud.ServiceClient) (*securityservices.SecurityService, error) {
+	if testing.Short() {
+		t.Skip("Skipping test that requires share network creation in short mode.")
+	}
+
+	securityServiceName := tools.RandomString("ACPTTEST", 16)
+	t.Logf("Attempting to create security service: %s", securityServiceName)
+
+	createOpts := securityservices.CreateOpts{
+		Name: securityServiceName,
+		Type: "kerberos",
+	}
+
+	securityService, err := securityservices.Create(client, createOpts).Extract()
+	if err != nil {
+		return securityService, err
+	}
+
+	return securityService, nil
+}
+
+// PrintSecurityService will print a security service and all of its attributes.
+func PrintSecurityService(t *testing.T, securityService *securityservices.SecurityService) {
+	t.Logf("ID: %s", securityService.ID)
+	t.Logf("Project ID: %s", securityService.ProjectID)
+	t.Logf("Domain: %s", securityService.Domain)
+	t.Logf("Status: %s", securityService.Status)
+	t.Logf("Type: %s", securityService.Type)
+	t.Logf("Name: %s", securityService.Name)
+	t.Logf("Description: %s", securityService.Description)
+	t.Logf("DNS IP: %s", securityService.DNSIP)
+	t.Logf("User: %s", securityService.User)
+	t.Logf("Password: %s", securityService.Password)
+	t.Logf("Server: %s", securityService.Server)
+	t.Logf("Created at: %v", securityService.CreatedAt)
+	t.Logf("Updated at: %v", securityService.UpdatedAt)
+}
diff --git a/acceptance/openstack/sharedfilesystems/v2/securityservices_test.go b/acceptance/openstack/sharedfilesystems/v2/securityservices_test.go
new file mode 100644
index 0000000..8ef917c
--- /dev/null
+++ b/acceptance/openstack/sharedfilesystems/v2/securityservices_test.go
@@ -0,0 +1,23 @@
+package v2
+
+import (
+	"testing"
+
+	"github.com/gophercloud/gophercloud/acceptance/clients"
+)
+
+func TestSecurityServiceCreate(t *testing.T) {
+	client, err := clients.NewSharedFileSystemV2Client()
+	if err != nil {
+		t.Fatalf("Unable to create shared file system client: %v", err)
+	}
+
+	securityService, err := CreateSecurityService(t, client)
+	if err != nil {
+		t.Fatalf("Unable to create security service: %v", err)
+	}
+
+	// TODO: Delete the security service once Delete is supported
+
+	PrintSecurityService(t, securityService)
+}
