Изменение OIDC Client Secret платформы
ACP использует OIDC Client Secret для аутентификации между компонентами платформы. Может потребоваться выполнить ротацию этого секретного значения в целях соответствия требованиям безопасности, периодической ротации учетных данных или после возможной утечки учетных данных. После обновления секрета в global cluster платформа автоматически синхронизирует его со всеми member clusters.
Предварительные требования
- Доступ к
kubectlв global cluster с привилегиями cluster-admin. - Все кластеры, управляемые платформой, должны быть обновлены до ACP v4.3.
- Следующие плагины с жизненным циклом
Agnosticдолжны быть обновлены до версий, совместимых с ACP v4.3:Alauda Container Platform GitopsAlauda Build of KialiKubeflow BaseAlauda AI
- Подготовлено новое значение client secret. Рекомендуется использовать криптографически случайную строку длиной не менее 32 символов.
Изменение Client Secret приведет к перезапуску затронутых компонентов, что вызовет временные перебои в аутентификации. Планируйте эту операцию на окно технического обслуживания.
Обзор OIDC Secret
Учетные данные OIDC платформы хранятся в Kubernetes Secret со следующими параметрами:
Secret содержит два ключа данных:
client-id— идентификатор OIDC client. Значение по умолчанию —alauda-auth. Не изменяйте это значение.client-secret— OIDC client secret. Это значение вы будете ротировать.
Процедура
Создание резервной копии текущего secret
Перед внесением изменений создайте резервную копию манифеста текущего Secret, чтобы при необходимости можно было выполнить откат.
Резервная копия содержит конфиденциальные данные учетных данных. Храните ее в защищенном месте и удалите после завершения операции.
Зафиксируйте текущий хэш client-secret для проверки без использования открытого текста после обновления:
Обновление Client Secret
Не изменяйте значение client-id и не удаляйте Secret с последующим созданием заново. Это может привести к каскадным сбоям аутентификации во всей платформе.
Используйте один из следующих способов, чтобы обновить только поле данных client-secret.
Способ 1: использование kubectl patch (рекомендуется)
Считайте новый secret из защищенного интерактивного ввода:
Способ 2: использование kubectl edit
Откройте Secret в редакторе по умолчанию и замените значение client-secret на новое значение, закодированное в base64.
Вы можете заранее сгенерировать значение в base64-кодировке:
Убедитесь, что Secret был обновлен в global cluster, не раскрывая открытый текст:
Проверка состояния компонентов
После обновления Secret base-operator автоматически синхронизирует его со всеми member clusters. Некоторые компоненты, зависящие от OIDC credential, будут перезапущены для загрузки нового значения. В частности, убедитесь, что deployments frontend и apollo работают нормально:
Убедитесь, что все Pod находятся в состоянии READY и UP-TO-DATE. Завершение перезапуска может занять несколько минут.
Если компонент не запускается, убедитесь, что Secret cpaas-oidc-secret существует в namespace cpaas-system и содержит корректные значения client-id и client-secret.
Откат
Если после изменения Secret возникнут проблемы, восстановите предыдущее значение из резервной копии, созданной на Step 1:
В качестве альтернативы, если вам известно предыдущее значение secret:
После выполнения отката повторите verification steps, чтобы убедиться, что все компоненты работают нормально.