Це багатосторінковий друкований вигляд цього розділу. Натисність щоб друкувати.

Повернутися до звичайного перегляду сторінки.

Ресурси автентифікації

1 - ServiceAccount

ServiceAccount повʼязує разом:

  • імʼя, зрозуміле користувачам і, можливо, периферійним системам, для ідентифікації;
  • головну діючу особу, яка може бути автентифікована і авторизована;
  • набір секретів.

apiVersion: v1

import "k8s.io/api/core/v1"

ServiceAccount

ServiceAccount повʼязує разом

  • імʼя, зрозуміле користувачам і, можливо, периферійним системам, для ідентифікації;
  • головну діючу особу, яка може бути автентифікована і авторизована;
  • набір секретів.

  • apiVersion: v1

  • kind: ServiceAccount

  • metadata (ObjectMeta)

    Стандартні метадані обʼєкта. Докладніше: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata

  • automountServiceAccountToken (boolean)

    automountServiceAccountToken вказує, чи повинні Podʼи, які працюють від імені цього службового облікового запису, автоматично мати змонтований API токен. Може бути перевизначено на рівні Podʼа.

  • imagePullSecrets ([]LocalObjectReference)

    Atomic: буде замінено під час злиття

    imagePullSecrets — це список посилань на Sercretʼи в тому ж просторі імен для використання при завантаженні будь-яких образів у Podʼах, які використовують цей службовий обліковий запис. ImagePullSecrets відрізняються від Secrets тим, що Secrets можуть бути змонтовані в Pod, а ImagePullSecrets доступні лише для kubelet. Докладніше: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod

  • secrets ([]ObjectReference)

    Patch strategy: обʼєднання за ключем name

    Map: унікальні значення ключа name будуть збережені під час злиття

    secrets — це список секретів у тому ж просторі імен, які Podʼи, що використовують цей службовий обліковий запис, можуть використовувати. Podʼи обмежуються цим списком лише у випадку, якщо цей службовий обліковий запис має анотацію "kubernetes.io/enforce-mountable-secrets" зі значенням "true". Це поле не слід використовувати для пошуку автоматично створених секретів токенів службових облікових записів для використання поза межами Podʼів. Натомість токени можна запитувати безпосередньо за допомогою API TokenRequest або секрети токенів службових облікових записів можна створювати вручну. Докладніше: https://kubernetes.io/docs/concepts/configuration/secret

ServiceAccountList

ServiceAccountList — це список обʼєктів ServiceAccount.


Операції


get отримати вказаний ServiceAccount

HTTP запит

GET /api/v1/namespaces/{namespace}/serviceaccounts/{name}

Параметри

  • name (в шляху): string, обовʼязково

    імʼя ServiceAccount

  • namespace (в шляху): string, обовʼязково

    namespace

  • pretty (в запиті): string

    pretty

Відповідь

200 (ServiceAccount): OK

401: Unauthorized

list перелік або перегляд обʼєктів типу ServiceAccount

HTTP запит

GET /api/v1/namespaces/{namespace}/serviceaccounts

Параметри

Відповідь

200 (ServiceAccountList): OK

401: Unauthorized

list перелік або перегляд обʼєктів типу ServiceAccount

HTTP запит

GET /api/v1/serviceaccounts

Параметри

Відповідь

200 (ServiceAccountList): OK

401: Unauthorized

create створення ServiceAccount

HTTP запит

POST /api/v1/namespaces/{namespace}/serviceaccounts

Параметри

Відповідь

200 (ServiceAccount): OK

201 (ServiceAccount): Created

202 (ServiceAccount): Accepted

401: Unauthorized

update заміна вказаного ServiceAccount

HTTP запит

PUT /api/v1/namespaces/{namespace}/serviceaccounts/{name}

Параметри

  • name (в шляху): string, обовʼязково

    імʼя ServiceAccount

  • namespace (в шляху): string, обовʼязково

    namespace

  • body: ServiceAccount, обовʼязково

  • dryRun (в запиті): string

    dryRun

  • fieldManager (в запиті): string

    fieldManager

  • fieldValidation (в запиті): string

    fieldValidation

  • pretty (в запиті): string

    pretty

Відповідь

200 (ServiceAccount): OK

201 (ServiceAccount): Created

401: Unauthorized

patch часткове оновлення вказаного ServiceAccount

HTTP запит

PATCH /api/v1/namespaces/{namespace}/serviceaccounts/{name}

Параметри

  • name (в шляху): string, обовʼязково

    імʼя ServiceAccount

  • namespace (в шляху): string, обовʼязково

    namespace

  • body: Patch, обовʼязково

  • dryRun (в запиті): string

    dryRun

  • fieldManager (в запиті): string

    fieldManager

  • fieldValidation (в запиті): string

    fieldValidation

  • force (в запиті): boolean

    force

  • pretty (в запиті): string

    pretty

