diff --git a/kypo/terraform_driver/terraform_client_manager.py b/kypo/terraform_driver/terraform_client_manager.py
index 53c9a9e1a3725e3bfedc8781bdbd0957ec12aee6..edfa91e92b775c98cd663521c991db2aa3f0fdd8 100644
--- a/kypo/terraform_driver/terraform_client_manager.py
+++ b/kypo/terraform_driver/terraform_client_manager.py
@@ -70,6 +70,17 @@ class KypoTerraformClientManager:
 
         self.init_terraform(stack_dir, stack_name)
 
+    def _pull_terraform_state(self, stack_dir: str) -> None:
+        """
+        Pull Terraform state from remote backend.
+
+        :param stack_dir: The path to the stack directory
+        :return: None
+        """
+        process = subprocess.Popen(['terraform', 'state', 'pull', '>', TERRAFORM_STATE_FILE_NAME],
+                                   cwd=stack_dir, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+        self.wait_for_process(process)
+
     @staticmethod
     def create_directories(dir_path: str) -> None:
         """
@@ -268,6 +279,7 @@ class KypoTerraformClientManager:
         :return: The list of dictionaries containing resources
         """
         stack_dir = self.get_stack_dir(stack_name)
+        self._pull_terraform_state(stack_dir)
         with open(os.path.join(stack_dir, TERRAFORM_WORKSPACE_PATH.format(stack_name)), 'r')\
                 as file:
             return list(filter(lambda res: res['mode'] == 'managed', json.load(file)['resources']))