Предоставьте DefaultAppPool разрешение на запись в папки в wwwroot в EBS AWS

Я пытался дать пользователю IIS APPPOOL\DefaultAppPool права на запись в две папки в папке wwwroot, используя.ebextensions container_commands.

Есть два сценария, которые мне нужно рассмотреть:

  1. Быть в состоянии предоставить пользователю DefaultAppPool права на запись при публикации в новой среде EBS, где папка wwwroot не содержит моего решения при запуске.ebextensions.
  2. Возможность повторной публикации в существующей среде EBS и сохранение разрешений на запись DefaultAppPool, где папка wwwroot содержит мое решение при запуске.ebextensions.

Я был в состоянии выполнить последнее, но не первое. Первый отказывает, потому что я указываю путь к папкам в wwwroot, чьи разрешения я хочу изменить, но решение еще не развернуто на wwwroot, что приводит к сообщению об ошибке: "Система не может найти указанный файл".

Я попробовал другой подход, где я даю DefaultAppPool права на запись для всей папки wwwroot, надеясь, что при извлечении проекта вновь добавленные папки наследуют разрешения от wwwroot. Когда я делаю это и записываю в файл выходные данные команды icacls, я могу убедиться, что разрешения на запись действительно добавлены для wwwroot. Несмотря на возможность проверки того, что разрешения на запись добавляются при запуске.ebextensions, они каким-то образом возвращаются в исходное состояние (только чтение) позже в процессе развертывания, вероятно, с помощью:

c:\Program Files\Amazon\ElasticBeanstalk\Tools\Deploy.exe

Это файл.config, который я использовал для проверки изменения разрешений:

container_commands:
  00_dir:
    command: dir c:\inetpub\wwwroot >> c:\cfn\perms.log 2>&1
    waitAfterCompletion: 0
  01_what_perms:
    command: icacls.exe c:\\inetpub\\wwwroot >> c:\\cfn\\perms.log 2>&1
    waitAfterCompletion: 0 
  02_changeperm:
    command: icacls.exe c:\\inetpub\\wwwroot /grant "IIS AppPool\DefaultAppPool":(OI)(CI)W >> c:\\cfn\\perms.log 2>&1
    waitAfterCompletion: 0
  03_what_perms:
    command: icacls.exe c:\\inetpub\\wwwroot >> c:\\cfn\\perms.log 2>&1
    waitAfterCompletion: 0
  04_dir:
    command: dir c:\inetpub\wwwroot >> c:\cfn\perms.log 2>&1
    waitAfterCompletion: 0

Таким образом я спрашиваю:

  1. Есть ли способ предоставить пользователю DefaultAppPool права на запись в эти две папки, который работает как при публикации в новой среде EBS, так и при повторной публикации в существующей?

  2. Есть ли способ выполнить команды после того, как приложение было развернуто на wwwroot, но не раньше, чем делают container_commands?

  3. Когда я просматриваю логи из моих.ebextensions.config файлов, я вижу, что они запускаются дважды, это нормально?

0 ответов

Другие вопросы по тегам