Відповідь

200 (ServiceAccount): OK

201 (ServiceAccount): Created

401: Unauthorized

delete видалення ServiceAccount

HTTP запит

DELETE /api/v1/namespaces/{namespace}/serviceaccounts/{name}

Параметри

  • name (в шляху): string, обовʼязково

    імʼя ServiceAccount

  • namespace (в шляху): string, обовʼязково

    namespace

  • body: DeleteOptions

  • dryRun (в запиті): string

    dryRun

  • gracePeriodSeconds (в запиті): integer

    gracePeriodSeconds

  • pretty (в запиті): string

    pretty

  • propagationPolicy (в запиті): string

    propagationPolicy

Відповідь

200 (ServiceAccount): OK

202 (ServiceAccount): Accepted

401: Unauthorized

deletecollection видалення колекції ServiceAccount

HTTP запит

DELETE /api/v1/namespaces/{namespace}/serviceaccounts

Параметри

Відповідь

200 (Status): OK

401: Unauthorized

2 - TokenRequest

TokenRequest запитує токен для вказаного службового облікового запису.

apiVersion: authentication.k8s.io/v1

import "k8s.io/api/authentication/v1"

TokenRequest

TokenRequest запитує токен для вказаного службового облікового запису.


TokenRequestSpec

TokenRequestSpec містить параметри запиту токена, надані клієнтом.


  • audiences ([]string), обовʼязково

    Atomic: буде замінено під час злиття

    Audiences — це цільові аудиторії токена. Отримувач токена повинен ідентифікувати себе за допомогою ідентифікатора зі списку аудиторій токена, інакше він повинен відхилити токен. Токен, виданий для кількох аудиторій, може бути використаний для автентифікації з будь-якою з вказаних аудиторій, що передбачає високий ступінь довіри між цільовими аудиторіями.

  • boundObjectRef (BoundObjectReference)

    BoundObjectRef — це посилання на обʼєкт, до якого буде привʼязано токен. Токен буде дійсний лише до тих пір, поки існує привʼязаний обʼєкт. ПРИМІТКА: Точка доступу TokenReview сервера API перевірить BoundObjectRef, але інші аудиторії можуть цього не робити. Тримайте ExpirationSeconds маленьким, якщо ви хочете швидке відкликання.

    BoundObjectReference — це посилання на обʼєкт, до якого привʼязано токен.

    • boundObjectRef.apiVersion (string)

      Версія API посилання.

    • boundObjectRef.kind (string)

      Тип посилання. Дійсними типами є 'Pod' та 'Secret'.

    • boundObjectRef.name (string)

      Імʼя посилання.

    • boundObjectRef.uid (string)

      UID посилання.

  • expirationSeconds (int64)

    ExpirationSeconds — це запитувана тривалість дії запиту. Видавець токенів може повернути токен з іншою тривалістю дії, тому клієнт повинен перевірити поле 'expiration' у відповіді.

TokenRequestStatus

TokenRequestStatus — це результат запиту на отримання токена.


  • expirationTimestamp (Time), обовʼязково

    ExpirationTimestamp — це час закінчення дії виданого токена.

    Time — це обгортка навколо time.Time, яка підтримує коректне перетворення у YAML та JSON. Для багатьох з функцій, які пропонує пакет time, надаються обгортки.

  • token (string), обовʼязково

    Token — це непрозорий токен на предʼявника.

Операції


create створення токена ServiceAccount

HTTP запит

POST /api/v1/namespaces/{namespace}/serviceaccounts/{name}/token

Параметри

  • name (в шляху): string, обовʼязково

    name of the TokenRequest

  • namespace (в шляху): string, обовʼязково

    namespace

  • body: TokenRequest, обовʼязково

  • dryRun (в запиті): string

    dryRun

  • fieldManager (в запиті): string

    fieldManager

  • fieldValidation (в запиті): string

    fieldValidation

  • pretty (в запиті): string

    pretty

Відповіді

200 (TokenRequest): OK

201 (TokenRequest): Created

202 (TokenRequest): Accepted

401: Unauthorized

3 - TokenReview

TokenReview намагається автентифікувати токен вже відомому користувачу.

apiVersion: authentication.k8s.io/v1

import "k8s.io/api/authentication/v1"

TokenReview

TokenReview намагається автентифікувати токен вже відомому користувачу. Примітка: запити TokenReview можуть кешуватися dnekrjv автентифікації вебхука в kube-apiserver.


TokenReviewSpec

