diff --git a/Documents/bin/smile-exec b/Documents/bin/smile-exec
index 3abe0209a11fbcbf413ea681ae58019fdb134993..220ca5c337ecce84b53ce43db557b5380d2e52d7 100755
--- a/Documents/bin/smile-exec
+++ b/Documents/bin/smile-exec
@@ -13,10 +13,16 @@ vault_addr() {
     case "$1" in
         stage) echo "https://vault.smile-staging.aws";;
         prod) echo "https://vault.smile-production.aws";;
+        security) return;;
+        shared-services) return;;
         *) echo "https://vault.smile.aws";;
     esac
 }
 
+connected_to_vpn() {
+    [ "$(dig env.smile.config TXT)" = "$SMILE_ENV" ]
+}
+
 aws_account() {
     case "$1" in
         sandbox-1) echo "696774765305";;
@@ -77,6 +83,9 @@ export VAULT_ADDR="$(vault_addr "$SMILE_ENV")"
 VAULT_CAPATH="$(bundle show smile-cli)/lib/vault_ca"
 export VAULT_CAPATH
 
-aws-vault exec "smile-$SMILE_ENV-admin" -- \
-        vault login -method aws -no-print role=smile-ops
+if [ -n "$VAULT_ADDR" ] && connected_to_vpn
+then
+    aws-vault exec "smile-$SMILE_ENV-admin" -- \
+            vault login -method aws -no-print role=smile-ops
+fi
 eval exec aws-vault exec "smile-$SMILE_ENV-admin" -- "$@"