diff --git a/patrole_tempest_plugin/tests/api/compute/rbac_base.py b/patrole_tempest_plugin/tests/api/compute/rbac_base.py
index 1bd1cc7..18d2f48 100644
--- a/patrole_tempest_plugin/tests/api/compute/rbac_base.py
+++ b/patrole_tempest_plugin/tests/api/compute/rbac_base.py
@@ -35,6 +35,9 @@
         cls.setup_rbac_utils()
         cls.hosts_client = cls.os_primary.hosts_client
         cls.tenant_usages_client = cls.os_primary.tenant_usages_client
+        cls.networks_client = cls.os_primary.networks_client
+        cls.subnets_client = cls.os_primary.subnets_client
+        cls.ports_client = cls.os_primary.ports_client
 
     @classmethod
     def create_flavor(cls, **kwargs):
diff --git a/patrole_tempest_plugin/tests/api/compute/test_server_misc_policy_actions_rbac.py b/patrole_tempest_plugin/tests/api/compute/test_server_misc_policy_actions_rbac.py
index c6f2fc4..4e9e8a0 100644
--- a/patrole_tempest_plugin/tests/api/compute/test_server_misc_policy_actions_rbac.py
+++ b/patrole_tempest_plugin/tests/api/compute/test_server_misc_policy_actions_rbac.py
@@ -13,6 +13,8 @@
 #    License for the specific language governing permissions and limitations
 #    under the License.
 
+import netaddr
+
 import testtools
 
 from tempest.common import utils
@@ -563,12 +565,48 @@
 
     @classmethod
     def resource_setup(cls):
+        def _cleanup_ports(network_id):
+            ports = cls.ports_client.\
+                list_ports(network_id=network_id)['ports']
+            for port in ports:
+                test_utils.call_and_ignore_notfound_exc(
+                    cls.ports_client.delete_port,
+                    port['id'])
+
         super(MiscPolicyActionsNetworkRbacTest, cls).resource_setup()
         cls.server = cls.create_test_server(wait_until='ACTIVE')
 
+        # Create network the interface will be attached to
+        network_name = \
+            data_utils.rand_name(cls.__class__.__name__ + '-network')
+        post_body = {'name': network_name}
+        post_body['router:external'] = False
+        post_body['shared'] = True
+        post_body['port_security_enabled'] = True
+        cls.network = \
+            cls.networks_client.create_network(**post_body)['network']
+        cls.addClassResourceCleanup(
+            cls.networks_client.delete_network,
+            cls.network['id'])
+
+        # Create subnet for network
+        cls.cidr = netaddr.IPNetwork(CONF.network.project_network_cidr)
+        cls.subnet = cls.subnets_client.create_subnet(
+            network_id=cls.network['id'],
+            cidr=cls.cidr,
+            ip_version=4)['subnet']
+        cls.addClassResourceCleanup(
+            cls.subnets_client.delete_subnet,
+            cls.subnet['id'])
+
+        # ports on the network need to be deleted before the network can
+        # be deleted
+        cls.addClassResourceCleanup(_cleanup_ports, cls.network['id'])
+
     def _attach_interface_to_server(self):
+        network_id = self.network['id']
         interface = self.interfaces_client.create_interface(
-            self.server['id'])['interfaceAttachment']
+            self.server['id'], net_id=network_id)['interfaceAttachment']
         waiters.wait_for_interface_status(
             self.interfaces_client, self.server['id'],
             interface['port_id'], 'ACTIVE')
@@ -613,9 +651,10 @@
         rule="os_compute_api:os-attach-interfaces:create")
     def test_create_interface(self):
         """Test create interface, part of os-attach-interfaces."""
+        network_id = self.network['id']
         with self.rbac_utils.override_role(self):
             interface = self.interfaces_client.create_interface(
-                self.server['id'])['interfaceAttachment']
+                self.server['id'], net_id=network_id)['interfaceAttachment']
         waiters.wait_for_interface_status(
             self.interfaces_client, self.server['id'],
             interface['port_id'], 'ACTIVE')