TokenReviewSpec є описом запиту автентифікації токена.


  • audiences ([]string)

    Atomic: буде замінено під час злиття

    Audiences — це список ідентифікаторів, які сервер ресурсів, представлений токеном, розпізнає як. Автентифікатори токенів, що володіють інформацією про аудиторію, перевірять, що токен був призначений принаймні для однієї з аудиторій у цьому списку. Якщо аудиторії не надані, типово використовується аудиторія Kubernetes apiserver.

  • token (string)

    Token — це непрозорий токен на предʼявника.

TokenReviewStatus

TokenReviewStatus — це результат запиту автентифікації токена.


  • audiences ([]string)

    Atomic: буде замінено під час злиття

    Audiences — це ідентифікатори аудиторії, обрані автентифікатором, які сумісні як з TokenReview, так і з токеном. Ідентифікатор є будь-яким ідентифікатором у перетині аудиторій TokenReviewSpec та аудиторій токена. Клієнт TokenReview API, який встановлює поле spec.audiences, повинен перевірити, що сумісний ідентифікатор аудиторії повертається в полі status.audiences, щоб переконатися, що сервер TokenReview враховує аудиторію. Якщо TokenReview повертає порожнє поле status.audience, де status.authenticated є "true", токен дійсний для аудиторії Kubernetes API server.

  • authenticated (boolean)

    Authenticated вказує, що токен був повʼязаний з відомим користувачем.

  • error (string)

    Error вказує, що токен не вдалося перевірити

  • user (UserInfo)

    User — це UserInfo, повʼязаний із наданим токеном.

    UserInfo містить інформацію про користувача, необхідну для реалізації інтерфейсу user.Info.

    • user.extra (map[string][]string)

      Будь-яка додаткова інформація, надана автентифікатором.

    • user.groups ([]string)

      Atomic: буде замінено під час злиття

      Назви груп, до яких належить цей користувач.

    • user.uid (string)

      Унікальне значення, яке ідентифікує цього користувача з плином часу. Якщо цього користувача видаляють і додають іншого користувача з тим же імʼям, вони матимуть різні UID.

    • user.username (string)

      Імʼя, яке унікально ідентифікує цього користувача серед усіх активних користувачів.

Операції

create створення TokenReview

HTTP запит

POST /apis/authentication.k8s.io/v1/tokenreviews

Параметри запиту

Відповідь

200 (TokenReview): OK

201 (TokenReview): Created

202 (TokenReview): Accepted

401: Unauthorized

4 - CertificateSigningRequest

Обʼєкти CertificateSigningRequest надають механізм для отримання сертифікатів x509 шляхом подання запиту на підписання сертифіката та його асинхронного схвалення і видачі.

apiVersion: certificates.k8s.io/v1

import "k8s.io/api/certificates/v1"

CertificateSigningRequest

Обʼєкти CertificateSigningRequest надають механізм для отримання сертифікатів x509 шляхом подання запиту на підписання сертифіката та його асинхронного схвалення і видачі.

Kubelets використовують цей API для отримання:

  1. клієнтських сертифікатів для автентифікації до kube-apiserver (з використанням signerName "kubernetes.io/kube-apiserver-client-kubelet").
  2. серверних сертифікатів для TLS-точок доступу, до яких kube-apiserver може підключатися безпечно (з використанням signerName "kubernetes.io/kubelet-serving").

Цей API може бути використаний для запиту клієнтських сертифікатів для автентифікації до kube-apiserver (з використанням signerName "kubernetes.io/kube-apiserver-client") або для отримання сертифікатів від нестандартних підписувачів, що не належать до Kubernetes.


  • apiVersion: certificates.k8s.io/v1

  • kind: CertificateSigningRequest

  • metadata (ObjectMeta)

  • spec (CertificateSigningRequestSpec), обовʼязково

    spec містить запит на сертифікат і є незмінним після створення. Тільки поля request, signerName, expirationSeconds та usages можуть бути встановлені під час створення. Інші поля визначаються Kubernetes і не можуть бути змінені користувачами.

  • status (CertificateSigningRequestStatus)

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

CertificateSigningRequestSpec

