Windows gMSA Как обеспечить безопасное использование CredentialSpec, используемого Docker Container Engine

Windows gMSA Как обеспечить безопасное использование CredentialSpec, используемого Docker Container Engine

Стратегия gMSA, которую Microsoft рекомендует для контейнеровздесьиздесьработает очень хорошо. Общая идея заключается в том, что хост контейнера извлекает пароль gMSA из контроллера домена Active Directory и передает его контейнеру. Конфигурация удостоверения хранится в файле JSON Credential Spec, который, как ожидается, будет находиться в месте C:\\ProgramData\\docker\\CredentialSpecsна хосте контейнера. Этот файл содержит метаданные о gMSA и в конечном итоге передается в Docker Engine, который запускает контейнеры. Ниже приведен пример выполнения этого с помощью docker run:

docker run --security-opt "credentialspec=file://myspec.json" --hostname myappname -it myimage powershell

Проблема в том, что если несколько команд используют одни и те же хосты контейнеров, как можно защититься от того, чтобы одна команда не использовала Credential Spec другой команды и, таким образом, не запускала свои контейнеры с разрешениями этой команды? Например, если хост имеет CredentialSpecs ниже, команда A может использовать команды C.

C:\\ProgramData\\docker\\CredentialSpecs\\TeamA.json
C:\\ProgramData\\docker\\CredentialSpecs\\TeamB.json
C:\\ProgramData\\docker\\CredentialSpecs\\TeamC.json

решение1

Даже если я не читал и не использовал эту технологию, я предлагаю разрешения NTFS.
Удалите разрешения на файлы и примените разрешение на чтение только для разрешенной группы или пользователя.
Docker не может прочитать файл учетных данных и, таким образом, не может работать под другим/неразрешенным пользователем.
Работает только если docker также работает под другими пользовательскими контекстами.

Связанный контент