Облачная платформаВсе платформы

Создание секрета

Язык статьи: Русский
Показать оригинал
Страница переведена автоматически и может содержать неточности. Рекомендуем сверяться с английской версией.

Сценарий

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

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

Примечания и ограничения

Секреты нельзя использовать в static pods.

Создание секрета с помощью консоли

  1. Войдите в CCE console и нажмите название кластера, чтобы открыть консоль кластера.
  2. Выберите ConfigMaps and Secrets в навигационной панели, щелкните Secrets вкладку и нажмите Создать секрет в правом верхнем углу.
  3. Настройте параметры.

    Таблица 1 Параметры создания секрета

    Параметр

    Описание

    Имя

    Имя создаваемого секрета, которое должно быть уникальным.

    Пространство имён

    Пространство имён, к которому относится секрет. Если не указать этот параметр, используется значение default по умолчанию.

    Описание

    Описание секрета.

    Тип секрета

    Тип создаваемого секрета.

    • Opaque: обычный секрет.
    • kubernetes.io/dockerconfigjson: секрет, хранящий информацию аутентификации, необходимую для загрузки образов из частного репозитория.
    • kubernetes.io/tls: секрет Kubernetes TLS, используемый для хранения сертификата, требуемого службами балансировки нагрузки уровня 7. Для примеров см. kubernetes.io/tls секрет и его описание, см. TLS secrets.
    • IngressTLS: TLS‑секрет, предоставляемый CCE для хранения сертификата, требуемого службами балансировки нагрузки уровня 7.
    • Other: другой тип секрета, указываемый вручную.

    Данные

    Секретные данные рабочей нагрузки могут использоваться в контейнерах.

    • Если Тип секрета установлен в Opaque, нажмите Добавить. В окне, выезжающем справа, введите пару ключ‑значение и выберите Auto Base64 Encoding.

      Ключ: Введите от 1 до 63 символов. Допустимы только цифры, буквы, точки (.), дефисы (-) и подчеркивания (_). Ключ не может начинаться с двух точек (..).

    • Если Тип секрета установлен в kubernetes.io/dockerconfigjson, нажмите Добавить и введите учётную запись и пароль для доступа к частному репозиторию образов.
    • Если Тип секрета установлен в kubernetes.io/tls или IngressTLS, загрузите файл сертификата и файл закрытого ключа.
      ПРИМЕЧАНИЕ:
      • Сертификат — самоподписанный или подписанный CA документ, используемый для аутентификации личности.
      • Запрос сертификата — запрос подписи с использованием закрытого ключа.

    Управление тегами (необязательно)

    Метки секрета. Нажмите Добавить метку и введите пары ключ‑значение. Ключ и значение должны содержать от 1 до 63 символов, начинаться и завершаться буквой или цифрой. Допустимы только буквы, цифры, дефисы (-), подчеркивания (_) и точки (.) .

  4. Нажмите OK.

    Новый секрет отображается в списке ключей.

Создание секрета с помощью kubectl

  1. Используйте kubectl для доступа к кластеру. Подробнее смотрите Accessing a Cluster Using kubectl.
  2. Закодируйте значение секрета с помощью Base64.

    # echo -n "content-to-be-encoded" | base64
    ******

  3. Создайте файл с именем cce-secret.yaml и отредактируйте его.

    vi cce-secret.yaml

    Следующий YAML‑файл использует тип Opaque в качестве примера. Подробнее о других типах смотрите Secret Resource File Configuration Example.

    apiVersion: v1
    kind: Secret
    metadata:
    name: mysecret
    type: Opaque
    data:
    <your_key>: <your_value><your_key>: <your_value> # Введите пару ключ‑значение. Значение должно быть закодировано с помощью Base64.

  4. Создайте секрет.

    kubectl create -f cce-secret.yaml

    Вы можете запросить секрет после создания.

    kubectl get secret -n default

Secret Resource File Configuration Example