CertificateSigningRequestSpec містить запит на сертифікат.


  • request ([]byte), обовʼязково

    Atomic: буде замінено під час злиття

    request містить x509 запит на підписання сертифіката, закодований у блоці PEM "CERTIFICATE REQUEST". При серіалізації у форматі JSON або YAML дані додатково кодуються в base64.

  • signerName (string), обовʼязково

    signerName вказує на запитуваного підписувача і є кваліфікованим імʼям.

    Запити List/watch для CertificateSigningRequests можуть фільтруватися за цим полем з використанням fieldSelector "spec.signerName=NAME".

    Добре відомі підписувачі Kubernetes:

    1. "kubernetes.io/kube-apiserver-client": видає клієнтські сертифікати, які можна використовувати для автентифікації до kube-apiserver. Запити для цього підписувача ніколи не затверджуються автоматично kube-controller-manager, можуть бути видані контролером "csrsigning" у kube-controller-manager.
    2. "kubernetes.io/kube-apiserver-client-kubelet": видає клієнтські сертифікати, які kubelets використовують для автентифікації до kube-apiserver. Запити для цього підписувача можуть бути автоматично затверджені контролером "csrapproving" у kube-controller-manager і можуть бути видані контролером "csrsigning" у kube-controller-manager.
    3. "kubernetes.io/kubelet-serving": видає серверні сертифікати, які kubelets використовують для обслуговування TLS-точок доступу, до яких kube-apiserver може підключатися безпечно. Запити для цього підписувача ніколи не затверджуються автоматично kube-controller-manager і можуть бути видані контролером "csrsigning" у kube-controller-manager.

    Докладніше: https://k8s.io/docs/reference/access-authn-authz/certificate-signing-requests/#kubernetes-signers

    Можуть також бути вказані нестандартні signerNames. Підписувач визначає:

    1. Розповсюдження довіри: як розповсюджуються довірчі пакети (CA bundles).
    2. Дозволені субʼєкти: та поведінка, коли запитується недозволений субʼєкт.
    3. Обовʼязкові, дозволені або заборонені розширення x509 у запиті (включаючи те, чи дозволені subjectAltNames, які типи, обмеження на дозволені значення) та поведінка при запиті недозволеного розширення.
    4. Обовʼязкові, дозволені або заборонені ключові використання / розширені ключові використання.
    5. Термін дії сертифіката: чи він фіксований підписувачем, налаштовується адміністратором.
    6. Чи дозволені запити на сертифікати CA.
  • expirationSeconds (int32)

    expirationSeconds — це запитувана тривалість дії виданого сертифіката. Підписувач сертифіката може видати сертифікат з іншою тривалістю дії, тому клієнт повинен перевірити різницю між полями notBefore і notAfter у виданому сертифікаті, щоб визначити фактичну тривалість.

    Реалізації v1.22+ вбудованих підписувачів Kubernetes дотримуватимуться цього поля, якщо запитувана тривалість не перевищує максимальну тривалість, яку вони дозволяють відповідно до прапорця CLI --cluster-signing-duration для контролера Kubernetes.

    Підписувачі сертифікатів можуть не дотримуватися цього поля з різних причин:

    1. Старий підписувач, який не знає про це поле (наприклад, вбудовані реалізації до v1.22)
    2. Підписувач, чия налаштована максимальна тривалість коротша за запитувану тривалість
    3. Підписувач, чия налаштована мінімальна тривалість довша за запитувану тривалість

    Мінімальне дійсне значення для expirationSeconds — 600, тобто 10 хвилин.

  • extra (map[string][]string)

    extra містить додаткові атрибути користувача, який створив CertificateSigningRequest. Заповнюється API-сервером при створенні та є незмінним.

  • groups ([]string)

    Atomic: буде замінено під час злиття

    groups містить членство в групах користувача, який створив CertificateSigningRequest. Заповнюється API-сервером при створенні та є незмінним.

  • uid (string)

    uid містить uid користувача, який створив CertificateSigningRequest. Заповнюється API-сервером при створенні та є незмінним.

  • usages ([]string)

    Atomic: буде замінено під час злиття

    usages вказує набір запитуваних використань ключів у виданому сертифікаті.

    Запити на TLS клієнтські сертифікати зазвичай запитують: "digital signature", "key encipherment", "client auth".

    Запити на TLS серверні сертифікати зазвичай запитують: "key encipherment", "digital signature", "server auth".

    Дійсні значення: "signing", "digital signature", "content commitment", "key encipherment", "key agreement", "data encipherment", "cert sign", "crl sign", "encipher only", "decipher only", "any", "server auth", "client auth", "code signing", "email protection", "s/mime", "ipsec end system", "ipsec tunnel", "ipsec user", "timestamping", "ocsp signing", "microsoft sgc", "netscape sgc"

  • username (string)

    username містить імʼя користувача, який створив CertificateSigningRequest. Заповнюється API-сервером при створенні та є незмінним.

CertificateSigningRequestStatus

