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 :
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:
J'utilise axios pour communiquer entre les webervices (sans header/Authorization particulier dans les communications container<>container)
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,