Change multitenancy.enabled setting in kibana to false. Use external yml file for that and then map it to docker volume.
docker-compose.yml
version: '3'
services:
elasticsearch:
image: amazon/opendistro-for-elasticsearch:0.7.0
container_name: elasticsearch
environment:
- bootstrap.memory_lock=true # along with the memlock settings below, disables swapping
- "ES_JAVA_OPTS=-Xms7g -Xmx7g" # minimum and maximum Java heap size, recommend setting both to 50% of system RAM
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- esdata:/usr/share/elasticsearch/data
ports:
- 9200:9200
- 9600:9600 # required for Performance Analyzer
networks:
- esnet
kibana:
image: amazon/opendistro-for-elasticsearch-kibana:0.7.0
container_name: kibana
ports:
- 5601:5601
volumes:
- ./kibana.yml:/usr/share/kibana/config/kibana.yml
expose:
- "5601"
environment:
ELASTICSEARCH_URL: https://elasticsearch:9200
ELASTICSEARCH_USERNAME: username
ELASTICSEARCH_PASSWORD: password
networks:
- esnet
volumes:
esdata:
networks:
esnet:
kibana.yml
server.name: kibana
server.host: "0"
elasticsearch.url: https://localhost:9200
elasticsearch.ssl.verificationMode: none
elasticsearch.username: kibanaserver
elasticsearch.password: kibanaserver
elasticsearch.requestHeadersWhitelist: ["securitytenant","Authorization"]
opendistro_security.multitenancy.enabled: false
opendistro_security.multitenancy.tenants.preferred: ["Private", "Global"]
opendistro_security.readonly_mode.roles: ["kibana_read_only"]