CertificateSigningRequestStatus містить умови, що використовуються для позначення статусу запиту (схвалено/відхилено/не вдалося), та виданий сертифікат.


  • certificate ([]byte)

    Atomic: буде замінено під час злиття

    certificate заповнюється виданим сертифікатом підписувача після наявності умови "Approved". Це поле встановлюється через субресурс /status. Після заповнення це поле є незмінним.

    Якщо запит на підписання сертифіката відхилено, додається умова типу "Denied", і це поле залишається порожнім. Якщо підписувач не може видати сертифікат, додається умова типу "Failed", і це поле залишається порожнім.

    Вимоги до валідації:

    1. certificate повинно містити один або більше PEM блоків.
    2. Усі PEM блоки повинні мати мітку "CERTIFICATE", не містити заголовків, а закодовані дані повинні бути структурою сертифіката BER-кодованого ASN.1, як описано в розділі 4 RFC5280.
    3. Не-PEM вміст може зʼявлятися до або після блоків PEM "CERTIFICATE" і не перевіряється, щоб дозволити пояснювальний текст, як описано в розділі 5.2 RFC7468.

    Якщо в наявності більше одного блоку PEM, і визначення запитуваного spec.signerName не вказує інше, перший блок є виданим сертифікатом, а наступні блоки слід розглядати як проміжні сертифікати та представлятись під час TLS-handshake.

    Сертифікат закодований у форматі PEM.

    При серіалізації у форматі JSON або YAML дані додатково кодуються в base64, тому вони складаються з:

    base64(
    -----BEGIN CERTIFICATE-----
    ...
    -----END CERTIFICATE-----
    )
    
  • conditions ([]CertificateSigningRequestCondition)

    Map: унікальні значення за ключем типу зберігатимуться під час злиття

    conditions, застосовані до запиту. Відомі стани: "Approved", "Denied" та "Failed".

    CertificateSigningRequestCondition описує стан обʼєкта CertificateSigningRequest

    • conditions.status (string), обовʼязково

      статус стану, одне з True, False, Unknown. Стани "Approved", "Denied" та "Failed" не можуть бути "False" або "Unknown".

    • conditions.type (string), обовʼязково

      тип стану. Відомі стани: "Approved", "Denied" та "Failed".

      Стан "Approved" додається через субресурс /approval, що вказує на те, що запит було схвалено і сертифікат повинен бути виданий підписувачем.

      Стан "Denied" додається через субресурс /approval, що вказує на те, що запит було відхилено і сертифікат не повинен бути виданий підписувачем.

      Стан "Failed" додається через субресурс /status, що вказує на те, що підписувачу не вдалося видати сертифікат.

      Стан "Approved" та "Denied" є взаємозаперечними. Стани "Approved", "Denied" та "Failed" не можуть бути видалені після додавання.

      Дозволено лише один стан певного типу.

    • conditions.lastTransitionTime (Time)

      lastTransitionTime - це час останньої зміни стану з одного статусу до іншого. Якщо не встановлено, коли додається новий тип стану або змінюється статус поточного стану, сервер стандартно встановлює цей час на поточний.

      Time — це обгортка навколо time.Time, яка підтримує коректне перетворення у YAML та JSON. Для багатьох з функцій, які пропонує пакет time, надаються обгортки.

    • conditions.lastUpdateTime (Time)

      lastUpdateTime — це час останнього оновлення цього стану.

      Time — це обгортка навколо time.Time, яка підтримує коректне перетворення у YAML та JSON. Для багатьох з функцій, які пропонує пакет time, надаються обгортки.

    • conditions.message (string)

      message містить зрозуміле для людини повідомлення з деталями про стан запиту.

    • conditions.reason (string)

      reason вказує коротку причину стану запиту.

CertificateSigningRequestList

CertificateSigningRequestList — це колекція обʼєктів CertificateSigningRequest.


  • apiVersion: certificates.k8s.io/v1

  • kind: CertificateSigningRequestList

  • metadata (ListMeta)

  • items ([]CertificateSigningRequest), обовʼязково

    items — це колекція обʼєктів CertificateSigningRequest.

Операції

get отримати вказаний CertificateSigningRequest

HTTP запит

GET /apis/certificates.k8s.io/v1/certificatesigningrequests/{name}

Параметри

  • name (в шляху): string, обовʼязково

    name of the CertificateSigningRequest

  • pretty (в запиті): string

    pretty

Відповідь

200 (CertificateSigningRequest): OK

401: Unauthorized

get отримати схвалення вказаного CertificateSigningRequest

HTTP запит

GET /apis/certificates.k8s.io/v1/certificatesigningrequests/{name}/approval

Параметри

  • name (в шляху): string, обовʼязково

    name of the CertificateSigningRequest

  • pretty (в запиті): string

    pretty

Відповідь

200 (CertificateSigningRequest): OK

401: Unauthorized

get отримати статус вказаного CertificateSigningRequest

HTTP запит

GET /apis/certificates.k8s.io/v1/certificatesigningrequests/{name}/status

Параметри

  • name (в шляху): string, обовʼязково

    name of the CertificateSigningRequest

  • pretty (в запиті): string

    pretty

Відповідь

