# Забезпечення стандартів безпеки Podʼів за допомогою міток простору імен

LLMS index: [llms.txt](/llms.txt)

---

Простори імен можуть бути позначені, щоб забезпечити [стандарти безпеки Podʼів](/docs/concepts/security/pod-security-standards). Три політики [privileged](/docs/concepts/security/pod-security-standards/#privileged), [baseline](/docs/concepts/security/pod-security-standards/#baseline) та [restricted](/docs/concepts/security/pod-security-standards/#restricted) широко охоплюють спектр безпеки та реалізуються за допомогою <a class='glossary-tooltip' title='Фрагмент коду, який перехоплює запити до сервера API Kubernetes перед збереженням обʼєкта.' data-bs-toggle='tooltip' data-bs-placement='top' href='/uk/docs/reference/access-authn-authz/admission-controllers/' target='_blank' aria-label='контролера допуску'>контролера допуску</a> [безпеки Podʼа](/docs/concepts/security/pod-security-admission/).

## Перш ніж ви розпочнете

Pod Security Admission був доступний в Kubernetes v1.23, у вигляді бета. Починаючи з версії 1.25, Pod Security Admission доступний загалом.


 <p>Для перевірки версії введіть  <code>kubectl version</code>.</p>


## Вимога стандарту безпеки Pod `baseline` за допомогою міток простору імен {#requiring-the-baseline-pod-security-standard-with-namespace-labels}

Цей маніфест визначає Простір імен `my-baseline-namespace`, який:

- _Блокує_ будь-які Podʼи, які не відповідають вимогам політики `baseline`.
- Генерує попередження для користувача та додає анотацію аудиту до будь-якого створеного Podʼа, який не відповідає вимогам політики `restricted`.
- Фіксує версії політик `baseline` та `restricted` на v1.36.

```yaml
apiVersion: v1
kind: Namespace
metadata:
  name: my-baseline-namespace
  labels:
    pod-security.kubernetes.io/enforce: baseline
    pod-security.kubernetes.io/enforce-version: v1.36

    # Ми встановлюємо ці рівні за нашим _бажаним_ `enforce` рівнем.
    pod-security.kubernetes.io/audit: restricted
    pod-security.kubernetes.io/audit-version: v1.36
    pod-security.kubernetes.io/warn: restricted
    pod-security.kubernetes.io/warn-version: v1.36
```

## Додавання міток до наявних просторів імен за допомогою `kubectl label` {#add-labels-to-existing-namespaces-with-kubectl-label}


<div class="alert alert-info" role="note"><h4 class="alert-heading">Примітка:</h4>Коли мітка політики <code>enforce</code> (або версії) додається або змінюється, втулок допуску буде тестувати кожен Pod в просторі імен на відповідність новій політиці. Порушення повертаються користувачу у вигляді попереджень.</div>


Корисно застосувати прапорець `--dry-run` при початковому оцінюванні змін профілю безпеки для просторів імен. Перевірки стандарту безпеки Pod все ще будуть виконуватися в режимі _dry run_, що дозволяє отримати інформацію про те, як нова політика буде обробляти наявні Podʼи, без фактичного оновлення політики.

```shell
kubectl label --dry-run=server --overwrite ns --all \
    pod-security.kubernetes.io/enforce=baseline
```

### Застосування до всіх просторів імен {#applying-to-all-namespaces}

Якщо ви тільки починаєте зі Pod Security Standards, відповідний перший крок — налаштувати всі простори імен з анотаціями аудиту для строгого рівня, такого як `baseline`:

```shell
kubectl label --overwrite ns --all \
  pod-security.kubernetes.io/audit=baseline \
  pod-security.kubernetes.io/warn=baseline
```

Зверніть увагу, що це не встановлює рівень примусового виконання, щоб можна було відрізняти простори імен, для яких не було явно встановлено рівень примусового виконання. Ви можете перелічити простори імен без явно встановленого рівня примусового виконання за допомогою цієї команди:

```shell
kubectl get namespaces --selector='!pod-security.kubernetes.io/enforce'
```

### Застосування до конкретного простору імен {#applying-to-a-single-namespace}

Ви також можете оновити конкретний простір імен. Ця команда додає політику `enforce=restricted` до простору імен `my-existing-namespace`, закріплюючи версію обмеженої політики на v1.36.

```shell
kubectl label --overwrite ns my-existing-namespace \
  pod-security.kubernetes.io/enforce=restricted \
  pod-security.kubernetes.io/enforce-version=v1.36
```
