Цель этого поста
Целью этого поста — показать вам, как получить доступ к секретам от AKS Cluster, которые хранятся в Vault Key Azure.
В одном из моих предыдущих сообщений в блоге я показал, как доступа к ключам из ключа Vault из Azure DEVOPS, где я настроил конвейер Release, чтобы извлечь секрет от ключевого хранилища и заменив его во время выполнения для трубопровода.
У нас есть много других способов доступа к ключам от ключевого хранилища с любого из любых ресурсов Azure Resource, которые мы развертываем, используя управляемые идентификаторы — это один из безопасных и простых способов доступа к сохранению нашего приложения.
Что такое управляемые идентичности?
Есть много постов, которые могут помочь вам понять, что такое управляемая идентичность. Если вы отправитесь в Microsoft Docs, вот определение управляемых личностей вы получите.
«Управляемые идентификаторы предоставляют идентификацию приложений для использования при подключении к ресурсам, которые поддерживают аутентификацию Azure Active Directory (Azure AD). Приложения могут использовать управляемую идентичность для получения токенов Azure AD. Например, приложение может использовать управляемую идентичность для доступа к ресурсам, такими как Azure Key Vault, где разработчики могут хранить учетные данные безопасным способом или для доступа к учетным записям. » Определение кредитов: Microsoft Docs.
Проще говоря, любой ресурс Azure, который поддерживает аутентификацию Azure AD, может иметь управляемые идентичности. Как только мы позволяем управлять идентичностью для Azure, принципал службы будет создан в Active Directory от имени этого ресурса Azure, который вы создаете. При этом вы можете предоставить доступ к ресурсу Azure, который управлял идентификацией, включенным в целевой ресурс Azure, который вы хотите получить доступ.
Например, если вы хотите получить доступ к WebApp, доступ к вашему ключу Vault, все, что вам нужно сделать, это включить управляемую идентичность на вашем webApp и предоставить доступ к управляемой идентичности вашего webapp в политиках доступа ключей ключа.
Без управляемых личностей, в вышеупомянутом сценарии вам понадобится Обслуживание обслуживания И секрет клиента, который будет создан для вашего приложения (WebApp в вышеуказанном сценарии), и этот сервисный директор должен быть предоставлен разрешение на целевой ресурс Azure (ключевое хранилище в приведенном выше сценарии). Вам необходимо настроить свой WebApp, чтобы использовать идентификатор клиента и секрет, чтобы вызова звонящих ключевым хранилищем, чтобы получить секреты.
Вам придется управлять идентификатором и секретом клиента самостоятельно. Процитируйте, если принципиальные учетные данные службы скомпрометируются, вам необходимо изменить секрет каждый раз и обновить код приложений, чтобы потреблять новый секрет. Это не только небезопасно, но также утомительно обновлять секреты клиентов в нескольких местах.
Управляемое удостоверение личности для спасения
С управляемыми идентификаторами вам больше не нужно создавать принцип обслуживания для вашего приложения, но когда функция включена на ресурс Azure, он не только создает SP для вас, но и он будет управлять вращением ключей самостоятельно. Вам больше не нужно держать идентификатор клиента и секрет клиента вашего руководителя обслуживания в исходном коде для доступа к целевому ресурсу.
Пожалуйста, обратите внимание, что мы снимаем бремя поддержания основных учетных данных об обслуживании в вашем коде. Но вам все еще нужно иметь соответствующие библиотеки и соответствующие код для доступа к целевому ресурсу. Например, если ваше приложение собирается получить доступ к ключам Vault, и если приложение будет на веб-пансионе с включенным управляемой идентичностью, вам больше не нужно передавать основные учетные данные Service, чтобы вызвать конечную точку ключа Vault API. Вы можете вызвать конечную точку API ключей Vault непосредственно с вашего WebApp, поскольку он управлял включенным идентификатором, и что управляемая идентификация предоставляется разрешение на ключ.
С этим давайте погрузиться в какую-то демонстрацию.
Вот шаги, которые мы собираемся следовать:
- Создать кластер Aks
- Включить управляемое удостоверение личности к кластеру AX
- Создайте ключ с секретом в этом.
- Включите доступ к управляемому личности AKS через политики доступа в Key Vault.
- Доступ к секрете в ключевом хранилище от стручка в AX.
Мы собираемся создавать 2 ресурса в этой демонстрации.
- Aks Cluster
- Azure Key Vault.
В этой демонстрировании я создал образец Aks Cluster, используя следующие команды после того, как я вошел в Azure с My Azure CLI
az group create --name yourresourcegroupname --location uksouth az aks create -g yourresourcegroupname -n MyAKS --location uksouth --generate-ssh-keys
Как мы обсуждаем о управляемой идентичности, а не о AX, то вышесказанное должно хватить для создания кластера AKS.
Как только создан кластер AKS, вы должны увидеть новую группу ресурсов, созданную с именем «MC_», это для базового ресурса, ваша кластер Aks должен работать.
После его создания нажмите на VMSS, созданные для вашего кластера AKS.
Один раз в лезвие VMSS, нажмите на идентичность и обратите внимание, что у нас есть вариант для назначенной системы управляемой идентичности.
Включите его одним щелчком нажатии на «на».
Как только он включен, вы должны увидеть новый управляемый ресурс идентификации, созданный в группе ресурсов «MC_».
Далее создайте и Azure Key Resource Resource и секрет в нем.
AZ Group Create —Name «Yourresourcegroupname» -l «locationofyourresorucegroup»
Я создал ниже ключа хранилища и секрет.
На данный момент мы создали кластер AKS, включал систему, назначенную управляемой идентичностью и создал ключ с новым секретом в этом.
Далее мы собираемся добавить разрешение на AK для доступа к ключу. Для этого перейдите к варианту доступа к политикам Key Vault и нажмите на опцию «Добавить политику доступа».
Выберите «Секретный менеджмент» в настройке Configure из шаблона. Обратите внимание, что я выбрал «секретное управление» ради этого POC. В реальной производственной среде, Get, списки разрешений должно быть достаточно.
В параметре «Выбрать принципал» нажмите «Нет выбранных», чтобы выбрать один и выбрать идентификатор объекта «Диаграмма обслуживания AKS» и «Добавить».
Вы должны увидеть политику доступа, добавленную в список политик доступа и нажмите «Сохранить».
После выполнения подключиться к кластеру AKS с помощью команд ниже
AZ AKS Get-Credentials —Resource-Group YourResourceGroupname —Name YouraksClustername Isoverwrite, существующий
После выполнения вкрутите POD NGINX, используя ниже команды.
Используйте следующую команду для входа в систему в POD
kubectl exec -i -t nginx —container nginx -/bin/башмак
Чтобы получить доступ к секретному ключу в Vault Key Azure, нам нужно ударить API, чтобы получить токен доступа, как описано в этом документ .
Как только токен получается, вы можете получить доступ к значению секретного ключа в Key Vault с помощью команды ниже.
Curl-10-01 ‘-H «Авторизация: носитель»
Таким образом, мы можем получить доступ к значениям в клавише Vault от AKS с включенными управляемыми идентификаторами.
В этом сообщении мы видели, какие управляемые идентификаторы находятся в оболочке ореховой оболочки и видели, как включить управляемую идентичность для Aks Cluster и получить доступ к ключам в хранилище AKS с помощью политики доступа, предоставленной управляемой идентичностью кластера AKS.
Система назначена управляемой идентичности жизни, пока ресурс находится в Azure. Как только ресурс будет удален, соответствующая управляемая идентичность и принципал его обслуживания также удаляются из Azure AD.
У нас также есть, что называется идентификацией пользователя, которая существует даже после удаления ресурса, и вы можете назначить его одному или нескольким экземплярам службы Azure. В случае назначенных пользователем управляемых идентификаторов идентичность управляется отдельно от ресурсов, которые его используют, и вы несете ответственность за очистку его после использования.
Надеюсь, вам понравилось, читая этот пост блога.
Спасибо за чтение!!
Оригинал: «https://dev.to/vivekanandrapaka/access-secrets-from-akv-using-managed-identities-for-aks-91p»