200 (CertificateSigningRequest): OK

401: Unauthorized

list перелік або перегляд обʼєктів типу CertificateSigningRequest

HTTP запит

GET /apis/certificates.k8s.io/v1/certificatesigningrequests

Параметри

Відповідь

200 (CertificateSigningRequestList): OK

401: Unauthorized

create створення CertificateSigningRequest

HTTP запит

POST /apis/certificates.k8s.io/v1/certificatesigningrequests

Параметри

Відповідь

200 (CertificateSigningRequest): OK

201 (CertificateSigningRequest): Created

202 (CertificateSigningRequest): Accepted

401: Unauthorized

update заміна вказаного CertificateSigningRequest

HTTP запит

PUT /apis/certificates.k8s.io/v1/certificatesigningrequests/{name}

Параметри

  • name (в шляху): string, обовʼязково

    name of the CertificateSigningRequest

  • body: CertificateSigningRequest, обовʼязково

  • dryRun (в запиті): string

    dryRun

  • fieldManager (в запиті): string

    fieldManager

  • fieldValidation (в запиті): string

    fieldValidation

  • pretty (в запиті): string

    pretty

Відповідь

200 (CertificateSigningRequest): OK

201 (CertificateSigningRequest): Created

401: Unauthorized

update заміна підтвердження вказаного CertificateSigningRequest

HTTP запит

PUT /apis/certificates.k8s.io/v1/certificatesigningrequests/{name}/approval

Параметри

  • name (в шляху): string, обовʼязково

    name of the CertificateSigningRequest

  • body: CertificateSigningRequest, обовʼязково

  • dryRun (в запиті): string

    dryRun

  • fieldManager (в запиті): string

    fieldManager

  • fieldValidation (в запиті): string

    fieldValidation

  • pretty (в запиті): string

    pretty

Відповідь

200 (CertificateSigningRequest): OK

201 (CertificateSigningRequest): Created

401: Unauthorized

update заміна статусу вказаного CertificateSigningRequest

HTTP запит

PUT /apis/certificates.k8s.io/v1/certificatesigningrequests/{name}/status

Параметри

  • name (в шляху): string, обовʼязково

    name of the CertificateSigningRequest

  • body: CertificateSigningRequest, обовʼязково

  • dryRun (в запиті): string

    dryRun

  • fieldManager (в запиті): string

    fieldManager

  • fieldValidation (в запиті): string

    fieldValidation

  • pretty (в запиті): string

    pretty

Відповідь

200 (CertificateSigningRequest): OK

201 (CertificateSigningRequest): Created

401: Unauthorized

patch часткове оновлення вказаного CertificateSigningRequest

HTTP запит

PATCH /apis/certificates.k8s.io/v1/certificatesigningrequests/{name}

Параметри

  • name (в шляху): string, обовʼязково

    name of the CertificateSigningRequest

  • body: Patch, обовʼязково

  • dryRun (в запиті): string

    dryRun

  • fieldManager (в запиті): string

    fieldManager

  • fieldValidation (в запиті): string

    fieldValidation

  • force (в запиті): boolean

    force

  • pretty (в запиті): string

    pretty

Відповідь

200 (CertificateSigningRequest): OK

201 (CertificateSigningRequest): Created

401: Unauthorized

patch часткове оновлення затвердження вказаного CertificateSigningRequest

HTTP запит

PATCH /apis/certificates.k8s.io/v1/certificatesigningrequests/{name}/approval

Параметри

  • name (в шляху): string, обовʼязково

    name of the CertificateSigningRequest

  • body: Patch, обовʼязково

  • dryRun (в запиті): string

    dryRun

  • fieldManager (в запиті): string

    fieldManager

  • fieldValidation (в запиті): string

    fieldValidation

  • force (в запиті): boolean

    force

  • pretty (в запиті): string

    pretty

Відповідь

200 (CertificateSigningRequest): OK

201 (CertificateSigningRequest): Created

401: Unauthorized

patch часткове оновлення статусу вказаного CertificateSigningRequest

HTTP запит

PATCH /apis/certificates.k8s.io/v1/certificatesigningrequests/{name}/status

Параметри

  • name (в шляху): string, обовʼязково

    name of the CertificateSigningRequest

  • body: Patch, обовʼязково

  • dryRun (в запиті): string

    dryRun

  • fieldManager (в запиті): string

    fieldManager

  • fieldValidation (в запиті): string

    fieldValidation

  • force (в запиті): boolean

    force

  • pretty (в запиті): string

    pretty

Відповідь

200 (CertificateSigningRequest): OK

201 (CertificateSigningRequest): Created

401: Unauthorized

delete видалення CertificateSigningRequest

HTTP запит

DELETE /apis/certificates.k8s.io/v1/certificatesigningrequests/{name}

