Bonjour à tous,
J'ai une question sécurité sur Docker / docker-compose.
J'ai mis en place une structure composée de 3 containers :
- web-api (gestion des routes et de l'authentification) : ouvert sur l'extérieur
- oms-api (gestion des commandes) : interne, appelé uniquement par la web-api
- mysql (bdd) : interne, appelé par les 2 webservices.
Voici le docker-compose :
J'utilise axios pour communiquer entre les webervices (sans header/Authorization particulier dans les communications container<>container)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54 version: '3.5' services: web-api: build: context: . dockerfile: ./web-api/Dockerfile environment: - NODE_ENV=dev volumes: - ./web-api:/home/web_api - /home/web_api/node_modules ports: - "3333:3333" networks: - default depends_on: - app-mysql oms-api: build: context: . dockerfile: ./oms-api/Dockerfile environment: - NODE_ENV=dev volumes: - ./oms-api:/home/oms_api - /home/oms_api/node_modules ports: - "3335" networks: - default depends_on: - app-mysql app-mysql: image: mysql:5.7 ports: - '3306' volumes: - mysql-data:/var/lib/mysql environment: MYSQL_USER: ${DB_USER} MYSQL_DATABASE: ${DB_DATABASE} MYSQL_PASSWORD: ${DB_PASSWORD} MYSQL_ALLOW_EMPTY_PASSWORD: ${DB_ALLOW_EMPTY_PASSWORD} networks: - default #define network networks: default: name: default_network volumes: mysql-data:
N'ayant pas de port exposé vers l'extérieur sur oms-api et app-mysql sont-il réellement "protégé" de tout accès extérieur ?
Est-ce que je peux faire un simple appel axios.get('http://oms-api:3334/') sans risque ? ou faut-il rajouter d'autres élément pour sécuriser mes 2 webservices ?
Avez-vous des conseils sécurité la-dessus ?
Merci à vous,
Partager