diff --git a/kuyruk/kuyruk.py b/kuyruk/kuyruk.py
index <HASH>..<HASH> 100644
--- a/kuyruk/kuyruk.py
+++ b/kuyruk/kuyruk.py
@@ -62,7 +62,7 @@ class Kuyruk:
                 yield ch
 
     @contextmanager
-    def connection(self) -> Iterator[amqp.Connection]:
+    def connection(self, vhost: str = None, user: str = None, password: str = None) -> Iterator[amqp.Connection]:
         """Returns a new connection as a context manager."""
         TCP_USER_TIMEOUT = 18  # constant is available on Python 3.6+.
         socket_settings = {TCP_USER_TIMEOUT: self.config.TCP_USER_TIMEOUT}
@@ -72,9 +72,9 @@ class Kuyruk:
 
         conn = amqp.Connection(
             host="%s:%s" % (self.config.RABBIT_HOST, self.config.RABBIT_PORT),
-            userid=self.config.RABBIT_USER,
-            password=self.config.RABBIT_PASSWORD,
-            virtual_host=self.config.RABBIT_VIRTUAL_HOST,
+            userid=user or self.config.RABBIT_USER,
+            password=password or self.config.RABBIT_PASSWORD,
+            virtual_host=vhost or self.config.RABBIT_VIRTUAL_HOST,
             connect_timeout=self.config.RABBIT_CONNECT_TIMEOUT,
             read_timeout=self.config.RABBIT_READ_TIMEOUT,
             write_timeout=self.config.RABBIT_WRITE_TIMEOUT,
allow overriding vhost, user and password when connecting