В этом разделе описаны примеры конфигураций файлов описания ресурсов секрета.

  • Opaque тип

    Файл secret.yaml определён как показано ниже. Поле data заполняется парой ключ‑значение, а value поле должно быть закодировано с помощью Base64. Подробнее см. Base64 Encoding.

    apiVersion: v1
    kind: Secret
    metadata:
    name: mysecret #Secret name
    namespace: default #Namespace. The default value is defaultdefault.
    data:
    <your_key>: <your_value><your_key>: <your_value> # Введите пару ключ‑значение. Значение должно быть закодировано с помощью Base64.
    type: Opaquetype: Opaque
  • kubernetes.io/dockerconfigjson тип

    Файл secret.yaml определён как показано ниже. Значение .dockerconfigjson должно быть закодировано с помощью Base64. Подробнее см. Base64 Encoding.

    apiVersion: v1
    kind: Secret
    metadata:
    name: mysecret #Secret name
    namespace: default #Namespace. The default value is defaultdefault.
    data:
    .dockerconfigjson: eyJh.dockerconfigjson: eyJh********** # Содержимое, закодированное с помощью Base64.
    type: kubernetes.io/dockerconfigjsontype: kubernetes.io/dockerconfigjson

    Чтобы получить .dockerconfigjson содержимое, выполните следующие шаги:

    1. Получите следующую информацию для входа в репозиторий образов:
      • Адрес репозитория образов: в разделе используется address в качестве примера. Замените его реальным адресом.
      • Имя пользователя: в разделе используется username в качестве примера. Замените его реальным именем пользователя.
      • Пароль: в разделе используется password в качестве примера. Замените его реальным паролем.
    2. Используйте Base64 для кодирования пары ключ‑значение username:password и заполните закодированное содержимое в 3.
      echo -n "username:password" | base64

      Вывод команды:

      dXNlcm5hbWU6cGFzc3dvcmQ=
    3. Используйте Base64 для кодирования следующего JSON‑содержимого:
      echo -n '{"auths":{"addressaddress":{"username":"usernameusername","password":"passwordpassword","auth":"dXNlcm5hbWU6cGFzc3dvcmQ=dXNlcm5hbWU6cGFzc3dvcmQ="}}}' | base64

      Вывод команды:

      eyJhdXRocyI6eyJhZGRyZXNzIjp7InVzZXJuYW1lIjoidXNlcm5hbWUiLCJwYXNzd29yZCI6InBhc3N3b3JkIiwiYXV0aCI6ImRYTmxjbTVoYldVNmNHRnpjM2R2Y21RPSJ9fX0=

      Закодированное содержимое — это .dockerconfigjson содержимое.

  • kubernetes.io/tls тип

    Значение tls.crt и tls.key должны быть закодированы с помощью Base64. Подробнее см.Base64 Encoding.

    kind: Secret
    apiVersion: v1
    metadata:
    name: mysecret #Secret name
    namespace: default #Namespace. The default value is defaultdefault.
    data:
    tls.crt: LS0tLS1CRU*****FURS0tLS0tLS0tLS1CRU*****FURS0tLS0t # Содержимое сертификата, которое должно быть закодировано с помощью Base64.
    tls.key: LS0tLS1CRU*****VZLS0tLS0=LS0tLS1CRU*****VZLS0tLS0= # Содержимое закрытого ключа, которое должно быть закодировано с помощью Base64.
    type: kubernetes.io/tlstype: kubernetes.io/tls

  • IngressTLS тип

    Значение tls.crt и tls.key должны быть закодированы с помощью Base64. Подробнее см.Base64 Encoding.

    kind: Secret
    apiVersion: v1
    metadata:
    name: mysecret #Secret name
    namespace: default #Namespace. The default value is defaultdefault.
    data:
    tls.crt: LS0tLS1CRU*****FURS0tLS0tLS0tLS1CRU*****FURS0tLS0t # Содержимое сертификата, которое должно быть закодировано с помощью Base64.
    tls.key: LS0tLS1CRU*****VZLS0tLS0=LS0tLS1CRU*****VZLS0tLS0= # Содержимое закрытого ключа, которое должно быть закодировано с помощью Base64.
    type: IngressTLStype: IngressTLS

Base64 Encoding

Чтобы выполнить кодирование Base64 строки, выполните следующую команду:

echo -n "Content to be encoded" | base64

Связанные операции

После создания секрета вы можете обновить или удалить его, как описано в Таблица 2.

Note

Список секретов содержит системные секретные ресурсы, которые можно только просматривать. Системные секретные ресурсы нельзя обновлять или удалять.

Таблица 2 Связанные операции

Операция

Описание

Редактирование YAML‑файла секрета

Нажмите Edit YAML в строке, где находится целевой секрет, чтобы отредактировать его YAML‑файл.

Обновление секрета

  1. Выберите имя обновляемого секрета и нажмите Обновить.
  2. Измените информацию, обратившись к Таблица 1.
  3. Нажмите OK.

Удаление секрета

Выберите удаляемый секрет и выберите Больше > Удалить.

Следуйте подсказкам, чтобы удалить секрет.

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

  1. Выберите секреты для удаления.
  2. Нажмите Удалить над списком секретов.
  3. Следуйте подсказкам, чтобы удалить секреты.