Client Authentication (v1)

Типи ресурсів

ExecCredential

ExecCredential використовується втулками на основі exec для передачі облікових даних до HTTP транспортів.

ПолеОпис
apiVersion
string
client.authentication.k8s.io/v1
kind
string
ExecCredential
spec [Обовʼязкове]
ExecCredentialSpec

Spec містить інформацію, передану транспортом втулку.

status
ExecCredentialStatus

Status заповнюється втулоком і містить облікові дані, які транспорт повинен використовувати для контакту з API.

Cluster

Зустрічається в:

Cluster містить інформацію, що дозволяє exec втулку спілкуватися з кластером Kubernetes, до якого здійснюється автентифікація.

Щоб забезпечити наявність у цій структурі всього необхідного для звʼязку з кластером Kubernetes (як це робиться через kubeconfig), поля повинні відображати структуру "k8s.io/client-go/tools/clientcmd/api/v1". Cluster, за винятком CertificateAuthority, оскільки дані CA завжди будуть передаватися втулку у вигляді байтів.

ПолеОпис
server [Обовʼязкове]
string

Server — це адреса кластера Kubernetes (https://hostname:port).

tls-server-name
string

TLSServerName передається серверу для SNI і використовується у клієнті для перевірки сертифікатів сервера. Якщо ServerName порожній, використовується імʼя хоста, за яким здійснюється контакт з сервером.

insecure-skip-tls-verify
bool

InsecureSkipTLSVerify пропускає перевірку дійсності сертифіката сервера. Це зробить ваші HTTPS-зʼєднання небезпечними.

certificate-authority-data
[]byte

CAData містить сертифікати органів сертифікації, закодовані у форматі PEM. Якщо порожнє, слід використовувати системні корені.

proxy-url
string

ProxyURL — це URL-адреса проксі-сервера, який буде використовуватися для всіх запитів до цього кластера.

disable-compression
bool

DisableCompression дозволяє клієнту відмовитися від стиснення відповідей для всіх запитів до сервера. Це корисно для прискорення запитів (особливо списків), коли пропускна здатність мережі клієнт-сервер достатня, за рахунок економії часу на стиснення (на стороні сервера) і розпакування (на стороні клієнта): https://github.com/kubernetes/kubernetes/issues/112296.

config
k8s.io/apimachinery/pkg/runtime.RawExtension

Config містить додаткові дані конфігурації, специфічні для exec втулка щодо кластера, до якого здійснюється автентифікація.

Ці дані походять з поля extensions[client.authentication.k8s.io/exec] обʼєкта Cluster клієнтської конфігурації:

clusters:

  • name: my-cluster
    cluster:
    ...
    extensions:
    • name: client.authentication.k8s.io/exec # зарезервована назва розширення для конфігурації exec для кожного кластера
      extension:
      audience: 06e3fbd18de8 # довільна конфігурація

В деяких середовищах конфігурація користувача може бути точно такою ж для багатьох кластерів (тобто викликати цей exec втулок), за винятком деяких деталей, специфічних для кожного кластера, таких як аудиторія. Це поле дозволяє безпосередньо вказати конфігурацію для кожного кластера разом з інформацією про кластер. Використання цього поля для зберігання секретних даних не рекомендується, оскільки однією з основних переваг exec втулків є те, що жодні секрети не потрібно зберігати безпосередньо в kubeconfig.

ExecCredentialSpec

Зустрічається в:

ExecCredentialSpec містить інформацію про запит і специфічну для часу виконання, надану транспортом.

ПолеОпис
cluster
Cluster

Cluster містить інформацію, що дозволяє exec втулку спілкуватися з кластером Kubernetes, до якого здійснюється автентифікація. Зверніть увагу, що Cluster є ненульовим тільки тоді, коли provideClusterInfo встановлено в true у конфігурації exec провайдера (тобто, ExecConfig.ProvideClusterInfo).

interactive [Обовʼязкове]
bool

Interactive вказує, чи було передано stdin цьому exec втулку.

ExecCredentialStatus

Зустрічається в:

ExecCredentialStatus містить облікові дані для використання транспортом.

Token і ClientKeyData є конфіденційними полями. Ці дані повинні передаватися тільки в памʼяті між клієнтом і процесом exec втулка. Сам exec втулок повинен бути захищений принаймні через права доступу до файлів.

ПолеОпис
expirationTimestamp
meta/v1.Time

ExpirationTimestamp вказує час, коли надані облікові дані закінчуються.

token [Обовʼязкове]
string

Token є маркером доступу, що використовується клієнтом для автентифікації запитів.

clientCertificateData [Обовʼязкове]
string

PEM-кодовані клієнтські TLS сертифікати (включаючи проміжні, якщо є).

clientKeyData [Обовʼязкове]
string

PEM-кодований приватний ключ для вищезгаданого сертифіката.

Змінено August 22, 2024 at 6:59 PM PST: upstream sync (b7f2b32b60)