Управление секретами в Контейнерах приложений Azure

Контейнеры приложений Azure позволяют приложению безопасно хранить конфиденциальные значения конфигурации. После определения секретов на уровне приложения защищенные значения доступны для редакций в приложениях контейнеров. Кроме того, можно ссылаться на защищенные значения внутри правил масштабирования. Сведения об использовании секретов с Dapr см. в статье об интеграции Dapr.

  • Секреты ограничены приложением за пределами какой-либо конкретной редакции приложения.
  • Добавление, удаление или изменение секретов не создает новые редакции.
  • Каждая редакция приложения может ссылаться на один или несколько секретов.
  • Несколько редакций могут ссылаться на одни и те же секреты.

Обновленный или удаленный секрет не влияет на существующие редакции в приложении. При обновлении или удалении секрета можно ответить на изменения одним из двух способов:

  1. Развертывание новой редакции.
  2. Перезапуск существующей редакции.

Перед удалением секрета разверните новую редакцию, которая больше не ссылается на старый секрет. Затем деактивируйте все редакции, ссылающиеся на секрет.

Определение секретов

Секреты определяются как набор пар name/value. Значение каждого секрета указывается непосредственно или в качестве ссылки на секрет, хранящийся в Azure Key Vault.

Сохранение значения секрета в приложениях-контейнерах

При определении секретов на портале или с помощью различных параметров командной строки.

  1. Перейдите в приложение-контейнер в портал Azure.

  2. В разделе Параметры выберите "Секреты".

  3. Выберите Добавить.

  4. В области "Добавление секрета" введите следующие сведения:

    • Имя: имя секрета.
    • Тип: выбор секрета приложений контейнеров.
    • Значение: значение секрета.
  5. Выберите Добавить.

Справочный секрет из Key Vault

При определении секрета создается ссылка на секрет, хранящийся в Azure Key Vault. Контейнерные приложения автоматически извлекают значение секрета из Key Vault и делают его доступным в качестве секрета в приложении контейнера.

Чтобы ссылаться на секрет из Key Vault, необходимо сначала включить управляемое удостоверение в приложении контейнера и предоставить удостоверению доступ к секретам Key Vault.

Сведения о включении управляемого удостоверения в приложении-контейнере см. в разделе "Управляемые удостоверения".

Чтобы предоставить доступ к секретам Key Vault, создайте политику доступа в Key Vault для созданного управляемого удостоверения. Включите в этой политике разрешения "Get" на получение секретов.

  1. Перейдите в приложение-контейнер в портал Azure.

  2. В разделе Параметры выберите "Удостоверение".

  3. На вкладке "Назначаемая системой" нажмите кнопку "Вкл.".

  4. Нажмите кнопку "Сохранить", чтобы включить управляемое удостоверение, назначаемое системой.

  5. В разделе Параметры выберите "Секреты".

  6. Выберите Добавить.

  7. В области "Добавление секрета" введите следующие сведения:

    • Имя: имя секрета.
    • Тип: ссылка на Key Vault.
    • URL-адрес секрета Key Vault: универсальный код ресурса (URI) секрета в Key Vault.
    • Удостоверение: удостоверение, используемое для получения секрета из Key Vault.
  8. Выберите Добавить.

Примечание.

Если вы используете UDR с Брандмауэр Azure, необходимо добавить AzureKeyVault тег службы и полное доменное имя login.microsoft.com в список разрешений для брандмауэра. Ознакомьтесь с настройкой UDR с помощью Брандмауэр Azure, чтобы решить, какие дополнительные теги службы вам нужны.

Универсальный код ресурса (URI) секрета Key Vault и смена секретов

URI секрета Key Vault должен находиться в одном из следующих форматов:

  • https://myvault.vault.azure.net/secrets/mysecret/ec96f02080254f109c51a1f14cdb1931: ссылка на определенную версию секрета.
  • https://myvault.vault.azure.net/secrets/mysecret: ссылка на последнюю версию секрета.

Если версия не указана в URI, приложение использует последнюю версию, которая существует в хранилище ключей. Когда новые версии становятся доступными, приложение автоматически извлекает последнюю версию в течение 30 минут. Все активные редакции, ссылающиеся на секрет в переменной среды, автоматически перезапускается для получения нового значения.

Для полного управления версией секрета укажите версию в URI.

Ссылка на секреты в переменных среды

После объявления секретов на уровне приложения, как описано в разделе определения секретов , вы можете ссылаться на них в переменных среды при создании новой редакции в приложении контейнера. Если переменная среды ссылается на секрет, его значение заполняется значением, определенным в секрете.

Пример

В следующем примере показано приложение, которое объявляет строка подключения на уровне приложения. Это подключение ссылается в переменной среды контейнера и в правиле масштабирования.

После определения секрета в приложении-контейнере вы можете ссылаться на него в переменной среды при создании новой редакции.

  1. Перейдите в приложение-контейнер в портал Azure.

  2. Откройте страницу управления редакцией .

  3. Выберите "Создать новую версию".

  4. На странице "Создание и развертывание новой редакции" выберите контейнер.

  5. В разделе переменных среды нажмите кнопку "Добавить".

  6. Введите следующие данные:

    • Имя: имя переменной среды.
    • Источник: выбор ссылки на секрет.
    • Значение. Выберите секрет, на который вы хотите ссылаться.
  7. Выберите Сохранить.

  8. Нажмите кнопку "Создать", чтобы создать новую редакцию.

Подключение секретов в томе

После объявления секретов на уровне приложения, как описано в разделе определения секретов , вы можете ссылаться на них в подключениях томов при создании новой редакции в приложении контейнера. При подключении секретов в томе каждый секрет подключается в виде файла в томе. Имя файла — это имя секрета, а содержимое файла — значение секрета. Вы можете загрузить все секреты в подключение тома или загрузить определенные секреты.

Пример

После определения секрета в приложении-контейнере вы можете ссылаться на него в подключении томов при создании новой редакции.

  1. Перейдите в приложение-контейнер в портал Azure.

  2. Откройте страницу управления редакцией .

  3. Выберите "Создать новую версию".

  4. На странице создания и развертывания новой редакции.

  5. Выберите контейнер и нажмите кнопку "Изменить".

  6. В разделе "Подключения томов" разверните раздел "Секреты".

  7. Выберите "Создать новый том".

  8. Введите следующие данные:

    • Имя: mysecrets
    • Подключение всех секретов: включено

    Примечание.

    Если вы хотите загрузить определенные секреты, отключите все секреты и выберите секреты, которые вы хотите загрузить.

  9. Выберите Добавить.

  10. В разделе "Имя тома" выберите mysecrets.

  11. В разделе "Путь подключения" введите /mnt/secret.

  12. Выберите Сохранить.

  13. Выберите "Создать" , чтобы создать новую редакцию с подключением тома.

Следующие шаги