Skip to content

Commit 9ebb5c7

Browse files
authored
[docs] introduce security/encryption/ section (#9836)
1 parent 4c49b0d commit 9ebb5c7

File tree

12 files changed

+104
-1
lines changed

12 files changed

+104
-1
lines changed
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Data at rest encryption
2+
3+
{{ ydb-short-name }} supports transparent data encryption at the [DS proxy](../../concepts/glossary.md#ds-proxy) level using the [ChaCha8](https://cr.yp.to/chacha/chacha-20080128.pdf) algorithm. {{ ydb-short-name }} includes two implementations of this algorithm, which switch depending on the availability of the AVX-512F instruction set.
4+
5+
By default, data at rest encryption is disabled. For instructions on enabling it, refer to the [{#T}](../../deploy/configuration/config.md#domains-blob) section.
6+
7+
For more details on the implementation, refer to [dsproxy_encrypt.cpp](https://github.com/ydb-platform/ydb/blob/main/ydb/core/blobstorage/dsproxy/dsproxy_encrypt.cpp) and [ydb/core/blobstorage/crypto](https://github.com/ydb-platform/ydb/tree/main/ydb/core/blobstorage/crypto).
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# Data in transit encryption
2+
3+
As {{ ydb-short-name }} is a distributed system typically running on a cluster, often spanning multiple datacenters or availability zones, user data is routinely transferred over the network. Various protocols can be involved, and each can be configured to run over [TLS](https://en.wikipedia.org/wiki/Transport_Layer_Security). Below is a list of protocols supported by {{ ydb-short-name }}:
4+
5+
* [Interconnect](../../concepts/glossary.md#actor-system-interconnect), a specialized protocol for all communication between {{ ydb-short-name }} nodes.
6+
* {{ ydb-short-name }} as a server:
7+
8+
* [gRPC](../../reference/ydb-sdk/overview-grpc-api.md) for external communication with client applications designed to work natively with {{ ydb-short-name }} via the [SDK](../../reference/ydb-sdk/index.md) or [CLI](../../reference/ydb-cli/index.md).
9+
* [PostgreSQL wire protocol](../../postgresql/intro.md) for external communication with client applications initially designed to work with [PostgreSQL](https://www.postgresql.org/).
10+
* [Kafka wire protocol](../../reference/kafka-api/index.md) for external communication with client applications initially designed to work with [Apache Kafka](https://kafka.apache.org/).
11+
* HTTP for running the [Embedded UI](../../reference/embedded-ui/index.md), exposing [metrics](../../devops/manual/monitoring.md), and other miscellaneous endpoints.
12+
13+
* {{ ydb-short-name }} as a client:
14+
15+
* [LDAP](../../concepts/auth.md#ldap) for user authentication.
16+
* [Federated queries](../../concepts/federated_query/index.md), a feature that allows {{ ydb-short-name }} to query various external data sources. Some sources are queried directly from the `ydbd` process, while others are proxied via a separate connector process.
17+
* [Tracing](../../reference/observability/tracing/setup.md) data sent to an external collector via gRPC.
18+
19+
* In [asynchronous replication](../../concepts/async-replication.md) between two {{ ydb-short-name }} databases, one serves as a client to the other.
20+
21+
By default, data in transit encryption is disabled and must be enabled separately for each protocol. They can either share the same set of TLS certificates or use dedicated ones. For instructions on how to enable TLS, refer to the [{#T}](../../deploy/configuration/config.md) section.
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# Encryption in {{ ydb-short-name }}
2+
3+
{{ ydb-short-name }} provides two main approaches for user data encryption:
4+
5+
* [{#T}](data-at-rest.md)
6+
* [{#T}](data-in-transit.md)
7+
8+
It is recommended to use both of them simultaneously in any production environments that handle sensitive data.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
items:
2+
- name: Data at rest
3+
href: data-at-rest.md
4+
- name: Data in transit
5+
href: data-in-transit.md

ydb/docs/en/core/security/index.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,11 @@ Main resources:
66

77
- [{#T}](access-management.md)
88
- [{#T}](audit-log.md)
9+
- Encryption:
10+
11+
- [{#T}](encryption/data-at-rest.md)
12+
- [{#T}](encryption/data-in-transit.md)
13+
914
- [{#T}](short-access-control-notation.md)
1015
- Concepts:
1116

ydb/docs/en/core/security/toc_p.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,10 @@ items:
33
href: access-management.md
44
- name: Audit log
55
href: audit-log.md
6+
- name: Encryption
7+
href: encryption/index.md
8+
include:
9+
mode: link
10+
path: encryption/toc_p.yaml
611
- name: Short access control notation
712
href: short-access-control-notation.md
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Шифрование данных при хранении
2+
3+
{{ ydb-short-name }} поддерживает прозрачное шифрование данных на уровне [прокси распределённого хранилища](../../concepts/glossary.md#ds-proxy) с использованием алгоритма [ChaCha8](https://cr.yp.to/chacha/chacha-20080128.pdf). {{ ydb-short-name }} включает две реализации этого алгоритма, которые переключаются в зависимости от доступности набора инструкций AVX-512F.
4+
5+
По умолчанию шифрование данных при хранении отключено. Инструкции по его включению можно найти в разделе [{#T}](../../deploy/configuration/config.md#domains-blob).
6+
7+
Более подробную информацию о реализации можно найти в [dsproxy_encrypt.cpp](https://github.com/ydb-platform/ydb/blob/main/ydb/core/blobstorage/dsproxy/dsproxy_encrypt.cpp) и [ydb/core/blobstorage/crypto](https://github.com/ydb-platform/ydb/tree/main/ydb/core/blobstorage/crypto).
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# Шифрование данных при передаче
2+
3+
Так как {{ ydb-short-name }} является распределённой системой, обычно работающей на кластере, часто расположенным в нескольких датацентрах или зонах доступности, пользовательские данные регулярно передаются по сети. Могут использоваться различные протоколы, каждый из которых может быть настроен для работы с использованием [TLS](https://en.wikipedia.org/wiki/Transport_Layer_Security). Ниже приведён список протоколов, поддерживаемых {{ ydb-short-name }}:
4+
5+
* [Интерконнект](../../concepts/glossary.md#actor-system-interconnect) — специализированный протокол для общения между узлами {{ ydb-short-name }}.
6+
* {{ ydb-short-name }} в роли сервера:
7+
8+
* [gRPC](../../reference/ydb-sdk/overview-grpc-api.md) — для внешнего взаимодействия с клиентскими приложениями, разработанными для нативной работы с {{ ydb-short-name }} через [SDK](../../reference/ydb-sdk/index.md) или [CLI](../../reference/ydb-cli/index.md).
9+
* [Протокол PostgreSQL](../../postgresql/intro.md) — для внешнего взаимодействия с клиентскими приложениями, изначально разработанными для работы с [PostgreSQL](https://www.postgresql.org/).
10+
* [Протокол Kafka](../../reference/kafka-api/index.md) — для внешнего взаимодействия с клиентскими приложениями, изначально разработанными для работы с [Apache Kafka](https://kafka.apache.org/).
11+
* HTTP — для работы с [встроенным UI](../../reference/embedded-ui/index.md), публикации [метрик](../../devops/manual/monitoring.md) и других вспомогательных конечных эндпоинтов.
12+
13+
* {{ ydb-short-name }} в роли клиента:
14+
15+
* [LDAP](../../concepts/auth.md#ldap) — для аутентификации пользователей.
16+
* [Федеративные запросы](../../concepts/federated_query/index.md) — функциональность, позволяющая {{ ydb-short-name }} выполнять запросы к различным внешним источникам данных. Запросы к некоторым источникам отправляются напрямую из процесса `ydbd`, в то время как другие проксируются через отдельный процесс-коннектор.
17+
* [Трассировочные](../../reference/observability/tracing/setup.md) данные отправляются во внешний сборщик через gRPC.
18+
19+
* В [асинхронной репликации](../../concepts/async-replication.md) между двумя базами данных {{ ydb-short-name }} одна из них выступает в роли клиента для другой.
20+
21+
По умолчанию шифрование данных при передаче отключено и должно быть включено отдельно для каждого протокола. Они могут использовать общий набор TLS-сертификатов или отдельные. Инструкции по включению TLS можно найти в разделе [{#T}](../../deploy/configuration/config.md).
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# Шифрование в {{ ydb-short-name }}
2+
3+
{{ ydb-short-name }} предоставляет два основных подхода к шифрованию пользовательских данных:
4+
5+
* [{#T}](data-at-rest.md)
6+
* [{#T}](data-in-transit.md)
7+
8+
Рекомендуется использовать их оба во всех производственных средах, где обрабатываются чувствительные данные.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
items:
2+
- name: При хранении
3+
href: data-at-rest.md
4+
- name: При передаче
5+
href: data-in-transit.md

0 commit comments

Comments
 (0)