Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: add security settings and builtin security reference #13319

Merged
merged 40 commits into from
Jan 27, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
d34f99e
docs: add security settings and builtin security reference
ijon Jan 10, 2025
ddf6eed
update due to review comments
ijon Jan 15, 2025
802086d
Update ydb/docs/ru/core/reference/configuration/index.md
ijon Jan 15, 2025
0ac6879
fixup
ijon Jan 15, 2025
1010946
fixup
ijon Jan 16, 2025
5719d66
fixup: add ConnectDatabase for USERS
ijon Jan 16, 2025
aab402a
fixup: add direct link to disable_builtin_security
ijon Jan 16, 2025
b38f26d
fixup
ijon Jan 16, 2025
b105adf
revert: links to direct achors work incorrectly
ijon Jan 16, 2025
8ea4022
fixup: review comments
ijon Jan 16, 2025
f863b9a
fuse after rebase
ijon Jan 17, 2025
f2baf54
fixup
ijon Jan 17, 2025
9816673
fixup
ijon Jan 17, 2025
d76f100
Update ydb/docs/ru/core/security/builtin-security.md
ijon Jan 20, 2025
0e321d2
Update ydb/docs/ru/core/security/builtin-security.md
ijon Jan 20, 2025
e907708
fixup: touch up ldap auth
ijon Jan 20, 2025
0c50ccb
Update ydb/docs/ru/core/changelog-server.md
ijon Jan 21, 2025
8110d97
Update ydb/docs/ru/core/concepts/glossary.md
ijon Jan 21, 2025
951ace1
Update ydb/docs/ru/core/concepts/glossary.md
ijon Jan 21, 2025
beccbc2
Update ydb/docs/ru/core/concepts/glossary.md
ijon Jan 21, 2025
021dd6f
Update ydb/docs/ru/core/reference/configuration/index.md
ijon Jan 21, 2025
0276037
Update ydb/docs/ru/core/reference/configuration/index.md
ijon Jan 21, 2025
328fb46
Update ydb/docs/ru/core/reference/configuration/index.md
ijon Jan 21, 2025
ff8f8e0
Update ydb/docs/ru/core/reference/configuration/index.md
ijon Jan 21, 2025
f51c846
Update ydb/docs/ru/core/reference/configuration/index.md
ijon Jan 21, 2025
ccd9d07
Update ydb/docs/ru/core/reference/configuration/index.md
ijon Jan 21, 2025
4b8e0af
Update ydb/docs/ru/core/reference/configuration/index.md
ijon Jan 21, 2025
e5115b7
Update ydb/docs/ru/core/reference/configuration/index.md
ijon Jan 21, 2025
2696e83
Update ydb/docs/ru/core/reference/configuration/index.md
ijon Jan 21, 2025
f6e3ef3
Update ydb/docs/ru/core/reference/configuration/index.md
ijon Jan 21, 2025
e29a849
Update ydb/docs/ru/core/reference/configuration/index.md
ijon Jan 21, 2025
1588fae
Update ydb/docs/ru/core/reference/configuration/index.md
ijon Jan 22, 2025
7576c0d
Update ydb/docs/ru/core/reference/configuration/index.md
ijon Jan 22, 2025
862fc24
Update ydb/docs/ru/core/security/builtin-security.md
ijon Jan 22, 2025
b6f6004
Update ydb/docs/ru/core/security/builtin-security.md
ijon Jan 22, 2025
b600c3c
fixup: review comments
ijon Jan 23, 2025
db5014a
Merge branch 'main' into docs-security-config
ijon Jan 23, 2025
2405365
fixup: remove unnecessary file
ijon Jan 27, 2025
d1faa73
fixup: review comments
ijon Jan 27, 2025
04dfe7e
fixup: remove contradiction
ijon Jan 27, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 56 additions & 0 deletions ydb/docs/ru/core/_includes/builtin-groups-graph.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
```mermaid
---
config:
layout: elk
elk:
mergeEdges: true
nodePlacementStrategy: NETWORK_SIMPLEX
---
graph BT

DATA-WRITERS & DATABASE-ADMINS --> ADMINS
DDL-ADMINS & ACCESS-ADMINS --> DATABASE-ADMINS
DATA-READERS --> DATA-WRITERS
METADATA-READERS --> DATA-READERS & DDL-ADMINS
%%USERS --> METADATA-READERS & DATA-READERS & DATA-WRITERS & DDL-ADMINS & ACCESS-ADMINS & DATABASE-ADMINS & ADMINS
USERS --> METADATA-READERS & DDL-ADMINS & ACCESS-ADMINS

DATA-READERS["<b>DATA-READERS</b>
+SelectRow"
]

DATA-WRITERS["<b>DATA-WRITERS</b>
+UpdateRow
+EraseRow"
]

METADATA-READERS["<b>METADATA-READERS</b>
+DescribeSchema
+ReadAttributes"
]

DATABASE-ADMINS["<b>DATABASE-ADMINS</b>
+CreateDatabase
+DropDatabase"
]

ACCESS-ADMINS["<b>ACCESS-ADMINS</b>
+GrantAccessRights"
]

DDL-ADMINS["<b>DDL-ADMINS</b>
+CreateDirectory
+CreateTable
+CreateQueue
+WriteAttributes
+AlterSchema
+RemoveSchema"
]

USERS[<b>USERS</b>
+ConnectDatabase
]
ADMINS[<b>ADMINS</b>]
```

