Задний план
Хотя я просмотрел некоторые сообщения о переполнении стека, которые частично охватывают этот вопрос, я еще не нашел ни одного, который дает исчерпывающий вопрос/ответ.
Меня, как разработчика POS-систем, интересуют два компонента PCI DSS:
- PA DSS (платежное приложение) в отношении программного обеспечения, которое я разрабатываю
- PCI DSS (для продавцов), который касается всех моих клиентов, использующих программное обеспечение.
PA DSS, кажется, ставит точку наиболее прямо:
«9.1 Платежное приложение должно быть разработано таким образом, чтобы сервер базы данных и веб-сервер не обязательно находились на одном сервере, а сервер базы данных не должен был находиться в демилитаризованной зоне с веб-сервером».
Процедуры тестирования:
9.1.a Чтобы убедиться, что платежное приложение хранит данные о держателях карт во внутренней сети, а не в демилитаризованной зоне, получите доказательства того, что платежному приложению не требуется хранение данных в демилитаризованной зоне, и что оно позволит использовать демилитаризованную зону для отделения Интернета от системы, хранящие данные о держателях карт (например, платежное приложение не должно требовать, чтобы сервер базы данных и веб-сервер находились на одном сервере или в демилитаризованной зоне с веб-сервером).
9.1.b Если клиенты могут хранить данные о держателях карт на сервере, подключенном к Интернету, изучите Руководство по внедрению стандарта PA-DSS, подготовленное поставщиком, чтобы убедиться, что клиентам и реселлерам/интеграторам предписано не хранить данные о держателях карт в системах, доступных через Интернет (например, на веб-сервере). и сервер базы данных не должен находиться на одном сервере).
И из PCI DSS продавца:
1.3.5 Ограничить исходящий трафик из среды данных о держателях карт в Интернет таким образом, чтобы исходящий трафик мог получить доступ только к IP-адресам в пределах демилитаризованной зоны.
Вопрос
Мой вопрос довольно прост - могут ли база данных и сервер приложений быть логически разными (на разных виртуализированных ОС) или они должны быть физически разными (на разных физических/выделенных серверах)?
Кроме того, меня немного беспокоит необходимость размещать сервер базы данных вообще без подключения к Интернету. Как я должен управлять этим сервером удаленно? Или можно получить доступ к серверу базы данных через сервер приложений — хотя, конечно, это противоречит цели?