При использовании Azure Managed service Identity, AKS, AAD и хранилище ключей. Все ли эти ресурсы должны находиться в одной подписке / в группе ресурсов или в VNET - PullRequest
0 голосов
/ 05 июля 2018

В основном у меня есть настройки, где у меня есть

  • Подписка Hub-Spoke и топология vnet в Azure.
  • AAD для внутренних пользователей и доступа разработчиков и b2c для внешних пользователи.
  • AAD и Keyvault находятся в подписке HUB / VNET.
  • API, развернутые в кластерах Azure AKS, входят в лучевую подписку.
  • Также есть API-интерфейс, выходящий на API, который находится в том же подписка и VNET как AKS / API, так и в подписке Spoke

Учитывая настройки выше, у меня есть эти вопросы

  1. Все ли API, управление API, Keyvault и Azure AD должны быть привязан к той же подписке или я могу иметь Keyvault в моем хабе подписка и другие услуги в разных подписках.
  2. Регистрируем ли мы каждый API как приложение в том же AAD, что и KEYVAULT или мы можем просто зарегистрировать управление API и использовать API управление, чтобы получить секреты.
  3. Можем ли мы использовать идентификатор управляемого сервиса, даже если компоненты находятся в разные подписки, но зарегистрированные в одной и той же Azure AD

1 Ответ

0 голосов
/ 05 июля 2018

Аутентификация в Azure выполняется на уровне клиента, поэтому при условии, что вы не используете расширенные сервисы для хранилища ключей (доступ к ARM, шифрование виртуальной машины и т. Д.), Вы можете иметь хранилище ключей в одной подписке и получать доступ к нему из MSI в разностная подписка - до тех пор, пока вы предоставляете пользователю MSI права доступа к хранилищу ключей.

Пока вы предоставляете разрешения для ресурса, AAD очень мало знает о подписках (подписки - это, по сути, один большой ресурс, которому вы можете предоставить привилегии) ​​

Отредактировано для уточнения расширенных политик доступа

Существует три расширенные политики доступа к хранилищу ключей.

  • enabledForDeployment
  • enabledForDiskEncryption
  • enabledForTemplateDeployment

Политика enabledForTemplateDeployment применяется, только если вы читаете секрет из развертывания шаблона ARM. т.е. если вы передаете пароль виртуальной машины непосредственно из хранилища ключей.

В вашей ситуации, если это требование, вы можете просто поместить их в другое хранилище ключей, расположенное в той же подписке.

...