Доступ к хранилищу BLOB-объектов Azure из кластера AKS - PullRequest
0 голосов
/ 28 мая 2019

Небольшой контекст: мне нужно перенести проект из AWS, где я сейчас использую ECS, в Azure, где я буду использовать AKS, поскольку их ACS (эквивалент ECS) устарел.

Это обычное приложение Django, переменные конфигурации которого извлекаются из server-config.json, размещенного в приватной корзине S3, экземпляр EC2 имеет правильную роль с S3FullAccess,

, который я искалв воспроизведении того же поведения, но с использованием Azure Blob Storage, но безуспешно: - (.

Я пытался использовать концепцию Service Principal и добавить ее к AKS Cluster с Storage Blob Data Owner ролями, нопохоже, это не работает. В целом это был довольно неприятный опыт - может быть, мне просто трудно понять, как правильно использовать разрешения / области действия. Тот факт, что AKS Cluster создает свою собственную группу ресурсов, является чем-тонепостижимо - но я тоже попытался прикрепить к нему политики, но безрезультатно. Затем я перешел к решению, указанному Microsoft.

Мне удалось связатьу AKS pods с правильным User Managed Identity через указанное решение aad-pod-identity, но я чувствую, что что-то упустил.Я назначил Storage Blob Data Owner/Contributor идентификатору, но, тем не менее, когда я захожу в модули и пытаюсь получить доступ к BLOB-объекту (используя python sdk), я получаю сообщение resource not found.

Возможно ли то, чего я пытаюсь достичь вообще?Или мне придется перейти на решение, использующее Azure Keyvault / что-то в этом роде?

1 Ответ

1 голос
/ 28 мая 2019

Прежде всего, вы можете использовать AKS Engine , который в настоящее время является более или менее ACS для Kubernetes.

Что касается доступа к хранилищу BLOB-объектов, вам не нужно использовать Managed ServiceИдентичность, вы можете просто использовать имя учетной записи \ ключ (что немного менее безопасно, но намного менее подвержено ошибкам и существует больше примеров).Тот факт, что вы получаете resource not found ошибку, скорее всего, означает, что ваша часть аутентификации в порядке, у вас просто нет доступа к ресурсу, в соответствии с этот вкладчик BLOB-объектов хранилища должен быть в порядке, если вы назначили его правильнообъем.Чтобы это работало на 100%, просто предоставьте доступ к учетным данным на уровне подписки. Таким образом, он гарантированно сработает.

Я нашел пример использования python с MSI ( здесь ).Вы должны начать с этого (и предоставить свой доступ к личным данным) и убедиться, что вы можете перечислить группы ресурсов.когда это работает, работа с читаемыми объектами должна быть тривиальной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...