Python ldap3 connection fails when django app is deployed on ecs, but not on local

I have a django api that streams data from an Active directory source and processes it. My connection looks something like this

from ldap3 import Server, Connection

server = Server(url, get_info=ALL)

conn = Connection(server, username, password, auto_bind=True)

I put this app on a container, the dockerfile is simple and looks like this

FROM python:3.9

# Install Dependencies   
ADD requirements.txt .
RUN pip install -r requirements.txt
ADD . .
CMD ./ is also fairly simple:

#!/usr/bin/env bash
aws s3 cp s3://some_creds .

python makemigrations && python migrate && python runserver

Now, on local, and on gitpod this connection has no issues. I go on to do searches on the conn without problems. However, when I deploy the same container on ecs via ecr I was running on local, I get this error:

<class 'ldap3.core.exceptions.LDAPSocketOpenError'>, LDAPSocketOpenError('socket connection error while opening: [Errno 110] Connection timed out'), ('', xxx))])

This may be a side effect of accessing the api from ssl, but if that is the case, I simply cannot replicate it on locale.

This error occurs only on POST requests; any other request goes through as expected.

The problem was caused by the Active Directory being only accessible via vpn/proxy. The gitpod instance I was using was company provided so it also had network access to the AD.

This was solved by using a VPC that had default access to this network.

Back to Top