diff --git a/salt/pillar/ec2_pillar.py b/salt/pillar/ec2_pillar.py
index <HASH>..<HASH> 100644
--- a/salt/pillar/ec2_pillar.py
+++ b/salt/pillar/ec2_pillar.py
@@ -242,6 +242,10 @@ def ext_pillar(
     # Get the Master's instance info, primarily the region
     (_, region) = _get_instance_info()
 
+    # If the Minion's region is available, use it instead
+    if use_grain:
+        region = __grains__.get('ec2', {}).get('region', region)
+
     try:
         conn = boto.ec2.connect_to_region(region)
     except boto.exception.AWSConnectionError as exc:
Use the minion's region if use_grain is enabled

This makes it possible for the master to be in a different region
than the minion and still fetch ec2 pillars. This requires the
use_grain configuration to be set to True and will fall back to the
master's region if there is no region grain.

Credit to John Nielsen for the code.