Параметри

  • name (в шляху): string, обовʼязково

    name of the CertificateSigningRequest

  • body: DeleteOptions

  • dryRun (в запиті): string

    dryRun

  • gracePeriodSeconds (в запиті): integer

    gracePeriodSeconds

  • pretty (в запиті): string

    pretty

  • propagationPolicy (в запиті): string

    propagationPolicy

Відповідь

200 (Status): OK

202 (Status): Accepted

401: Unauthorized

deletecollection видалення колекції CertificateSigningRequest

HTTP запит

DELETE /apis/certificates.k8s.io/v1/certificatesigningrequests

Параметри

Відповідь

200 (Status): OK

401: Unauthorized

5 - ClusterTrustBundle v1alpha1

ClusterTrustBundle — це кластерний контейнер для X.

apiVersion: certificates.k8s.io/v1alpha1

import "k8s.io/api/certificates/v1alpha1"

ClusterTrustBundle

ClusterTrustBundle — це кластерний контейнер для довірчих якорів X.509 (кореневих сертифікатів).

Обʼєкти ClusterTrustBundle вважаються доступними для читання будь-яким автентифікованим користувачем у кластері, оскільки їх можна монтувати в Pod за допомогою проєкції clusterTrustBundle. Усі службові облікові записи типово мають доступ на читання ClusterTrustBundles. Користувачі, які мають доступ лише на рівні простору імен у кластері, можуть читати ClusterTrustBundles, використовуючи serviceaccount, до якого вони мають доступ.

Він може бути опціонально повʼязаний з певним підписувачем, у такому випадку він містить один дійсний набір довірчих якорів для цього підписувача. Підписувачі можуть мати кілька повʼязаних ClusterTrustBundles; кожен з них є незалежним набором довірчих якорів для цього підписувача. Контроль доступу використовується для забезпечення того, що лише користувачі з правами підписувача можуть створювати або змінювати відповідний набір.


  • apiVersion: certificates.k8s.io/v1alpha1

  • kind: ClusterTrustBundle

  • metadata (ObjectMeta)

    metadata містить метадані обʼєкта.

  • spec (ClusterTrustBundleSpec), обовʼязково

    spec містить підписувача (якщо є) та довірчі якорі.

ClusterTrustBundleSpec

ClusterTrustBundleSpec містить інформацію про підписувача та довірчі якорі.


  • trustBundle (string), обовʼязково

    trustBundle містить окремі довірчі якорі X.509 для цього набору, у вигляді PEM-пакета PEM-обгорток, DER-форматованих сертифікатів X.509.

    Дані повинні складатися лише з PEM-блоків сертифікатів, які розпізнаються як дійсні сертифікати X.509. Кожен сертифікат повинен містити розширення базових обмежень з встановленою позначкою CA. Сервер API відхилить обʼєкти, що містять дублюючі сертифікати або використовують заголовки блоків PEM.

    Користувачі ClusterTrustBundle, включаючи Kubelet, вільні переупорядковувати та видаляти дублікати блоків сертифікатів у цьому файлі за власною логікою, а також видаляти заголовки блоків PEM та міжблокові дані.

  • signerName (string)

    signerName вказує повʼязаного підписувача, якщо такий є.

    Щоб створити або оновити ClusterTrustBundle з встановленим signerName, вам потрібно мати наступні дозволи на рівні кластера: group=certificates.k8s.io resource=signers resourceName=<імʼя підписувача> verb=attest.

    Якщо signerName не порожній, тоді обʼєкт ClusterTrustBundle повинен мати імʼя, що починається з імені підписувача як префікс (перекладаючи косі на двокрапки). Наприклад, для імені підписувача example.com/foo, допустимі імена обʼєктів ClusterTrustBundle включають example.com:foo:abc та example.com:foo:v1.

    Якщо signerName порожній, тоді імʼя обʼєкта ClusterTrustBundle не повинно мати такого префікса.

    Запити на список/перегляд ClusterTrustBundle можуть фільтрувати за цим полем, використовуючи селектор поля spec.signerName=NAME.

ClusterTrustBundleList

ClusterTrustBundleList — це колекція обʼєктів ClusterTrustBundle.


  • apiVersion: certificates.k8s.io/v1alpha1

  • kind: ClusterTrustBundleList

  • metadata (ListMeta)

    metadata містить метадані списку.

  • items ([]ClusterTrustBundle), обовʼязково

    items — це колекція обʼєктів ClusterTrustBundle.

Операції


get отримати вказаний ClusterTrustBundle

HTTP запит

GET /apis/certificates.k8s.io/v1alpha1/clustertrustbundles/{name}