[//]: # (diplodoc support for mermaid lacks support for markdown in labels)
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,6 @@
Область действия команд `CREATE USER`, `ALTER USER`, `DROP USER` не распространяется на внешние каталоги пользователей.
Учитывайте это, если к {{ ydb-short-name }} подключаются пользователи со сторонней аутентификацией (например, LDAP).
Например, команда `CREATE USER` не создаст пользователя в LDAP-каталоге.
Подробнее про [взаимодействие {{ ydb-short-name }} с LDAP-каталогом](../security/authentication.md#ldap-auth-provider).
Подробнее про [взаимодействие {{ ydb-short-name }} с LDAP-каталогом](../security/authentication.md#ldap).

{% endnote %}
2 changes: 1 addition & 1 deletion ydb/docs/ru/core/changelog-server.md
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@

* Добавлена возможность [задать приоритеты](./devops/manual/maintenance-without-downtime#priority) задачам обслуживания в [системе управления кластером](./concepts/glossary#cms).
* Добавлена [настройка стабильных имён](./reference/configuration/#node-broker-config) для узлов кластера в рамках тенанта.
* Добавлено получение вложенных групп от [LDAP-сервера](./concepts/auth#ldap-auth-provider), в [LDAP-конфигурации](./reference/configuration/#ldap-auth-config) улучшен парсинг хостов и добавлена настройка для отключения встроенной аутентификацию по логину и паролю.
* Добавлено получение вложенных групп от [LDAP-сервера](./security/authentication.md#ldap), в [LDAP-конфигурации](./reference/configuration/index.md#ldap-auth-config) улучшен парсинг хостов и добавлена настройка для отключения встроенной аутентификацию по логину и паролю.
* Добавлена возможность аутентификации [динамических узлов](./concepts/glossary#dynamic) по SSL-сертификату.
* Реализовано удаление неактивных узлов из [Hive](./concepts/glossary#hive) без его перезапуска.
* Улучшено управление inflight pings при перезапуске Hive в кластерах большого размера.
Expand Down
41 changes: 35 additions & 6 deletions ydb/docs/ru/core/concepts/glossary.md
Original file line number Diff line number Diff line change
Expand Up @@ -269,6 +269,12 @@

**Секрет** или **secret** — это конфиденциальные метаданные, требующие особого обращения. Например, секреты могут использоваться в определениях [внешних источников данных](#external-data-source) и представляют собой такие сущности, как пароли и токены.

### Аутентификационный токен {#auth-token}

**Аутентификационный токен** или **auth token** — токен, используемый для [аутентификации](../security/authentication.md) в {{ ydb-short-name }}.

{{ ydb-short-name }} поддерживает [разные виды аутентификации](../security/authentication.md) и различные типы токенов.

### Объект схемы {#scheme-object}

Схема базы данных состоит из **схемных объектов** или **объектов схемы**, которыми могут быть базы данных, [таблицы](#table) (включая [внешние таблицы](#external-table)), [топики](#topic), [папки](#folder) и т.д.
Expand All @@ -284,21 +290,36 @@
### Объект доступа {#access-object}

**Объект доступа** или **access object** при [авторизации](../security/authorization.md) — сущность, для которой настраиваются права и ограничения доступа. В {{ ydb-short-name }} объектами доступа являются [объекты схемы](#scheme-object).
У каждого объекта доступа есть [владелец](#access-owner) и [список разрешений](#access-control-list).

У каждого [объекта схемы](#scheme-object) есть [владелец](#access-owner) и [список прав](#access-control-list) на этот объект, выданных пользователям и группам ([субъектам доступа](#access-subject)).
blinkov marked this conversation as resolved.
Show resolved Hide resolved

### Субъект доступа {#access-subject}

**Субъект доступа** или **access subject** — сущность, которая может обращаться к [объектам доступа](#access-object) или выполнять определённые действия в системе. Получение доступа при этих обращениях и действиях зависит от настроенных [списков разрешений](#access-control-list).
**Субъект доступа** или **access subject** — сущность, которая может обращаться к [объектам доступа](#access-object) и выполнять определённые действия в системе.

Получение доступа при этих обращениях и действиях зависит от настроенных [списков прав](#access-control-list) и [уровня доступа](#access-level) субъекта.

Субъектом доступа может быть [пользователь](#access-user) или [группа](#access-group).

### Право доступа {#access-right}
ijon marked this conversation as resolved.
Show resolved Hide resolved

**[Право доступа](../security/authorization.md#right)** или **access right** — сущность, отражающая разрешение [субъекту доступа](#access-subject) выполнять конкретный набор операций в кластере или базе данных над конкретным [объектом доступа](#access-object).

### Список разрешений {#access-control-list}
### Список прав {#access-control-list}

**[Список прав](../security/authorization.md#right)**, **access control list** или **ACL** — список всех [прав](#access-right), предоставленных [субъектам доступа](#access-subject) (пользователям и группам) на конкретный [объект доступа](#access-object).

### Уровень доступа {#access-level}

**[Уровень доступа](../security/authorization.md#level)** — состояние, определяющее дополнительные возможности [субъекта доступа](#access-subject) при работе с [объектами схемы](#scheme-object), а также возможности [субъекта доступа](#access-subject) в контекстах, не связанных с [объектами схемы](#scheme-object).
blinkov marked this conversation as resolved.
Show resolved Hide resolved

**Список разрешений**, **access control list** или **ACL** — список всех [прав](#access-right), предоставленных [субъектам доступа](#access-subject) (пользователям и группам) на конкретный [объект доступа](#access-object).
Уровень доступа определяется принадлежностью субъекта к [спискам разрешений](#access-level-list).
blinkov marked this conversation as resolved.
Show resolved Hide resolved

### Список уровня доступа {#access-level-list}

**Список уровня доступа** или **список разрешений** — список [SID](#access-sid)'ов [субъектов доступа](#access-subject), которым разрешён определённый [уровень доступа](#access-level).

{{ ydb-short-name }} имеет несколько [списков уровней доступа](../reference/configuration/index.md#security-access-levels), совместно определяющих набор [уровней доступа](#access-level) в системе.

### Владелец {#access-owner}

Expand All @@ -308,13 +329,21 @@

**[Пользователь](../security/authorization.md#user)** - лицо, использующее {{ ydb-short-name }} для выполнения конкретной функции.

Пользователь идентифицируется [SID](#access-sid).

### Группа {#access-group}

**[Группа](../security/authorization.md#group)** или **группа доступа** - именованное множество [пользователей](#access-user) с одинаковыми [правами доступа](#access-right) к тем или иным [объектам доступа](#access-object).
**[Группа](../security/authorization.md#group)** или **группа доступа** - именованное множество [пользователей](#access-user) и других групп с равными возможностями для своих членов.

Группа идентифицируется [SID](#access-sid).

### SID {#access-sid}

**SID** (**Security Identifier**) - строка вида `<login>[@<subsystem>]`, идентифицирующая [субъект доступа](../concepts/glossary.md#access-subject) в [списках разрешений](#access-control-list).
**SID** или **security identifier** — строка вида `<name>` или `<name>@<auth-domain>`, идентифицирующая [субъект доступа](../concepts/glossary.md#access-subject). Используется при [аутентификации](../security/authentication.md), [авторизации](../security/authorization.md), в [списках прав](#access-control-list) и в [списках уровней доступа](#access-level-list).

SID идентифицирует индивидуального [пользователя](#access-user) или [группу пользователей](#access-group).

Опциональный суффикс `@<auth-domain>` идентифицирует источник субъекта доступа, то есть внешний каталог или систему, откуда он был получен. Например, пользователи или группы из LDAP-каталога могут иметь суффикс `@ldap`. Отсутствие суффикса означает, что пользователь или группа созданы и существуют непосредственно в {{ ydb-short-name }}.

### Оптимизатор запросов {#optimizer}

Expand Down
2 changes: 1 addition & 1 deletion ydb/docs/ru/core/devops/manual/initial-deployment.md
Original file line number Diff line number Diff line change
Expand Up @@ -484,7 +484,7 @@ sudo chmod 700 /opt/ydb/certs

Если в файле настроек кластера включен режим аутентификации, то перед началом работы с кластером {{ ydb-short-name }} необходимо выполнить первоначальную настройку учетных записей.

При первоначальной установке кластера {{ ydb-short-name }} автоматически создается учетная запись `root` с пустым паролем, а также стандартный набор групп пользователей, описанный в разделе [{#T}](../../yql/reference/syntax/alter-group.md#builtin).
При первоначальной установке кластера {{ ydb-short-name }} автоматически создается учетная запись `root` с пустым паролем, а также стандартный набор групп пользователей, описанный в разделе [{#T}](../../security/builtin-security.md).

Для выполнения первоначальной настройки учетных записей в созданном кластере {{ ydb-short-name }} выполните следующие операции:
blinkov marked this conversation as resolved.
Show resolved Hide resolved

Expand Down
Loading
Loading