Skip to content

Commit

Permalink
Merge 541cd5f into 6ea7dea
Browse files Browse the repository at this point in the history
  • Loading branch information
azevaykin authored Dec 20, 2024
2 parents 6ea7dea + 541cd5f commit c3c32fd
Show file tree
Hide file tree
Showing 40 changed files with 511 additions and 107 deletions.
Empty file.
23 changes: 13 additions & 10 deletions ydb/docs/en/core/concepts/auth.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,12 @@ The following authentication modes are supported:
* [Authentication through a third-party IAM provider](#iam), for example, [Yandex Identity and Access Management]{% if lang == "en" %}(https://cloud.yandex.com/en/docs/iam/){% endif %}{% if lang == "ru" %}(https://cloud.yandex.ru/docs/iam/){% endif %}.
* Authentication by [username and password](#static-credentials).

## Anonymous authentication

Anonymous authentication allows you to connect to YDB without specifying a username and password. This type of access should be used only for informational purposes for internal local databases that do not have access over the network.

To enable anonymous authentication, use `false` in the `enforce_user_token_requirement` key of the cluster's [configuration file](../reference/configuration/index.md#auth).

## Authentication through a third-party IAM provider {#iam}

* **Anonymous**: Empty token passed in a request.
Expand Down Expand Up @@ -35,23 +41,20 @@ The token to specify in request parameters can be obtained in the IAM system tha

When using modes in which the {{ ydb-short-name }} client accesses the IAM system, the IAM URL that provides an API for issuing tokens can be set additionally. By default, existing SDKs and CLIs attempt to access the {{ yandex-cloud }} IAM API hosted at `iam.api.cloud.yandex.net:443`.

{% include [overlay/auth_choose.md](_includes/connect_overlay/auth_choose.md) %}

## Authenticating by username and password {#static-credentials}

Authentication by username and password includes the following steps:
This type of access implies that each database user has a username and password.
You can only use lower case Latin letters and digits in usernames. No restrictions apply to passwords (empty passwords can be used).

1. The client accesses the database and presents their username and password to the {{ ydb-short-name }} authentication service.
The username and hashed password are stored in the table inside the authentication component. The password is hashed by the [Argon2]{% if lang == "en" %}(https://en.wikipedia.org/wiki/Argon2){% endif %}{% if lang == "ru" %}(https://ru.wikipedia.org/wiki/Argon2){% endif %} method. In authentication mode, only the system administrator can use a username/password pair to access the table.

You can only use lower case Latin letters and digits in usernames. No restrictions apply to passwords (empty passwords can be used).
A token is returned in response to the username and password. Tokens have a default lifetime of 12 hours. To rotate tokens, the client, for example, the SDK, independently accesses the authentication service. Tokens accelerate authentication and strengthen security.

Authentication by username and password includes the following steps:

1. The client accesses the database and presents their username and password to the {{ ydb-short-name }} authentication service.
1. The authentication service passes authentication data to the {{ ydb-short-name }} authentication component.
1. The component validates authentication data. If the data matches, it generates a token and returns it to the authentication service.

Tokens accelerate authentication and strengthen security. Tokens have a default lifetime of 12 hours. YDB SDK rotates tokens by accessing the authentication service.

The username and hashed password are stored in the table inside the authentication component. The password is hashed by the [Argon2]{% if lang == "en" %}(https://en.wikipedia.org/wiki/Argon2){% endif %}{% if lang == "ru" %}(https://ru.wikipedia.org/wiki/Argon2){% endif %} method. In authentication mode, only the system administrator can use a username/password pair to access the table.

1. The authentication system returns the token to the client.
1. The client accesses the database, presenting their token as authentication data.

Expand Down
6 changes: 5 additions & 1 deletion ydb/docs/redirects.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -184,11 +184,15 @@ common:

# Security-related redirects
- from: /cluster/access.md
to: /security/acess-management.md
to: /security/authorization.md
- from: /cluster/audit-log.md
to: /security/audit-log.md
- from: /cluster/short-access-control-notation.md
to: /security/short-access-control-notation.md
- from: /concepts/auth.md
to: /security/authentication.md
- from: /security/access-management.md
to: /security/authorization.md

# Contributors-related redirects
- from: /development/build-ya.md
Expand Down
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 @@ -8,7 +8,7 @@

* Реализована [Knn UDF](./yql/reference/udf/list/knn.md) для точного поиска ближайших векторов.
* Разработан gRPC сервис QueryService, обеспечивающий возможность выполнения всех типов запросов (DML, DDL) и выборку неограниченных объёмов данных.
* Реализована [интеграция с LDAP протоколом](./concepts/auth.md) и возможность получения перечня групп из внешних LDAP-каталогов.
* Реализована [интеграция с LDAP протоколом](./security/authentication.md) и возможность получения перечня групп из внешних LDAP-каталогов.

**Встроенный UI:**

Expand Down
Empty file.
4 changes: 2 additions & 2 deletions ydb/docs/ru/core/concepts/federated_query/ydb.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

Для подключения к внешней базе {{ ydb-short-name }} со стороны другой базы {{ ydb-short-name }}, выступающей в роли движка обработки федеративных запросов, на последней требуется выполнить следующие шаги:

1. Подготовить аутентификационные данные для доступа к удалённой базе {{ ydb-short-name }}. В настоящее время в федеративных запросах к {{ ydb-short-name }} доступен метод аутентификации по [логину и паролю](../../concepts/auth.md#static-credentials) (остальные методы не поддерживаются). Пароль к внешней базе сохраняется в виде [секрета](../datamodel/secrets.md):
1. Подготовить аутентификационные данные для доступа к удалённой базе {{ ydb-short-name }}. В настоящее время в федеративных запросах к {{ ydb-short-name }} доступен метод аутентификации по [логину и паролю](../../security/authentication.md#static-credentials) (остальные методы не поддерживаются). Пароль к внешней базе сохраняется в виде [секрета](../datamodel/secrets.md):

```yql
CREATE OBJECT ydb_datasource_user_password (TYPE SECRET) WITH (value = "<password>");
Expand Down Expand Up @@ -93,4 +93,4 @@ SELECT * FROM ydb_datasource.<table_name>
|`Datetime`|`Datetime`|
|`Timestamp`|`Timestamp`|
|`Json`|`Json`|
|`JsonDocument`|`Json`|
|`JsonDocument`|`Json`|
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Для выполнения примера с использованием любой доступной базы данных YDB вам потребуется знать [эндпоинт](../../../../concepts/connect.md#endpoint) и [путь базы данных](../../../../concepts/connect.md#database).

Если в базе данных включена аутентификация, то вам также понадобится выбрать [режим аутентификации](../../../../concepts/auth.md) и получить секреты - токен или логин/пароль.
Если в базе данных включена аутентификация, то вам также понадобится выбрать [режим аутентификации](../../../../security/authentication.md) и получить секреты - токен или логин/пароль.

Выполните команду по следующему образцу:

Expand Down
4 changes: 2 additions & 2 deletions ydb/docs/ru/core/dev/example-app/java/_includes/run_custom.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Для выполнения примера с использованием любой доступной базы данных {{ ydb-short-name }} вам потребуется знать [эндпоинт](../../../../concepts/connect.md#endpoint) и [путь базы данных](../../../../concepts/connect.md#database).

Если в базе данных включена аутентификация, то вам также понадобится выбрать [режим аутентификации](../../../../concepts/auth.md) и получить секреты - токен или логин/пароль.
Если в базе данных включена аутентификация, то вам также понадобится выбрать [режим аутентификации](../../../../security/authentication.md) и получить секреты - токен или логин/пароль.

Выполните команду по следующему образцу:

Expand All @@ -19,4 +19,4 @@

```bash
YDB_ACCESS_TOKEN_CREDENTIALS="..." java -jar ydb-java-examples/query-example/target/ydb-query-example.jar grpcs://ydb.example.com:2135/somepath/somelocation
```
```
2 changes: 1 addition & 1 deletion ydb/docs/ru/core/dev/example-app/java/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ mvn package -f ./ydb-java-examples
Основные параметры инициализации драйвера:

* Cтрока подключения с информацией об [эндпоинте](../../../concepts/connect.md#endpoint) и [базе данных](../../../concepts/connect.md#database). Единственный обязательный параметр.
* Провайдер [аутенфикации](../../../recipes/ydb-sdk/auth.md##auth-provider). В случае отсутствия прямого указания будет использоваться [анонимное подключение](../../../concepts/auth.md).
* Провайдер [аутенфикации](../../../recipes/ydb-sdk/auth.md##auth-provider). В случае отсутствия прямого указания будет использоваться [анонимное подключение](../../../security/authentication.md).
* Настройки [пула сессий](../../../recipes/ydb-sdk/session-pool-limit.md).

Фрагмент кода приложения для инициализации драйвера:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Для выполнения примера с использованием любой доступной базы данных {{ ydb-short-name }} вам потребуется знать [эндпоинт](../../../../concepts/connect.md#endpoint) и [путь базы данных](../../../../concepts/connect.md#database).

Если в базе данных включена аутентификация, то вам также понадобится выбрать [режим аутентификации](../../../../concepts/auth.md) и получить секреты - токен или логин/пароль.
Если в базе данных включена аутентификация, то вам также понадобится выбрать [режим аутентификации](../../../../security/authentication.md) и получить секреты - токен или логин/пароль.

Выполните команду по следующему образцу:

Expand Down
6 changes: 3 additions & 3 deletions ydb/docs/ru/core/dev/terraform.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,9 +61,9 @@
Где:
* `token` - указывается токен доступа к БД, если используется аутентификация, например, с использованием стороннего [IAM](../concepts/auth.md#iam) провайдера.
* `user` - имя пользователя для доступа к базе данных в случае использования аутентификации по [логину и паролю](../concepts/auth.md#static-credentials)
* `password` - пароль для доступа к базе данных в случае использования аутентификации по [логину и паролю](../concepts/auth.md#static-credentials)
* `token` - указывается токен доступа к БД, если используется аутентификация, например, с использованием стороннего [IAM](../security/authentication.md#iam) провайдера.
* `user` - имя пользователя для доступа к базе данных в случае использования аутентификации по [логину и паролю](../security/authentication.md#static-credentials)
* `password` - пароль для доступа к базе данных в случае использования аутентификации по [логину и паролю](../security/authentication.md#static-credentials)
## Использование Terraform провайдера {{ ydb-short-name }} {#work-with-tf}
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` с пустым паролем, а также стандартный набор групп пользователей, описанный в разделе [Управление доступом](../../security/access-management.md).
При первоначальной установке кластера {{ ydb-short-name }} автоматически создается учетная запись `root` с пустым паролем, а также стандартный набор групп пользователей, описанный в разделе [{#T}](../../security/group.md).

Для выполнения первоначальной настройки учетных записей в созданном кластере {{ ydb-short-name }} выполните следующие операции:

Expand Down
2 changes: 1 addition & 1 deletion ydb/docs/ru/core/integrations/ingestion/logstash.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@

## Конфигурация подключения плагинов к {{ ydb-short-name }}

Все плагины используют одни и те же параметры для настройки подключения к базе данных {{ ydb-short-name }}. Среди этих параметров обязателен только `connection_string`, а все остальные параметры опциональны и позволяют задать [режим аутентификации](../../concepts/auth.md). Если ни один из них не указан, то будет использоваться анонимная аутентификация.
Все плагины используют одни и те же параметры для настройки подключения к базе данных {{ ydb-short-name }}. Среди этих параметров обязателен только `connection_string`, а все остальные параметры опциональны и позволяют задать [режим аутентификации](../../security/authentication.md). Если ни один из них не указан, то будет использоваться анонимная аутентификация.

```ruby
# Пример указан для плагина ydb_storage, настройка подключения
Expand Down
2 changes: 1 addition & 1 deletion ydb/docs/ru/core/integrations/migration/liquibase.md
Original file line number Diff line number Diff line change
Expand Up @@ -560,4 +560,4 @@ liquibase changelog-sync --changelog-file=dbchangelog.xml

Если ваш кластер настроен с использованием логина и пароля, процесс аутентификации происходит через параметры Liquibase.

За дополнительной информацией о различных настройках аутентификации обратитесь к соответствующему [разделу](../../concepts/auth.md).
За дополнительной информацией о различных настройках аутентификации обратитесь к соответствующему [разделу](../../security/authentication.md).
8 changes: 4 additions & 4 deletions ydb/docs/ru/core/integrations/orchestration/airflow.md
Original file line number Diff line number Diff line change
Expand Up @@ -132,11 +132,11 @@ connection.close()

Укажите реквизиты для одного из следующих способов аутентификации на кластере {{ ydb-full-name }}:

- `Login` и `Password` - укажите реквизиты пользователя для аутентификации [по логину и паролю](../../concepts/auth.md#static-credentials).
- `Service account auth JSON` - укажите значение [`Service Account Key`](../../concepts/auth.md#iam).
- `Login` и `Password` - укажите реквизиты пользователя для аутентификации [по логину и паролю](../../security/authentication.md#static-credentials).
- `Service account auth JSON` - укажите значение [`Service Account Key`](../../security/authentication.md#iam).
- `Service account auth JSON file path` - укажите путь к файлу, содержащему `Service Account Key`.
- `IAM token` - укажите [IAM токен](../../concepts/auth.md#iam).
- `Use VM metadata` - указание использовать [метаданные виртуальной машины](../../concepts/auth.md#iam).
- `IAM token` - укажите [IAM токен](../../security/authentication.md#iam).
- `Use VM metadata` - указание использовать [метаданные виртуальной машины](../../security/authentication.md#iam).

## Соответствие YQL и Python-типов

Expand Down
2 changes: 1 addition & 1 deletion ydb/docs/ru/core/integrations/visualization/grafana.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@

### {{ ydb-short-name }} пользователь для источника данных

Настройте аккаунт пользователя {{ ydb-short-name }} с правами **только на чтение** [(подробнее об уровнях доступа)](../../security/access-management.md) и доступом до баз данных и таблиц, к которым потребуется делать запросы.
Настройте аккаунт пользователя {{ ydb-short-name }} с правами **только на чтение** [(подробнее об уровнях доступа)](../../security/right.md) и доступом до баз данных и таблиц, к которым потребуется делать запросы.

{% note warning %}

Expand Down
Loading

0 comments on commit c3c32fd

Please sign in to comment.