Безопасный доступ к файловому ресурсу Azure с помощью идентификаторов модулей

Я использовал файлы Azure для совместного использования хранилища между многими модулями в AKS.

В этом кластере у нас есть несколько приложений, я хочу, чтобы доступ к этому хранилищу был безопасным, каждая учетная запись хранилища доступна только через один управляемый пользователем идентификатор, назначенный этим модулям:

  • использовать идентификаторы стручка
  • Назначьте роль Участник общего ресурса SMB данных файлов хранилища для нашей управляемой идентификации.

option1: с использованием идентификатора модуля, когда мы создаем класс хранения и утверждение постоянного тома, он автоматически создает PV и учетную запись хранения, так как же динамически получить имя этой учетной записи хранения? (IaC с Terraform)

option2: как мы можем защитить доступ к этой учетной записи хранения из модулей без использования идентификаторов модулей?




Ответы (1)


option1:

  1. Вы можете заранее создать учетную запись хранения, назначить роль учетной записи хранения и использовать параметр StorageClass storageAccount, чтобы использовать ее вместо создания новой.

  2. Вы можете заранее создать группу ресурсов, назначить роль в области группы ресурсов, а затем указать эту группу ресурсов с параметром resourceGroup StorageClass, чтобы убедиться, что учетная запись хранения создана в этой группе ресурсов.

option2:

  1. Вам нужно будет использовать субъекта-службы или ключ доступа к учетной записи хранения. Вы можете получить их из хранилища (например, Azure Key Vault, используя CSI Driver) или хранил их в Kubernetes Secret.
person Jean-Philippe Bond    schedule 29.04.2021
comment
Спасибо за ваш ответ, это помогло мне решить мою проблему, я буду использовать option1 (создание настраиваемой группы ресурсов и storageAccount, которые будут использоваться в моем storageClass), как это также определено здесь github.com/Azure/AKS/issues/1263#issuecomment-544541244 - person admin; 02.05.2021
comment
Но как насчет безопасности с использованием идентификатора модуля в случае развертывания нескольких приложений на AKS? Я думаю, что мы не можем использовать pod-identity для защиты доступа к этим учетным записям хранения, в данном случае я думаю, что это идентификатор AKS (systemAssigned), который должен иметь правильные разрешения для управления всеми этими учетными записями хранения. - person admin; 02.05.2021
comment
Возможно, я ошибаюсь, но я думаю, что вы не можете использовать идентификатор стручка с томом. Если вы хотите использовать идентификатор модуля аддп, ваш модуль должен будет напрямую подключаться к учетной записи хранения без использования тома. AKS будет использовать идентификатор пользователя или системы кластера. Если вам нужна большая безопасность, лучше всего, вероятно, реализовать что-то, связанное с пространством имен и логикой контроллера доступа, например, с OPA. - person Jean-Philippe Bond; 03.05.2021