Параметри

  • name (в шляху): string, обовʼязково

    name of the ClusterTrustBundle

  • pretty (в запиті): string

    pretty

Відповідь

200 (ClusterTrustBundle): OK

401: Unauthorized

list перелік або перегляд обʼєктів типу ClusterTrustBundle

HTTP запит

GET /apis/certificates.k8s.io/v1alpha1/clustertrustbundles

Параметри

Відповідь

200 (ClusterTrustBundleList): OK

401: Unauthorized

create створення ClusterTrustBundle

HTTP запит

POST /apis/certificates.k8s.io/v1alpha1/clustertrustbundles

Параметри

Відповідь

200 (ClusterTrustBundle): OK

201 (ClusterTrustBundle): Created

202 (ClusterTrustBundle): Accepted

401: Unauthorized

update заміна вказаного ClusterTrustBundle

HTTP запит

PUT /apis/certificates.k8s.io/v1alpha1/clustertrustbundles/{name}

Параметри

  • name (в шляху): string, обовʼязково

    name of the ClusterTrustBundle

  • body: ClusterTrustBundle, обовʼязково

  • dryRun (в запиті): string

    dryRun

  • fieldManager (в запиті): string

    fieldManager

  • fieldValidation (в запиті): string

    fieldValidation

  • pretty (в запиті): string

    pretty

Відповідь

200 (ClusterTrustBundle): OK

201 (ClusterTrustBundle): Created

401: Unauthorized

patch часткове оновлення вказаного ClusterTrustBundle

HTTP запит

PATCH /apis/certificates.k8s.io/v1alpha1/clustertrustbundles/{name}

Параметри

  • name (в шляху): string, обовʼязково

    name of the ClusterTrustBundle

  • body: Patch, обовʼязково

  • dryRun (в запиті): string

    dryRun

  • fieldManager (в запиті): string

    fieldManager

  • fieldValidation (в запиті): string

    fieldValidation

  • force (в запиті): boolean

    force

  • pretty (в запиті): string

    pretty

Відповідь

200 (ClusterTrustBundle): OK

201 (ClusterTrustBundle): Created

401: Unauthorized

delete видалення ClusterTrustBundle

HTTP запит

DELETE /apis/certificates.k8s.io/v1alpha1/clustertrustbundles/{name}

Параметри

  • name (в шляху): string, обовʼязково

    name of the ClusterTrustBundle

  • body: DeleteOptions

  • dryRun (в запиті): string

    dryRun

  • gracePeriodSeconds (в запиті): integer

    gracePeriodSeconds

  • pretty (в запиті): string

    pretty

  • propagationPolicy (в запиті): string

    propagationPolicy

Відповідь

200 (Status): OK

202 (Status): Accepted

401: Unauthorized

deletecollection видалення колекції ClusterTrustBundle

HTTP запит

DELETE /apis/certificates.k8s.io/v1alpha1/clustertrustbundles

Параметри

Відповідь

200 (Status): OK

401: Unauthorized

6 - SelfSubjectReview

SelfSubjectReview містить інформацію про користувача, яку має kube-apiserver про користувача, що робить цей запит.

apiVersion: authentication.k8s.io/v1

import "k8s.io/api/authentication/v1"

SelfSubjectReview

SelfSubjectReview містить інформацію про користувача, яку має kube-apiserver про користувача, що робить цей запит. При використанні імперсоніфікації, користувачі отримають інформацію про користувача, якого вони імітують. Якщо використовується імперсоніфікація або автентифікація заголовка запиту, будь-які додаткові ключі будуть ігноруватися і повертатися у нижньому регістрі.


SelfSubjectReviewStatus

SelfSubjectReviewStatus заповнюється kube-apiserver і відсилається користувачу.


  • userInfo (UserInfo)

    Атрибути користувача, який робить цей запит.

    UserInfo містить інформацію про користувача, необхідну для реалізації інтерфейсу user.Info.

    • userInfo.extra (map[string][]string)

      Будь-яка додаткова інформація, надана автентифікатором.

    • userInfo.groups ([]string)

      Atomic: буде замінено під час злиття

      Назви груп, до яких належить цей користувач.

    • userInfo.uid (string)

      Унікальне значення, що ідентифікує цього користувача з плином часу. Якщо цей користувач буде видалений і інший користувач з таким самим іменем буде доданий, вони матимуть різні UID.

    • userInfo.username (string)

      Імʼя, яке унікально ідентифікує цього користувача серед усіх активних користувачів.

Операції


create створення SelfSubjectReview

HTTP запит

POST /apis/authentication.k8s.io/v1/selfsubjectreviews

Параметри

Відповідь

200 (SelfSubjectReview): OK

201 (SelfSubjectReview): Created

202 (SelfSubjectReview): Accepted

401: Unauthorized