Compare commits

..

6 Commits

Author SHA1 Message Date
Rusovich Violetta ef904ca952 fix-pull 2026-02-09 08:33:27 +03:00
Rusovich Violetta e8dc61f5a1 fix-index-compute-ssh 2025-12-26 16:12:26 +03:00
Rusovich Violetta 62f12c8ce1 delete-console 2025-12-26 16:09:31 +03:00
Rusovich Violetta a9cafb629c fix-edit-link-title 2025-12-26 16:08:55 +03:00
Rusovich Violetta abdc7bd70e fix-index 2025-12-25 16:16:46 +03:00
Rusovich Violetta 7fd1755a7d VEGA-6128 Генерация ссылок для index старниц 2025-12-25 14:13:59 +03:00
83 changed files with 739 additions and 1783 deletions
Submodule beecloud-docs deleted from df88416247
+2 -2
View File
@@ -1,12 +1,12 @@
{
"name": "docs",
"version": "0.6.5-main",
"version": "0.6.4-link",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "docs",
"version": "0.6.5-main",
"version": "0.6.4-link",
"license": "MIT",
"dependencies": {
"@beeline/design-tokens": "^1.31.6",
+236 -255
View File
@@ -2,7 +2,7 @@ import { defineConfig } from 'vitepress'
import { tabsMarkdownPlugin } from 'vitepress-plugin-tabs'
import { viteStaticCopy } from 'vite-plugin-static-copy'
import { overrideComponents } from './override-components'
import { resolve } from 'node:path'
import { resolve } from 'path'
import { fileURLToPath, URL } from 'node:url'
const gitlab = `<?xml version="1.0" encoding="UTF-8" standalone="no"?>
@@ -41,7 +41,240 @@ const gitlab = `<?xml version="1.0" encoding="UTF-8" standalone="no"?>
`
const new_version = process.env?.VITE_NEW_VERSION;
console.log({ base: typeof new_version !== 'undefined' ? '/' : '/docs/' })
const sidebarConfig = {
'/platform/': [
{
text: 'Платформа Beeline Cloud', link: '/platform/index.md',
collapsed: true,
items: [
{text: 'Обзор', link: '/platform/about.md'},
{text: 'Техническая поддержка', link: '/platform/support/support-overview.md'},
],
},
],
'/start/': [
{
text: 'Начало работы в Beeline Cloud', link: '/start/index.md',
},
{text: 'Начать работу', link: '/start/getting-started.md'},
{text: 'Бесплатный период', link: '/start/trial.md'},
{text: 'Платное использование', link: '/start/organization.md'},
],
// '/billing/': [
// ],
'/backups/': [
{
text: 'Резервное копирование', link: '/backups/index.md',
},
{
text: 'Обзор сервиса', link: '/backups/about.md',
collapsed: true,
items: [
{text: 'Квоты и лимиты', link: '/backups/backup-quatos.md'},
]
},
{text: 'Резервное копирование виртуальных машин Beeline Cloud', link: '/backups/backup-internal-infra.md'},
{text: 'Резервное копирование собственной инфраструктуры в Beeline Cloud', link: '/backups/backup-external-infra.md'},
{text: 'Каталог резервных копий', link: '/backups/view-backups.md'},
],
'/vdc/': [
{
text: 'Виртуальные дата-центры на VMware', link: '/vdc/index.md',
},
{
text: 'Обзор сервиса', link: '/vdc/vdc-overview.md',
collapsed: true,
items: [
{ text: 'О сервисе', link: '/vdc/vdc-about.md' },
{ text: 'Техническое описание', link: '/vdc/vdc-tech.md' },
{ text: 'Квоты и лимиты', link: '/vdc/vdc-quatos.md' },
]
},
{
text: 'Быстрый старт', link: '/vdc/vdc-getting-started.md'
},
{ text: 'Виртуальные дата-центры', link: '/vdc/vdc-how-to/vdc-index.md',
collapsed: true,
items: [
{ text: 'Создание дата-центра', link: '/vdc/vdc-how-to/vdc-create.md' },
{ text: 'Вход в дата-центр', link: '/vdc/vdc-how-to/vdc-enter.md' },
{ text: 'Управление дата-центром', link: '/vdc/vdc-how-to/vdc-manage.md'},
],
},
{ text: 'Виртуальные машины', link: '/vdc/vdc-how-to/vm/vm-index.md',
collapsed: true,
items: [
{text: 'Создание ВМ', link: '/vdc/vdc-how-to/vm/create-vm.md'},
{text: 'Создание vApp', link: '/vdc/vdc-how-to/vm/create-vapp.md'},
{text: 'Управление состоянием ВМ', link: '/vdc/vdc-how-to/vm/manage-vm.md'},
{text: 'Клонирование ВМ', link: '/vdc/vdc-how-to/vm/clone-vm.md'},
{text: 'Изменение конфигурации ВМ', link: '/vdc/vdc-how-to/vm/edit-vm.md'},
{text: 'Удаление ВМ', link: '/vdc/vdc-how-to/vm/delete-vm.md'},
{text: 'Группы размещения', link: '/vdc/vdc-how-to/vm/create-affinity-rules.md'},
{text: 'Снимки ВМ', link: '/vdc/vdc-how-to/vm/create-snapshot.md'},
{text: 'VMware Tools', link: '/vdc/vdc-how-to/vm/vmware-tools.md'},
],
},
{ text: 'Диски', link: '/vdc/vdc-how-to/disks/disks-index.md',
collapsed: true,
items: [
{text: 'Обзор', link: '/vdc/vdc-how-to/disks/about.md'},
{text: 'Создание диска', link: '/vdc/vdc-how-to/disks/create-disk.md'},
{text: 'Проверка состояния диска', link: '/vdc/vdc-how-to/disks/view-disk.md'},
{text: 'Управление выделенными дисками', link: '/vdc/vdc-how-to/disks/attach-disk.md'},
{text: 'Изменение политики хранения дисков ВМ', link: '/vdc/vdc-how-to/disks/change-storage-policy-of-vm.md'},
{text: 'Редактирование параметров диска', link: '/vdc/vdc-how-to/disks/edit-disk.md'},
{text: 'Удаление диска', link: '/vdc/vdc-how-to/disks/delete-disk.md'},
],
},
{ text: 'Сети', link: '/vdc/vdc-how-to/networks/networks-index.md',
collapsed: true,
items: [
{text: 'Обзор', link: '/vdc/vdc-how-to/networks/about.md'},
{text: 'Настройка доступа к ВМ из интернета', link: '/vdc/vdc-how-to/networks/allow-external-connections-to-vm.md'},
{text: 'Подключение ВМ в vApp к сети', link: '/vdc/vdc-how-to/networks/connect-vapp-to-network.md'},
{text: 'Подключение ВМ к интернету', link: '/vdc/vdc-how-to/networks/connect-vm-to-network.md'},
{text: 'Создание сети в организации и подключение к Edge Gateway', link: '/vdc/vdc-how-to/networks/create-network.md'},
{text: 'Подключение сети к Edge Gateway', link: '/vdc/vdc-how-to/networks/connect-to-edge-gateway.md'},
{text: 'Создание Pre-Shared Key', link: '/vdc/vdc-how-to/networks/create-psk.md'},
{ text: 'Настройка site-to-site подключения с помощью IPSec', link: '/vdc/vdc-how-to/networks/how-to-setup-ipsec-vpn.md',
collapsed: true,
items: [
{text: 'Настройка ASAv', link: '/vdc/vdc-how-to/networks/ipsec/asav.md'},
{text: 'Настройка CSR 1000v', link: '/vdc/vdc-how-to/networks/ipsec/csr1000v.md'},
{text: 'Настройка Fortigate', link: '/vdc/vdc-how-to/networks/ipsec/fortigate.md'},
{text: 'Проверить сетевую связанность', link: '/vdc/vdc-how-to/networks/ipsec/check-vpn-status.md'},
],
},
],
},
{ text: 'Пользователи и роли', link: '/vdc/vdc-how-to/users/users-index.md',
collapsed: true,
items: [
{text: 'Ролевая модель', link: '/vdc/vdc-how-to/users/roles.md'},
{text: 'Создание пользователя', link: '/vdc/vdc-how-to/users/add-user.md'},
{text: 'Изменение пароля пользователя', link: '/vdc/vdc-how-to/users/change-users-password.md'},
{text: 'Настройка квот', link: '/vdc/vdc-how-to/users/quotas.md'},
],
},
{ text: 'Двухфакторная аутентификация', link: '/vdc/vdc-how-to/vdc-2fa.md',
collapsed: true,
items: [
{text: 'Подключение 2FA', link: '/vdc/vdc-how-to/vdc-2fa-start.md'},
{text: 'Управление 2FA', link: '/vdc/vdc-how-to/vdc-2fa-manage.md'},
],
},
],
// { text: 'Тарификация', link: '/vdc/vdc-tarif.md' },
'/compute/': [
{
text: 'Виртуальные машины', link: '/compute/index.md',
},
{ text: 'Обзор сервиса', link: '/compute/compute-overview-index.md' ,
collapsed: true,
items: [
{ text: 'Техническое описание', link: '/compute/compute-overview.md' },
{ text: 'Квоты и лимиты', link: '/compute/compute-quatos.md' },
]
},
{text: 'Быстрый старт', link: '/compute/compute-getting-started.md', excludeFromIndex: true },
{ text: 'Виртуальные машины', link: '/compute/compute-how-to/compute-index.md',
collapsed: true,
items: [
{ text: 'Создание ВМ', link: '/compute/compute-how-to/compute-servers-create.md' },
{ text: 'Создание ВМ джамп-хоста', link: '/compute/compute-how-to/compute-servers-jump-create.md' },
{ text: 'Подключение к ВМ', link: '/compute/compute-how-to/compute-connect-index.md',
collapsed: true,
items: [
{ text: 'Подключение по SSH по внешнему IP-адресу с помощью ключевой пары', link: '/compute/compute-how-to/compute-connect-public.md'},
{ text: 'Подключение по SSH по внутреннему IP-адресу с помощью ключевой пары', link: '/compute/compute-how-to/compute-connect-inside.md' },
{ text: 'Подключение по SSH по логину и паролю', link: '/compute/compute-how-to/compute-connect-pwd.md' },
]
},
{ text: 'Управление ВМ', link: '/compute/compute-how-to/compute-servers-manage.md' },
],
},
{ text: 'Диски', link: '/compute/compute-how-to/compute-disks/compute-disk-index.md',
collapsed: true,
items: [
{ text: 'Обзор', link: '/compute/compute-how-to/compute-disks/compute-disk-about.md' },
{ text: 'Создание диска', link: '/compute/compute-how-to/compute-disks/compute-disk-create.md' },
{ text: 'Управление дисками', link: '/compute/compute-how-to/compute-disks/compute-disk-manage.md' },
{ text: 'Удаление диска', link: '/compute/compute-how-to/compute-disks/compute-disk-del.md' },
]
},
{ text: 'IP-адреса', link: '/compute/compute-how-to/compute-ip/compute-ip-index.md',
collapsed: true,
items: [
{ text: 'Обзор', link: '/compute/compute-how-to/compute-ip/compute-ip-about.md' },
{ text: 'Просмотр IP-адресов', link: '/compute/compute-how-to/compute-ip/compute-ip-view.md' },
{ text: 'Создание IP-адреса', link: '/compute/compute-how-to/compute-ip/compute-ip-create.md' },
{ text: 'Управление IP-адресами', link: '/compute/compute-how-to/compute-ip/compute-ip-manager.md' },
{ text: 'Удаление IP-адреса', link: '/compute/compute-how-to/compute-ip/compute-ip-del.md' },
]
},
{ text: 'Группы размещения', link: '/compute/compute-how-to/compute-placement-groups/compute-placement-groups-index.md',
collapsed: true,
items: [
{ text: 'Обзор', link: '/compute/compute-how-to/compute-placement-groups/compute-placement-groups-about.md'},
{ text: 'Создание группы размещения', link: '/compute/compute-how-to/compute-placement-groups/compute-placement-groups-create.md'},
{ text: 'Управление группами размещения', link: '/compute/compute-how-to/compute-placement-groups/compute-placement-groups-manager.md' },
{ text: 'Удаление группы размещения', link: '/compute/compute-how-to/compute-placement-groups/compute-placement-groups-del.md' },
]
},
{ text: 'Сети', link: '/compute/compute-how-to/compute-network/compute-network-index.md',
collapsed: true,
items: [
{ text: 'Настройка site-to-site VPN с помощью VyOS', link: '/compute/compute-how-to/compute-network/compute-vpn-vyos.md' },
{ text: 'Подключение ВМ закрытого контура к интернету', link: '/compute/compute-how-to/compute-network/compute-network-inside.md' },
],
excludeFromIndex: true,
},
],
'/admin/': [
{
text: 'Администрирование', link: '/admin/index.md',
},
{text: 'Управление ключевыми парами', link: '/admin/ssh.md'},
],
'/vdi/': [
{
text: 'Виртуальные рабочие столы', link: '/vdi/index.md',
},
{
text: 'Обзор сервиса', link: '/vdi/vdi-overview.md',
collapsed: true,
items: [
{ text: 'О сервисе', link: '/vdi/vdi-about.md' },
{ text: 'Техническое описание', link: '/vdi/vdi-tech.md' },
{ text: 'Квоты и лимиты', link: '/vdi/vdi-quatos.md' },
{ text: 'Тарификация', link: '/vdi/vdi-tarif.md' },
]
},
{
text: 'Заказ виртуальных рабочих столов', link: '/vdi/vdi-how-to/vdi-create.md'
},
{
text: 'Настройка сервиса', link: '/vdi/vdi-how-to/vdi-nastroika.md',
collapsed: true,
items: [
{ text: 'Настройка интеграции с Active Directory', link: '/vdi/vdi-how-to/vdi-connect-to-ad.md' },
{ text: 'Настройка сети', link: '/vdi/vdi-how-to/vdi-interconnect.md' },
]
},
// {
// text: 'Gold-образ', link: '/vdi/vdi-how-to/vdi-gold.md'
// },
{
text: 'Подключение к виртуальному рабочему месту', link: '/vdi/vdi-how-to/vdi-connect.md'
},
],
}
// https://vitepress.dev/reference/site-config
export default defineConfig({
@@ -140,259 +373,7 @@ export default defineConfig({
outline: {
label: 'Содержание'
},
sidebar: {
'/platform/': [
{
text: 'Платформа Beeline Cloud', link: '/platform/index.md',
collapsed: true,
items: [
{text: 'Обзор', link: '/platform/about.md'},
{text: 'Техническая поддержка', link: '/platform/support/support-overview.md'},
],
},
],
'/start/': [
{
text: 'Начало работы в Beeline Cloud', link: '/start/index.md',
},
{text: 'Начать работу', link: '/start/getting-started.md'},
{text: 'Бесплатный период', link: '/start/trial.md'},
{text: 'Платное использование', link: '/start/organization.md'},
],
'/PaaS/': [
{
text: 'Начало работы в Cloud PostgreSQL', link: '/PaaS/index.md',
},
{ text: 'Cloud PostgreSQL', link: '/PaaS/PostgreSQL/PostgreSQL-index.md',
collapsed: true,
items: [
{text: 'Обзор сервиса', link: '/PaaS/PostgreSQL/about.md'},
{text: 'Описание технических параметров', link: '/PaaS/PostgreSQL/cluster-parameter.md'},
{text: 'Общая схема подключения', link: '/PaaS/PostgreSQL/connection.md'},
{text: 'Возможности пользователя', link: '/PaaS/PostgreSQL/user-capabilities.md'},
{text: 'Веб-интерфейс pgAdmin', link: '/PaaS/PostgreSQL/pgadmin.md'},
{text: 'Веб-интерфейс Grafana', link: '/PaaS/PostgreSQL/grafana.md'},
],
},
{text: 'Параметры конфигурации IPSEC', link: '/PaaS/IPSEC.md'},
],
// '/billing/': [
// ],
'/backups/': [
{
text: 'Резервное копирование', link: '/backups/index.md',
},
{
text: 'Обзор сервиса', link: '/backups/backups-overview.md',
collapsed: true,
items: [
{text: 'О сервисе', link: '/backups/about.md'},
{text: 'Квоты и лимиты', link: '/backups/backup-quatos.md'},
]
},
{text: 'Резервное копирование виртуальных машин Beeline Cloud', link: '/backups/backup-internal-infra.md'},
{text: 'Резервное копирование собственной инфраструктуры в Beeline Cloud', link: '/backups/backup-external-infra.md'},
{text: 'Каталог резервных копий', link: '/backups/view-backups.md'},
],
'/vdc/': [
{
text: 'Виртуальные дата-центры на VMware', link: '/vdc/index.md',
},
{
text: 'Обзор сервиса', link: '/vdc/vdc-overview.md',
collapsed: true,
items: [
{ text: 'О сервисе', link: '/vdc/vdc-about.md' },
{ text: 'Техническое описание', link: '/vdc/vdc-tech.md' },
{ text: 'Квоты и лимиты', link: '/vdc/vdc-quatos.md' },
]
},
{
text: 'Быстрый старт', link: '/vdc/vdc-getting-started.md'
},
{ text: 'Виртуальные дата-центры', link: '/vdc/vdc-how-to/vdc-index.md',
collapsed: true,
items: [
{ text: 'Создание дата-центра', link: '/vdc/vdc-how-to/vdc-create.md' },
{ text: 'Вход в дата-центр', link: '/vdc/vdc-how-to/vdc-enter.md' },
{ text: 'Управление дата-центром', link: '/vdc/vdc-how-to/vdc-manage.md'},
],
},
{ text: 'Виртуальные машины', link: '/vdc/vdc-how-to/vm/vm-index.md',
collapsed: true,
items: [
{text: 'Создание ВМ', link: '/vdc/vdc-how-to/vm/create-vm.md'},
{text: 'Создание vApp', link: '/vdc/vdc-how-to/vm/create-vapp.md'},
{text: 'Управление состоянием ВМ', link: '/vdc/vdc-how-to/vm/manage-vm.md'},
{text: 'Клонирование ВМ', link: '/vdc/vdc-how-to/vm/clone-vm.md'},
{text: 'Изменение конфигурации ВМ', link: '/vdc/vdc-how-to/vm/edit-vm.md'},
{text: 'Удаление ВМ', link: '/vdc/vdc-how-to/vm/delete-vm.md'},
{text: 'Группы размещения', link: '/vdc/vdc-how-to/vm/create-affinity-rules.md'},
{text: 'Снимки ВМ', link: '/vdc/vdc-how-to/vm/create-snapshot.md'},
{text: 'VMware Tools', link: '/vdc/vdc-how-to/vm/vmware-tools.md'},
],
},
{ text: 'Диски', link: '/vdc/vdc-how-to/disks/disks-index.md',
collapsed: true,
items: [
{text: 'Обзор', link: '/vdc/vdc-how-to/disks/about.md'},
{text: 'Создание диска', link: '/vdc/vdc-how-to/disks/create-disk.md'},
{text: 'Проверка состояния диска', link: '/vdc/vdc-how-to/disks/view-disk.md'},
{text: 'Управление выделенными дисками', link: '/vdc/vdc-how-to/disks/attach-disk.md'},
{text: 'Изменение политики хранения дисков ВМ', link: '/vdc/vdc-how-to/disks/change-storage-policy-of-vm.md'},
{text: 'Редактирование параметров диска', link: '/vdc/vdc-how-to/disks/edit-disk.md'},
{text: 'Удаление диска', link: '/vdc/vdc-how-to/disks/delete-disk.md'},
],
},
{ text: 'Сети', link: '/vdc/vdc-how-to/networks/networks-index.md',
collapsed: true,
items: [
{text: 'Обзор', link: '/vdc/vdc-how-to/networks/about.md'},
{text: 'Настройка доступа к ВМ из интернета', link: '/vdc/vdc-how-to/networks/allow-external-connections-to-vm.md'},
{text: 'Подключение ВМ в vApp к сети', link: '/vdc/vdc-how-to/networks/connect-vapp-to-network.md'},
{text: 'Подключение ВМ к интернету', link: '/vdc/vdc-how-to/networks/connect-vm-to-network.md'},
{text: 'Создание сети в организации и подключение к Edge Gateway', link: '/vdc/vdc-how-to/networks/create-network.md'},
{text: 'Подключение сети к Edge Gateway', link: '/vdc/vdc-how-to/networks/connect-to-edge-gateway.md'},
{text: 'Создание Pre-Shared Key', link: '/vdc/vdc-how-to/networks/create-psk.md'},
{ text: 'Настройка site-to-site подключения с помощью IPSec', link: '/vdc/vdc-how-to/networks/how-to-setup-ipsec-vpn.md',
collapsed: true,
items: [
{text: 'Настройка IPSec VPN', link: '/vdc/vdc-how-to/networks/ipsec/setup-ipsec-vpn.md'},
{text: 'Настройка ASAv', link: '/vdc/vdc-how-to/networks/ipsec/asav.md'},
{text: 'Настройка CSR 1000v', link: '/vdc/vdc-how-to/networks/ipsec/csr1000v.md'},
{text: 'Настройка Fortigate', link: '/vdc/vdc-how-to/networks/ipsec/fortigate.md'},
{text: 'Проверить сетевую связанность', link: '/vdc/vdc-how-to/networks/ipsec/check-vpn-status.md'},
],
},
],
},
{ text: 'Пользователи и роли', link: '/vdc/vdc-how-to/users/users-index.md',
collapsed: true,
items: [
{text: 'Ролевая модель', link: '/vdc/vdc-how-to/users/roles.md'},
{text: 'Создание пользователя', link: '/vdc/vdc-how-to/users/add-user.md'},
{text: 'Изменение пароля пользователя', link: '/vdc/vdc-how-to/users/change-users-password.md'},
{text: 'Настройка квот', link: '/vdc/vdc-how-to/users/quotas.md'},
],
},
{ text: 'Двухфакторная аутентификация', link: '/vdc/vdc-how-to/vdc-2fa.md',
collapsed: true,
items: [
{text: 'Подключение 2FA', link: '/vdc/vdc-how-to/vdc-2fa-start.md'},
{text: 'Управление 2FA', link: '/vdc/vdc-how-to/vdc-2fa-manage.md'},
],
},
],
// { text: 'Тарификация', link: '/vdc/vdc-tarif.md' },
'/compute/': [
{
text: 'Виртуальные машины', link: '/compute/index.md',
},
{ text: 'Обзор сервиса', link: '/compute/compute-overview-index.md' ,
collapsed: true,
items: [
{ text: 'Техническое описание', link: '/compute/compute-overview.md' },
{ text: 'Квоты и лимиты', link: '/compute/compute-quatos.md' },
]
},
{text: 'Быстрый старт', link: '/compute/compute-getting-started.md'},
{ text: 'Виртуальные машины', link: '/compute/compute-how-to/compute-index.md',
collapsed: true,
items: [
{ text: 'Создание ВМ', link: '/compute/compute-how-to/compute-servers-create.md' },
{ text: 'Создание ВМ джамп-хоста', link: '/compute/compute-how-to/compute-servers-jump-create.md' },
{ text: 'Подключение к ВМ', link: '/compute/compute-how-to/compute-connect-index.md',
collapsed: true,
items: [
{ text: 'Подключение по SSH по внешнему IP-адресу с помощью ключевой пары', link: '/compute/compute-how-to/compute-connect-public.md'},
{ text: 'Подключение по SSH по внутреннему IP-адресу с помощью ключевой пары', link: '/compute/compute-how-to/compute-connect-inside.md' },
{ text: 'Подключение по SSH по логину и паролю', link: '/compute/compute-how-to/compute-connect-pwd.md' },
]
},
{ text: 'Управление ВМ', link: '/compute/compute-how-to/compute-servers-manage.md' },
],
},
{ text: 'Диски', link: '/compute/compute-how-to/compute-disks/compute-disk-index.md',
collapsed: true,
items: [
{ text: 'Обзор', link: '/compute/compute-how-to/compute-disks/compute-disk-about.md' },
{ text: 'Создание диска', link: '/compute/compute-how-to/compute-disks/compute-disk-create.md' },
{ text: 'Управление дисками', link: '/compute/compute-how-to/compute-disks/compute-disk-manage.md' },
{ text: 'Удаление диска', link: '/compute/compute-how-to/compute-disks/compute-disk-del.md' },
]
},
{ text: 'IP-адреса', link: '/compute/compute-how-to/compute-ip/compute-ip-index.md',
collapsed: true,
items: [
{ text: 'Обзор', link: '/compute/compute-how-to/compute-ip/compute-ip-about.md' },
{ text: 'Просмотр IP-адресов', link: '/compute/compute-how-to/compute-ip/compute-ip-view.md' },
{ text: 'Создание IP-адреса', link: '/compute/compute-how-to/compute-ip/compute-ip-create.md' },
{ text: 'Управление IP-адресами', link: '/compute/compute-how-to/compute-ip/compute-ip-manager.md' },
{ text: 'Удаление IP-адреса', link: '/compute/compute-how-to/compute-ip/compute-ip-del.md' },
]
},
{ text: 'Группы размещения', link: '/compute/compute-how-to/compute-placement-groups/compute-placement-groups-index.md',
collapsed: true,
items: [
{ text: 'Обзор', link: '/compute/compute-how-to/compute-placement-groups/compute-placement-groups-about.md'},
{ text: 'Создание группы размещения', link: '/compute/compute-how-to/compute-placement-groups/compute-placement-groups-create.md'},
{ text: 'Управление группами размещения', link: '/compute/compute-how-to/compute-placement-groups/compute-placement-groups-manager.md' },
{ text: 'Удаление группы размещения', link: '/compute/compute-how-to/compute-placement-groups/compute-placement-groups-del.md' },
]
},
{ text: 'Сети', link: '/compute/compute-how-to/compute-network/compute-network-index.md',
collapsed: true,
items: [
{ text: 'Настройка site-to-site VPN с помощью VyOS', link: '/compute/compute-how-to/compute-network/compute-vpn-vyos.md' },
{ text: 'Подключение ВМ закрытого контура к интернету', link: '/compute/compute-how-to/compute-network/compute-network-inside.md' },
],
},
],
'/admin/': [
{
text: 'Администрирование', link: '/admin/index.md',
},
{text: 'Управление ключевыми парами', link: '/admin/ssh.md'},
],
'/vdi/': [
{
text: 'Виртуальные рабочие столы', link: '/vdi/index.md',
},
{
text: 'Обзор сервиса', link: '/vdi/vdi-overview.md',
collapsed: true,
items: [
{ text: 'О сервисе', link: '/vdi/vdi-about.md' },
{ text: 'Техническое описание', link: '/vdi/vdi-tech.md' },
{ text: 'Квоты и лимиты', link: '/vdi/vdi-quatos.md' },
{ text: 'Тарификация', link: '/vdi/vdi-tarif.md' },
]
},
{
text: 'Заказ виртуальных рабочих столов', link: '/vdi/vdi-how-to/vdi-create.md'
},
{
text: 'Настройка сервиса', link: '/vdi/vdi-how-to/vdi-nastroika.md',
collapsed: true,
items: [
{ text: 'Настройка интеграции с Active Directory', link: '/vdi/vdi-how-to/vdi-connect-to-ad.md' },
{ text: 'Настройка сети', link: '/vdi/vdi-how-to/vdi-interconnect.md' },
]
},
// {
// text: 'Gold-образ', link: '/vdi/vdi-how-to/vdi-gold.md'
// },
{
text: 'Подключение к виртуальному рабочему месту', link: '/vdi/vdi-how-to/vdi-connect.md'
},
],
},
sidebar: sidebarConfig,
},
}
)
@@ -0,0 +1,16 @@
import type { Plugin } from 'vite'
import type { SidebarItem } from './utils/types'
import { processAllFiles } from './hook/process-files'
export const autoSectionLinksPlugin = (
srcDir: string,
sidebarConfig: Record<string, SidebarItem[]>
): Plugin => ({
name: 'auto-section-links',
buildStart: () => {
processAllFiles(srcDir, sidebarConfig)
},
configureServer: () => {
processAllFiles(srcDir, sidebarConfig)
}
})
+4
View File
@@ -0,0 +1,4 @@
export const INDEX_FILE = 'index.md'
export const INDEX_FILE_PATTERN = /-index\.md$|index\.md$/
export const FRONTMATTER_REGEX = /^---\s*\n([\s\S]*?)\n---/
export const SECTION_LINK_KEYS = ['title', 'link', 'description'] as const
@@ -0,0 +1,36 @@
import { existsSync } from 'fs'
import { relative, resolve } from 'path'
import type { SidebarItem } from '../utils/types'
import { findMarkdownFiles } from '../utils/file-finder'
import { processIndexFile, processPageWithItems } from '../utils/file-processor'
import { INDEX_FILE, INDEX_FILE_PATTERN } from '../constants'
export const processAllFiles = (
srcDir: string,
sidebarConfig: Record<string, SidebarItem[]>
) => {
const srcPath = resolve(srcDir)
for (const [folderPath, items] of Object.entries(sidebarConfig)) {
const normalizedFolder = folderPath.replace(/^\/+|\/+$/g, '')
const folderFullPath = resolve(srcPath, normalizedFolder)
if (!existsSync(folderFullPath)) {
continue
}
const mdFiles = findMarkdownFiles(folderFullPath)
for (const filePath of mdFiles) {
const fileName = filePath.split(/[/\\]/).pop() || ''
const relativePath = relative(srcPath, filePath).replace(/\\/g, '/')
const normalizedPath = relativePath.startsWith('/') ? relativePath : `/${relativePath}`
if (fileName === INDEX_FILE) {
processIndexFile(filePath, items, srcPath)
} else if (INDEX_FILE_PATTERN.test(fileName) && fileName !== INDEX_FILE) {
processPageWithItems(filePath, items, srcPath)
}
}
}
}
@@ -0,0 +1,17 @@
import { readFileSync, existsSync } from 'fs'
import { resolve } from 'path'
import { parseFrontmatter } from './frontmatter'
export const getPageDescription = (filePath: string, srcDir: string) => {
try {
const fullPath = resolve(srcDir, filePath.replace(/^\//, ''))
if (!existsSync(fullPath)) return undefined
const fileContent = readFileSync(fullPath, 'utf-8')
const { frontmatter } = parseFrontmatter(fileContent)
return frontmatter.description as string | undefined
} catch {
return undefined
}
}
@@ -0,0 +1,24 @@
import { readdirSync, statSync } from 'fs'
import { join } from 'path'
export const findMarkdownFiles = (dir: string) => {
const files: string[] = []
try {
const entries = readdirSync(dir)
for (const entry of entries) {
const fullPath = join(dir, entry)
const stat = statSync(fullPath)
if (stat.isDirectory()) {
files.push(...findMarkdownFiles(fullPath))
} else if (entry.endsWith('.md')) {
files.push(fullPath)
}
}
} catch {
}
return files
}
@@ -0,0 +1,117 @@
import { readFileSync, writeFileSync, existsSync } from 'fs'
import { relative, resolve } from 'path'
import type { SidebarItem } from './types'
import { parseFrontmatter, stringifyFrontmatter } from './frontmatter'
import { mergeSectionLinks, extractTopLevelLinks, extractItemsForPage } from './links'
import { normalizeLink } from './path-utils'
import { SectionLinkListItem } from '../../theme/components/SectionLinkList/SectionLinkList.types'
const removeDuplicates = (links: SectionLinkListItem[]) => {
const result: SectionLinkListItem[] = []
const seenLinks = new Set<string>()
for (const link of links) {
if (link.link) {
const normalized = normalizeLink(link.link)
if (!seenLinks.has(normalized)) {
seenLinks.add(normalized)
result.push(link)
}
}
}
return result
}
const hasChanges = (
existingLinks: SectionLinkListItem[],
mergedLinks: SectionLinkListItem[]
) => {
if (existingLinks.length !== mergedLinks.length) return true
const existingSet = new Set(
existingLinks
.filter(link => link.link)
.map(link => `${normalizeLink(link.link!)}|${link.title}`)
)
const mergedSet = new Set(
mergedLinks
.filter(link => link.link)
.map(link => `${normalizeLink(link.link!)}|${link.title}`)
)
if (existingSet.size !== mergedSet.size) return true
for (const item of existingSet) {
if (!mergedSet.has(item)) return true
}
return false
}
export const processIndexFile = (
filePath: string,
sidebarItems: SidebarItem[],
srcDir: string
) => {
if (!existsSync(filePath)) return false
try {
const fileContent = readFileSync(filePath, 'utf-8')
const { frontmatter, content } = parseFrontmatter(fileContent)
const relativePath = relative(srcDir, filePath).replace(/\\/g, '/')
const normalizedPath = relativePath.startsWith('/') ? relativePath : `/${relativePath}`
const existingLinks = removeDuplicates(
Array.isArray(frontmatter.section_links) ? [...frontmatter.section_links] : []
)
const newLinks = extractTopLevelLinks(sidebarItems, normalizedPath, srcDir)
if (!newLinks.length) return false
const mergedLinks = removeDuplicates(mergeSectionLinks(existingLinks, newLinks))
if (!hasChanges(existingLinks, mergedLinks)) return false
frontmatter.section_links = mergedLinks
writeFileSync(filePath, stringifyFrontmatter(frontmatter, content), 'utf-8')
return true
} catch {
return false
}
}
export const processPageWithItems = (
filePath: string,
sidebarItems: SidebarItem[],
srcDir: string
) => {
if (!existsSync(filePath)) return false
try {
const fileContent = readFileSync(filePath, 'utf-8')
const { frontmatter, content } = parseFrontmatter(fileContent)
const relativePath = relative(srcDir, filePath).replace(/\\/g, '/')
const normalizedPath = relativePath.startsWith('/') ? relativePath : `/${relativePath}`
const existingLinks = removeDuplicates(
Array.isArray(frontmatter.section_links) ? [...frontmatter.section_links] : []
)
const newLinks = extractItemsForPage(sidebarItems, normalizedPath, srcDir)
const mergedLinks = newLinks.length > 0
? removeDuplicates(mergeSectionLinks(existingLinks, newLinks))
: []
if (!hasChanges(existingLinks, mergedLinks)) return false
frontmatter.section_links = mergedLinks
writeFileSync(filePath, stringifyFrontmatter(frontmatter, content), 'utf-8')
return true
} catch {
return false
}
}
+142
View File
@@ -0,0 +1,142 @@
import type { Frontmatter } from './types'
import { SECTION_LINK_KEYS, FRONTMATTER_REGEX } from '../constants'
import { SectionLinkListItem } from '../../theme/components/SectionLinkList/SectionLinkList.types'
export const parseFrontmatter = (content: string) => {
const frontmatterMatch = content.match(FRONTMATTER_REGEX)
if (!frontmatterMatch) {
const cleanContent = content.replace(/^---[\s\S]*?---\s*\n*/g, '').trim()
return { frontmatter: {}, content: cleanContent || content }
}
const [, frontmatterText] = frontmatterMatch
const frontmatterEnd = frontmatterMatch[0].length
let cleanContent = content.slice(frontmatterEnd)
cleanContent = cleanContent.replace(/^---[\s\S]*?---\s*\n*/g, '').trim()
if (!cleanContent) {
cleanContent = content.slice(frontmatterEnd).replace(/^---[\s\S]*?---\s*\n*/g, '').trim()
}
const frontmatter: Frontmatter = {}
const lines = frontmatterText.split('\n')
let currentKey: string | undefined
let currentValue: SectionLinkListItem[] = []
let currentItem: Record<string, string> | undefined
let inArray = false
for (const line of lines) {
const trimmed = line.trim()
if (trimmed && !trimmed.startsWith('#')) {
const lineIndent = line.match(/^(\s*)/)?.[1]?.length ?? 0
if (lineIndent === 0 && trimmed.includes(':')) {
if (inArray && currentKey) {
frontmatter[currentKey] = currentValue
currentValue = []
inArray = false
}
const colonMatch = trimmed.match(/^([^:]+):\s*(.*)$/)
if (colonMatch) {
const [, key, value] = colonMatch
currentKey = key.trim()
const trimmedValue = value.trim()
if (trimmedValue === '') {
inArray = true
currentValue = []
} else {
frontmatter[currentKey] = trimmedValue.replace(/^["']|["']$/g, '')
}
}
} else if (lineIndent === 2 && trimmed.startsWith('- ')) {
if (!inArray && currentKey) {
inArray = true
currentValue = []
}
if (currentItem && currentItem.title && currentItem.link !== undefined) {
const link: SectionLinkListItem = {
title: currentItem.title,
link: currentItem.link,
description: currentItem.description
}
if (!currentValue.some(item => item.link === link.link)) {
currentValue.push(link)
}
}
const itemText = trimmed.slice(2).trim()
if (itemText.includes(':')) {
currentItem = {}
const parts = itemText.split(',').map(p => p.trim())
for (const part of parts) {
const colonMatch = part.match(/^(\w+):\s*(.+)$/)
if (colonMatch) {
const [, key, value] = colonMatch
if (SECTION_LINK_KEYS.includes(key as typeof SECTION_LINK_KEYS[number])) {
currentItem[key] = value.replace(/^["']|["']$/g, '')
}
}
}
} else {
currentValue.push({ title: itemText, link: '' })
}
} else if (lineIndent >= 4 && currentItem && trimmed.includes(':')) {
const colonIndex = trimmed.indexOf(':')
if (colonIndex !== -1) {
const key = trimmed.substring(0, colonIndex).trim()
const value = trimmed.substring(colonIndex + 1).trim()
if (SECTION_LINK_KEYS.includes(key as typeof SECTION_LINK_KEYS[number])) {
currentItem[key] = value === '' ? '' : value.replace(/^["']|["']$/g, '')
}
}
}
}
}
if (currentItem && inArray && currentItem.title && currentItem.link !== undefined) {
const link: SectionLinkListItem = {
title: currentItem.title,
link: currentItem.link,
description: currentItem.description
}
if (!currentValue.some(item => item.link === link.link)) {
currentValue.push(link)
}
}
if (inArray && currentKey) {
frontmatter[currentKey] = currentValue
}
return { frontmatter, content: cleanContent || content }
}
export const stringifyFrontmatter = (frontmatter: Frontmatter, content: string) => {
const lines: string[] = []
for (const [key, value] of Object.entries(frontmatter)) {
if (Array.isArray(value)) {
lines.push(`${key}:`)
for (const item of value) {
if (typeof item === 'object' && item) {
const link = item as SectionLinkListItem
lines.push(` - title: ${link.title ?? ''}`)
if (link.link) lines.push(` link: ${link.link}`)
if ('description' in link && link.description !== undefined && link.description !== null && String(link.description).trim() !== '') {
lines.push(` description: ${String(link.description)}`)
}
} else {
lines.push(` - ${item}`)
}
}
} else if (value) {
const strValue = String(value)
const needsQuotes = strValue.includes(':') || (strValue.includes(' ') && !strValue.startsWith('"')) || strValue === ''
const escaped = strValue.replace(/"/g, '\\"')
lines.push(`${key}: ${needsQuotes ? `"${escaped}"` : strValue}`)
}
}
return `---\n${lines.join('\n')}\n---\n\n${content}`
}
+118
View File
@@ -0,0 +1,118 @@
import type { SidebarItem } from './types'
import { getPageDescription } from './descriptions'
import { normalizeLink } from './path-utils'
import { SectionLinkListItem } from '../../theme/components/SectionLinkList/SectionLinkList.types'
export const mergeSectionLinks = (
existingLinks: SectionLinkListItem[],
newLinks: SectionLinkListItem[]
) => {
const existingLinksMap = new Map<string, SectionLinkListItem>()
const result: SectionLinkListItem[] = []
const processedLinks = new Set<string>()
for (const existingLink of existingLinks) {
if (existingLink.link) {
const normalizedLink = normalizeLink(existingLink.link)
if (!existingLinksMap.has(normalizedLink)) {
existingLinksMap.set(normalizedLink, existingLink)
}
}
}
for (const newLink of newLinks) {
if (newLink.link) {
const normalizedLink = normalizeLink(newLink.link)
if (!processedLinks.has(normalizedLink)) {
processedLinks.add(normalizedLink)
if (existingLinksMap.has(normalizedLink)) {
const existingLink = existingLinksMap.get(normalizedLink)!
result.push({ ...existingLink, title: newLink.title })
} else {
result.push(newLink)
}
}
}
}
return result
}
export const extractTopLevelLinks = (
items: SidebarItem[],
currentIndexPath: string,
srcDir: string
) => {
const links: SectionLinkListItem[] = []
const normalizedCurrentPath = normalizeLink(currentIndexPath)
for (const item of items) {
if ('excludeFromIndex' in item && item.excludeFromIndex) {
continue
}
if (item.link) {
const normalizedItemPath = normalizeLink(item.link)
if (normalizedItemPath === normalizedCurrentPath) {
continue
}
links.push({
title: item.text || '',
link: item.link,
description: getPageDescription(item.link, srcDir)
})
}
}
return links
}
const findItemsRecursive = (
itemsList: SidebarItem[],
pagePath: string,
srcDir: string
): SectionLinkListItem[] => {
const normalizedPagePath = normalizeLink(pagePath)
const links: SectionLinkListItem[] = []
for (const item of itemsList) {
if (item.link) {
const normalizedItemPath = normalizeLink(item.link)
if (normalizedItemPath === normalizedPagePath && item.items && Array.isArray(item.items) && item.items.length > 0) {
for (const subItem of item.items) {
if ('excludeFromIndex' in subItem && subItem.excludeFromIndex) {
continue
}
if (subItem.link) {
links.push({
title: subItem.text || '',
link: subItem.link,
description: getPageDescription(subItem.link, srcDir)
})
}
}
return links
}
}
if (item.items && Array.isArray(item.items)) {
const found = findItemsRecursive(item.items, pagePath, srcDir)
if (found.length > 0) {
return found
}
}
}
return links
}
export const extractItemsForPage = (
items: SidebarItem[],
pagePath: string,
srcDir: string
) => findItemsRecursive(items, pagePath, srcDir)
@@ -0,0 +1,6 @@
export const normalizeLink = (link: string): string =>
!link ? '' : link
.replace(/^\/+/, '')
.replace(/\.md$/, '')
.replace(/\\/g, '/')
.trim()
+12
View File
@@ -0,0 +1,12 @@
import { SectionLinkListItem } from "../../theme/components/SectionLinkList/SectionLinkList.types"
export type SidebarItem = {
text: string
link?: string
items?: SidebarItem[]
}
export type Frontmatter = {
section_links?: SectionLinkListItem[]
[key: string]: string | number | boolean | string[] | SectionLinkListItem[] | undefined
}
@@ -2,6 +2,8 @@ export type SectionLinkListItem = {
title: string,
link: string,
description?: string
collapsed?: boolean
excludeFromIndex?: boolean
}
export type SectionLinkListProps = {
-144
View File
@@ -1,144 +0,0 @@
# Параметры конфигурации IPsec-соединения
В данном разделе приведены параметры конфигурации IPsec-соединения, используемого для организации защищенного канала связи между инфраструктурой заказчика и кластерами. Материал описывает настройки этапов установки соединения и передачи данных, включая методы аутентификации, алгоритмы шифрования и хеширования, группы Диффи-Хеллмана, а также параметры времени жизни ключей.
Ниже приведены основные параметры, задаваемые при развертывании кластера Kafka. Часть параметров определяется клиентом на этапе заказа услуги, часть - фиксирована и не подлежит изменению.
## Данные о конфигурации IPSEC
Параметры подключения (имя туннеля, устройство, публичный IP-адрес) заполняются вручную на основании информации, предоставленной заказчиком.
#### Версия IKE (Internet Key Exchange)
Версия IKE выбирается из выпадающего списка, который содержит в себе два параметра - **v1** и **v2**.
- **IKE v1** - более ранняя версия протокола;
- **IKE v2** - более современная версия (обеспечивает более устойчивое соединение и гибкую обработку ошибок).
Рекомендуется использовать **IKE v2**, если оборудование заказчика это поддерживает.
## Метод аутентификации
Метод аутентификации выбирается вручную из выпадающего списка, который содержит два варианта:
- **PSK (Pre-Shared Key)** - метод аутентификации, при котором используется заранее согласованный общий ключ;
- **Certificate** - аутентификация с использованием цифровых сертификатов.
## Этап 1 - установка защищенного соединения
#### Hash
Определяет алгоритм хеширования **для защиты управляющего канала**.
Данный параметр заполняется вручную из выпадающего списка следующего содержания:
- **SHA 1** - Формирует хеш длиной 160 бит, имеет коллизии (уязвимости), в современных системах считается устаревшим, используется только для совместимости со старым оборудованием;
- **SHA 2 - 256** - Формирует хеш длиной 256 бит, существенно более устойчив к атакам, оптимальный баланс между безопасностью и производительностью, а также, на сегодняшний день, является стандартом по умолчанию в большинстве систем;
- **SHA 2 - 384** - Длина хеша составляет 384 бита, имеет повышенную криптостойкость, требует больше вычислительных ресурсов, чем SHA-1 и SHA 2-256. Используется в средах с повышенными требованиями к безопасности;
- **SHA 2 - 512** - Длина хеша составляет 512 бит, осуществляет самый высокий уровень стойкости из перечисленных, а также создает большую нагрузку на процессор. Обычно применяется в системах с повышенными требованиями к криптографии.
#### Шифрование
Определяет **алгоритм симметричного шифрования.**
Данный параметр заполняется вручную из выпадающего списка следующего содержания:
- **AES 128** - имеет 128-битный ключ, обеспечивает быстрое шифрование, имеет достаточный уровень безопасности для большинства задач;
- **AES 256** - имеет 256-битный ключ, обеспечивает более высокую криптостойкость, оказывает немного большую нагрузку на CPU;
- **AES GCM 12** / **AES GCM 192** / **AES GCM 256** - данные алгоритмы совмещают шифрование и контроль целостности, обладают более современным режимом работы, считаются более эффективными по производительности, а также рекомендуются в современных конфигурациях. Разница между этими тремя алгоритмами лишь в длине ключа.
#### DH Group - группа Деффи Хеллмана
Механизм Diffie-Hellman используется **для безопасной генерации общего секретного ключа** между сторонами туннеля без передачи этого ключа по сети.
Чем выше номер группы и длина ключа - тем выше криптографическая стойкость соединения.
Данный параметр так же содержит в себе выпадающий список, состоящий из следующих значений:
- **group 2**;
- **group 5**;
- **group 14**;
- **group 15**;
- **group 16**;
- **group 19**;
- **group 20**;
- **group 21**.
#### IKE Mode (только для IKEv1)
Параметр IKE Mode **определяет способ установления соединения** на этапе 1 при использовании протокола IKEv1.
Доступны два режима: **Main** и **Aggressive**. Они отличаются количеством сообщений при установке соединения и уровнем защиты идентификационных данных.
- Main Mode - является стандартным и более безопасным режимом работы IKEv1.
- Aggressive Mode - упрощённый и ускоренный режим установления соединения. (более низкий уровень защиты данных)
#### Время жизни
Определяет, как долго действуют согласованные ключи в рамках первой фазы.
- Рекомендуемое значение: 86400 секунд (24 часа);
- После истечения времени выполняется повторная генерация ключей.
## Этап 2 - передача данных
Этап 2 IPsec-соединения отвечает за шифрование и защиту пользовательского трафика после того, как защищённый канал был установлен на этапе 1. Этот этап регулирует передачу данных между сторонами через безопасный туннель, который обеспечивает конфиденциальность и целостность данных.
#### Hash
Аналогично этапу 1, параметр Hash используется **для защиты целостности передаваемых данных**. Он обеспечивает проверку, что данные не были изменены при передаче.
Содержит элементы для выбора:
- **SHA 1**;
- **SHA 2 - 256**;
- **SHA 2 - 384**;
- **SHA 2 - 512**.
#### Шифрование
Этап 2 отвечает за **шифрование пользовательского трафика**. Это важнейший параметр, который защищает данные при их передаче по сети.
Доступны следующие алгоритмы:
- **AES 128**;
- **AES 256**;
- **AES GCM 128**;
- **AES GCM 192**;
- **AES GCM 256**.
#### PFS
**Enable perfect forward secrecy (PFS)** - параметр, активирующий генерацию нового ключа на этапе 2. При включенном PFS группа DH будет такая же как и на 1-й фазе. Данный параметр представлен в виде чекбокса.
При его включении:
- На этапе 2 выполняется дополнительный обмен ключами Diffie-Hellman;
- Для каждой новой IPsec-сессии формируется новый независимый криптографический секрет;
- Ключи шифрования пользовательского трафика не зависят от ключей этапа 1.
#### DH Group - группа Деффи Хеллмана
Группа DH **определяет параметры обмена ключами** между сторонами. Чем выше номер группы, тем выше криптографическая стойкость и безопасность обмена.
Данный параметр так же содержит в себе выпадающий список, состоящий из следующих значений:
- **group 2**;
- **group 5**;
- **group 14**;
- **group 15**;
- **group 16**;
- **group 19**;
- **group 20**;
- **group 21**.
#### Время жизни (в секундах)
Определяет, как долго действуют согласованные ключи в рамках второй фазы.
- Рекомендуемое значение: 3600 секунд (1 час).
- После истечения времени выполняется повторная генерация ключей.
#### Префиксы локальной сети заказчика
Этот параметр определяет, какие сети на стороне заказчика будут маршрутизироваться через IPsec-туннель.
Префиксы задаются в формате `192.168.1.0/24`, который позволяет указать диапазон IP-адресов.
-25
View File
@@ -1,25 +0,0 @@
---
section_links:
- title: Назначение сервиса
link: /PaaS/PostgreSQL/about.md
description: Конфигурации и возможности сервиса
- title: Параметры кластера PostgreSQL
link: /PaaS/PostgreSQL/cluster-parameter.md
description: Технические параметры кластера PostgreSQL
- title: Схема подключения
link: /PaaS/PostgreSQL/connection.md
description: Общая схема подключения к Cloud PostgreSQL
- title: Возможности пользователя
link: /PaaS/PostgreSQL/user-capabilities.md
description: Возможности пользователя при создании сервиса
- title: Веб-интерфейс Grafana
link: /PaaS/PostgreSQL/grafana.md
description: Инструкция по работе с Grafana
- title: Веб-интерфейс PgAdmin
link: /PaaS/PostgreSQL/pgadmin.md
description: Инструкция по работе с PgAdmin
---
# Cloud PostgreSQL
В данном разделе представлена документация по управляемому сервису **Cloud PostgreSQL** платформы Beeline Cloud.
-87
View File
@@ -1,87 +0,0 @@
# Cloud PostgreSQL
## Назначение сервиса
**Cloud PostgreSQL** - это управляемый облачный сервис реляционной базы данных PostgreSQL. Он позволяет развернуть и использовать отказоустойчивый кластер базы данных без необходимости самостоятельно настраивать серверы, репликацию и механизмы отказоустойчивости.
PostgreSQL - это современная система управления базами данных, которая поддерживает стандарт SQL и используется для хранения и обработки данных приложений.
В **Cloud PostgreSQL** все основные операции по управлению кластером выполняются автоматически.
Сервис самостоятельно:
- управляет ролями серверов базы данных (основной сервер и реплики);
- отслеживает состояние узлов;
- автоматически переключает основной сервер при сбоях.
Для обеспечения стабильной работы сервиса используется несколько инфраструктурных компонентов:
- **Patroni** - управляет кластером PostgreSQL и автоматическим переключением при отказах;
- **etcd** - хранит состояние кластера и обеспечивает согласованность работы узлов;
- **HAProxy** - обеспечивает единую точку подключения и распределяет клиентские подключения между узлами.
Подключение к базе данных выполняется через прокси-узлы сервиса. Пользователю не требуется подключаться к отдельным серверам кластера — все операции производятся через единую точку доступа.
Для управления базами данных и пользователями доступен [web-интерфейс **pgAdmin**](./pgadmin.md), позволяющий выполнять администрирование непосредственно через браузер.
## Конфигурации кластера
Сервис **Cloud PostgreSQL** поддерживает версии СУБД с 13 по 17 включительно.
Кластер предоставляется в архитектуре Primary–Standby, которая обеспечивает:
- синхронную репликацию данных;
- повышенную отказоустойчивость.
В рамках данной конфигурации создаётся кластер из виртуальных серверов, включающий:
- **Primary** (основной сервер) — обязательный узел, на котором выполняются операции записи данных;
- **Replica** (реплики) — дополнительные узлы (от 0 до 4), создаваемые по желанию пользователя.
Реплики являются полноценными участниками кластера PostgreSQL и могут использоваться для выполнения запросов, не изменяющих данные (например, SELECT).
В многоузловой конфигурации серверы кластера размещаются на разных физических хостах гипервизора, что повышает устойчивость сервиса к отказам оборудования.
## Режимы репликации
По умолчанию фиксация изменений выполняется в **синхронном режиме**. Это означает, что операция записи считается завершённой только после того, как данные будут зафиксированы как на основном сервере, так и на одной из реплик.
Если в кластере настроено несколько реплик, синхронный режим применяется только к одной из них. Остальные реплики работают в асинхронном режиме — изменения передаются на них без ожидания подтверждения.
При необходимости режим репликации может быть изменён на полностью **асинхронный**. В этом случае изменения сначала фиксируются на основном сервере, а затем передаются на реплики с задержкой.
## Доступ к серверам и оптимизация соединений
Прямой доступ к серверам кластера (например, по протоколу SSH) не предоставляется. Пользователь взаимодействует с базой данных исключительно через точки подключения, предоставленные сервисом.
На каждом узле кластера установлен пулер соединений **PgBouncer**, который может использоваться для ускорения работы приложений за счёт оптимизации подключений к базе данных.
::: warning Примечание
Использование PgBouncer не является обязательным - подключение возможно как напрямую к PostgreSQL, так и через пулер, а также одновременно обоими способами.
:::
## Возможности сервиса
**Cloud PostgreSQL** предоставляет набор возможностей, позволяющих использовать PostgreSQL в облаке без необходимости самостоятельного администрирования инфраструктуры.
Сервис обеспечивает:
- автоматическое управление кластером PostgreSQL;
- высокую доступность за счёт репликации и автоматического переключения primary-узла;
- единую точку подключения к базе данных через прокси;
- автоматическое переключение при отказе узлов кластера без вмешательства пользователя;
- web-доступ к управлению базами данных и пользователями через pgAdmin;
- совместимость со стандартными клиентскими инструментами PostgreSQL;
- возможность установки расширений PostgreSQL в базу данных.
## Сценарии использования сервиса
**Cloud PostgreSQL** подходит для использования в системах, где требуется надёжное хранение данных и упрощённое управление инфраструктурой базы данных.
Сервис может применяться в следующих сценариях:
- размещение production-баз данных с высокими требованиями к доступности;
- использование PostgreSQL в микросервисной архитектуре с единой точкой подключения к базе данных;
- хранение критичных данных с минимальным временем простоя при отказах инфраструктуры;
- быстрое развёртывание PostgreSQL-кластера без необходимости ручной настройки репликации и failover;
- администрирование баз данных через веб-интерфейс без прямого доступа к серверам кластера.
-81
View File
@@ -1,81 +0,0 @@
# Описание технических параметров
Данный раздел содержит технические параметры кластера PostgreSQL и порядок их первичной конфигурации.
Настройка указанных параметров выполняется администратором облачного провайдера на этапе развёртывания сервиса. Пользователь не имеет прямого доступа к их самостоятельной установке.
Перед созданием кластера клиент предоставляет перечень требуемых параметров менеджеру. Администратор облачного провайдера выполняет конфигурацию в соответствии с согласованными требованиями.
## Выбор типа и размера дискового хранилища
Производительность базы данных напрямую зависит от скорости, с которой она может читать и записывать данные на диск. При заказе кластера необходимо выбрать тип дискового хранилища, который определит максимальную скорость работы (IOPS) и время отклика.
**IOPS (Input/Output Operations Per Second)** — количество операций чтения или записи, которые диск может выполнить за секунду. Чем выше этот показатель, тем быстрее база данных обрабатывает запросы.
## Доступные типы хранилищ:
| Название | Лимит IOPS |
| -------------- | ------------------ |
| **Fast SAS** | до 2 IOPS на 1 ГБ |
| **SSD** | до 5 IOPS на 1 ГБ |
| **Fast SSD** | до 10 IOPS на 1 ГБ |
| **Ultra NVMe** | до 25 IOPS на 1 ГБ |
::: warning Примечание
После выбора типа диска необходимо указать объем дискового хранилища, который будет выделен под данные кластера PostgreSQL. Минимальный объем - 50 ГБ.
:::
## Конфигурация вычислительных ресурсов
В данном разделе определяются вычислительные мощности кластера: процессорные ресурсы, оперативная память и количество серверов (нод), из которых будет состоять кластер PostgreSQL.
#### Количество нод в кластере
Количество нод определяет отказоустойчивость кластера и возможность распределять запросы на чтение между репликами. Чем больше нод, тем выше надёжность и производительность операций чтения.
Количество нод выбирается в диапазоне **от 1 до 5**.
#### Процессор (CPU)
Процессор — это вычислительная мощность, выделяемая каждой ноде кластера. Количество vCPU определяет, насколько быстро база данных сможет:
- обрабатывать запросы;
- выполнять сложные операции (сортировки, объединения таблиц);
- обслуживать одновременные подключения.
Доступный диапазон: **от 2 до 24 vCPU** на ноду.
#### Оперативная память (RAM)
Оперативная память — один из ключевых ресурсов для производительности базы данных. Данные, помещающиеся в RAM, обрабатываются максимально быстро, без обращения к диску.
Доступный диапазон: **от 4 до 768 ГБ RAM** на ноду.
#### Доступ в интернет
При заказе сервиса можно выбрать пропускную способность канала связи, через который будет осуществляться доступ к кластеру PostgreSQL из сети интернет.
**Доступные варианты скорости:**
- 50 Мбит/с;
- 100 Мбит/с;
- 200 Мбит/с;
- 300 Мбит/с;
- 400 Мбит/с;
- 500 Мбит/с;
- 1000 Мбит/с (1 Гбит/с).
::: warning Примечание
Для выбранного канала предоставляется статический белый IP-адрес.
:::
## Сетевой доступ к кластеру
Для организации защищенного подключения к кластеру Kafka доступны стандартные механизмы, используемые во всех сервисах платформы:
- **IPsec-подключение** - организация защищенного туннеля между инфраструктурой и кластером PostgreSQL. Подробнее см. [раздел IPsec](../IPSEC.md);
- **Interconnection** - прямое сетевое соединение между сервисами внутри платформы без выхода в интернет. Подробнее см. раздел Interconnection.
Выбор конкретного способа подключения зависит от архитектуры приложений и требований к безопасности.
-88
View File
@@ -1,88 +0,0 @@
# Общая схема подключения
Подключение к кластеру **Cloud PostgreSQL** осуществляется через прокси-сервер. Клиентские подключения принимаются прокси, который маршрутизирует трафик к соответствующим узлам кластера (master или replica) в зависимости от выбранного порта.
Прокси является единой точкой входа для всех клиентских подключений и принимает входящие соединения от приложений, административных инструментов и пользователей.
В зависимости от выбранного порта прокси автоматически направляет трафик:
- **на активный primary-узел** - для операций чтения и записи
- **на реплики** - для операций только чтения
::: warning Примечание
Прямое подключение к отдельным узлам базы данных **не используется и не предоставляется**. Взаимодействие с кластером всегда выполняется **через прокси-сервер**.
:::
## Подключение к базе данных
Для подключения к базе данных необходимо использовать IP-адрес прокси-сервера, который предоставляется после заказа услуги.
Этот IP-адрес является единой точкой входа для работы с кластером PostgreSQL. Все подключения к базе данных - как из приложений, так и из клиентских инструментов - выполняются через него.
Использование других IP-адресов или попытка прямого подключения к отдельным узлам кластера не предусмотрены.
## Доступные порты
Для разных типов нагрузки используются разные порты:
|Порт |Назначение |
|------|-----------------------------------------|
|5432 |Primary (чтение и запись) |
|15432 |Replica (только чтение) |
|6432 |Primary через PgBouncer (чтение и запись)|
|16432 |Replica через PgBouncer (только чтение) |
#### Особенности работы портов
- Порты **для чтения и записи** (5432, 6432) всегда направляют трафик на активный primary-узел. При смене primary переключение происходит автоматически;
- Порты **только для чтения** (15432, 16432) направляют трафик на активные реплики. Если реплик несколько, нагрузка распределяется между ними по принципу round-robin;
- Если в кластере **отсутствуют реплики**, порты для чтения не используются - подключение по ним не устанавливается.
#### Рекомендации по выбору порта
- Для OLTP-нагрузки и большого количества соединений рекомендуется использовать **порты PgBouncer (6432 или 16432)**;
- Для операций записи используйте **master-порты (5432 или 6432)**;
- Для read-only запросов можно использовать **replica-порты (15432 или 16432)**.
## Доступ к pgAdmin
Для администрирования базы данных используется [web-интерфейс pgAdmin](./pgadmin.md).
Доступ осуществляется по DNS-имени, которое нужно прописать локально в инфраструктуре откуда будет происходить доступ к web-интерфейсу сервиса:
`10.X.X.4 <domain>.cloud-pg.dfcloud.ru`
После добавления записи pgAdmin будет доступен по адресу:
`https://<domain>.cloud-pg.dfcloud.ru`
Авторизация выполняется с использованием учётных данных, предоставленных вместе с доступом к сервису.
::: warning Примечание
- подключение к базе данных возможно только через указанный прокси-IP;
- в интерфейсе pgAdmin уже добавлен сервер базы данных, созданный для данной инсталляции. Для подключения требуется ввести пароль от учётной записи базы данных;
- pgAdmin предназначен для администрирования и не рекомендуется для выполнения тяжёлых или длительных запросов в production-среде.
:::
## Примеры подключения к PostgreSQL
Подключение к primary:
`psql -h 10.X.X.4 -p 5432 -U <username> -d <database>`
Подключение через PgBouncer:
`psql -h 10.X.X.4 -p 6432 -U <username> -d <database>`
#### Подключение через DBeaver / DataGrip
При создании подключения укажите:
- Host: 10.X.X.4;
- Port: 5432 или 6432;
- Database: `<database>`;
- User / Password: согласно выданным доступам;
- Тип подключения: PostgreSQL.
#### Пример строки подключения
Primary:
`postgresql://<username>:<password>@10.X.X.4:5432/<database>`
Через PgBouncer:
`postgresql://<username>:<password>@10.X.X.4:6432/<database>`
-104
View File
@@ -1,104 +0,0 @@
# Grafana
## Инструкция по работе с метриками
Доступ к метрикам кластера предоставляется после запроса соответствующих прав. После получения доступа можно перейти в систему мониторинга по ссылке: https://metrics.dfcloud.ru. После перехода по ссылке будет представлена главная страница Grafana.
Для просмотра метрик кластера PostgreSQL выполните следующие шаги:
1. В левом боковом меню нажмите **Dashboard**;
2. В списке доступных дашбордов выберите **папку Cloud PostgreSQL**;
3. Внутри папки выберите **дашборд Cloud PostgreSQL** — в нём отображаются все метрики кластера.
## Управление отображаемыми данными
В верхней части дашборда доступны селекторы для настройки отображения:
- **InstallationID** - выбор одного опеределенного кластера;
- **Cluster node name** - выбор конкретного нода кластера, в котором значения графиков меняются в зависимости от выбранного хоста (селектор влияет на все графики, кроме блока Patroni);
- **Database** - выбор базы данных, по которым отображаются метрики;
- **Lock table** - выбор типа блокировки для отображения (применим не для всех графиков).
## Метрики PostgreSQL
Метрики отображают ключевые параметры конфигурации и текущие показатели работы экземпляра PostgreSQL.
| Наименование метрики | Описание метрики |
| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------|
| **Version** | Показывает текущую версию PostgreSQL, установленную на кластере. |
| **Current fetch data** | Объем данных, извлеченных из базы за текущий период (операции чтения). |
| **Current insert data** | Объем данных, вставленных в базу (операции записи новых данных). |
| **Current update data** | Объем данных, обновленных в базе. |
| **Seq Page Cost** | Стоимость последовательного чтения страницы данных. Влияет на выбор плана запроса: чем выше значение, тем реже оптимизатор будет выбирать последовательное сканирование таблиц. |
| **Random Page Cost** | Стоимость чтения случайной страницы данных. Низкое значение говорит о том, что в системе используются быстрые диски, и оптимизатор будет чаще выбирать доступ по индексам. |
| **Max Connections** | Максимальное количество одновременных подключений к базе данных, разрешенное на сервере. |
| **Shared Buffers** | Объем оперативной памяти, выделенный под кэш данных PostgreSQL. Здесь хранятся часто используемые данные для ускорения доступа к ним. |
| **Effective Cache** | Предполагаемый размер системного кэша файлов. Используется оптимизатором для оценки вероятности нахождения данных в кэше операционной системы. |
| **Maintenance Work Mem** | Объем памяти для выполнения операций обслуживания. |
| **Work Mem** | Объем памяти, выделяемый для внутренних сортировок и хеш-таблиц при выполнении запросов (на каждую операцию). |
| **Max WAL Size** | Максимальный размер журнала предзаписи, после достижения которого запускается процесс контрольной точки (checkpoint). |
| **Max Worker Processes** | Максимальное количество фоновых процессов, которые могут быть запущены в системе. |
| **Max Parallel Workers** | Максимальное количество параллельных процессов, которые могут быть задействованы при выполнении одного запроса. |
## Метрики Database Stats
Метрики отображают текущую нагрузку и состояние баз данных в кластере PostgreSQL. Данные метрики позволяют:
- оценить эффективность работы баз данных;
- отследить скачки нагрузки;
- своевременно среагировать на потенциальные проблемы до того, как они повлияют на работу приложений.
| Наименование | Описание |
|---------------------------| -------------------|
| **Average CPU Usage** | Показывает время, затраченное на выполнение пользовательских и системных задач, а также, насколько интенсивно используются вычислительные ресурсы сервера базы данных. |
| **Average Memory Usage** | Средний объем оперативной памяти, используемой процессами PostgreSQL за 5-минутные интервалы. Показывает, сколько памяти потребляет база данных в процессе работы. |
| **Open File Descriptors** | Количество открытых файловых дескрипторов процессами PostgreSQL. Метрика показывает среднее (Mean), последнее (Last), максимальное (Max) и минимальное (Min) значение за интервал. |
| **Active sessions** | Показывает, сколько в данный момент выполняется запросов к PostgreSQL. Метрика показывает среднее (Mean), последнее (Last), максимальное (Max) значение. |
| **Transcations** | Количество транзакций в базах данных кластера. Метрика разделена на два типа операций: commits (успешно завершенные транзакции) и rollbacks (откаченные транзакции). |
| **Update data** | Объем данных, обновленных в базах данных кластера. Показывает, сколько данных было изменено в результате выполнения операций UPDATE. |
| **Fetch data (SELECT)** | Объем данных, извлеченных из базы с помощью запросов SELECT. Показывает, сколько данных было считано из базы в результате операций чтения. |
| **Insert data** | Объем данных, вставленных в базы данных кластера. Показывает, сколько данных было добавлено в результате выполнения операций INSERT. |
| **Lock tables** | Количество блокировок таблиц в базах данных кластера. Показывает, сколько раз таблицы были заблокированы для выполнения операций.<br>AccessShareLock - это блокировка, которая возникает, когда кто-то читает данные из таблицы (делает SELECT). Данная блокировка не мешает операциям чтения, но не дает удалить в этот момент таблицу или изменить ее структуру. |
| **Return data** | Объем данных, возвращаемых клиенту в результате выполнения запросов. Показывает, сколько данных было отправлено обратно клиенту после обработки запросов в базе. |
| **Idle sessions** | Количество бездействующих сессий подключения к базе данных. Показывает, сколько открытых подключений в данный момент не выполняют никаких запросов и просто ждут. |
| **Delete data** | Объем данных, удаленных из базы данных в результате выполнения операций DELETE. Показывает, сколько данных было удалено из таблиц. |
| **Cache Hit Rate** | Показывает процент запросов к данным, которые были удовлетворены из кэша (оперативной памяти), без обращения к диску. Показывает, насколько эффективно используется кэш PostgreSQL. |
| **Buffers (bgwriter)** | Метрика, показывающая активность фонового процесса записи, который занимается синхронизацией данных из оперативной памяти на диск. |
| **Conflicts/Deadlocks** | Метрика, отслеживающая две проблемы при работе с базой данных: конфликты восстановления и взаимоблокировки. |
| **Temp File (Bytes)** | Объем данных, записанных во временные файлы при выполнении запросов в базах данных. PostgreSQL создает временные файлы на диске, когда для выполнения запроса не хватает оперативной памяти. |
| **Checkpoint Stats** | Метрика, показывающая время, затрачиваемое на выполнение checkpoints в PostgreSQL, где: <br>- **write_time** - время, затраченное на запись данных на диск во время checkpoint (сколько миллисекунд ушло на запись файлов).<br>- **sync_time** - время, затраченное на синхронизацию файлов с диском (чтобы данные гарантированно сохранились). |
## Метрики Patroni
Метрик отображают состояние и конфигурацию кластера PostgreSQL под управлением Patroni. Эти метрики позволяют контролировать отказоустойчивость кластера, отслеживать переключения мастера и убеждаться, что репликация работает штатно.
| Наименование | Описание |
|------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------|
| **Patroni Leader** | Метрика, которая показывает, какая нода в кластере PostgreSQL в данный момент является master-сервером, принимающим запросы на запись. |
| **Patroni Replica** | Метрика, которая показывает, какие узлы кластера PostgreSQL в данный момент выполняют роль реплики. |
| **Sync Standby** | Метрика, которая показывает, какая из реплик в кластере PostgreSQL назначена синхронной. |
| **PostgreSQL WAL Replay** | Метрика, которая показывает, включена ли на узлах кластера синхронизация данных через WAL. |
| **PostgreSQL Pending Restart** | Метрика, которая показывает, требуется ли перезагрузка PostgreSQL на узлах кластера после изменения конфигурационных параметров. |
| **Patroni Primary Node** | Метрика, которая показывает, какой узел в кластере PostgreSQL в данный момент является основным и принимает запросы на запись. |
| **Patroni Secondary Nodes** | Метрика, которая показывает, какие узлы кластера PostgreSQL в определенные моменты времени выполняли роль реплик. |
| **Replicas Received WAL Location** | Метрика, показывающая объем журналов предзаписи (WAL), полученных каждой репликой кластера. |
| **Primary WAL Location** | Метрика, показывающая объем журналов предзаписи (WAL), на основном сервере кластера PostgreSQL. |
| **Replicas Replayed WAL Location** | Метрика, показывающая объем журналов предзаписи (WAL), которые были не просто получены, а уже применены на репликах кластера. |
| **WAL Replay Paused** | Метрика, которая отслеживает, не приостановлен ли процесс применения WAL-журналов на узлах кластера. Если передача или применение WAL-файлов останавливается, на графике происходит скачок. |
## Метрики Hosts
Блок Hosts управляется селектором **Cluster node name**. Метрики отображают состояние и ресурсы серверов, на которых развернут кластер PostgreSQL. Данные метрики позволяют оценить, хватает ли серверу ресурсов для текущей нагрузки, и своевременно обнаружить проблемы с производительностью или нехваткой места на дисках.
| Наименование | Описание |
| -------------------------------|-------------------------------------------------------------------------------------------------------------------------------|
| **CPU Busy** | Метрика, показывающая общую загруженность всех процессорных ядер на сервере, где работает PostgreSQL. |
| **RAM Used** | Метрика, показывающая процент оперативной памяти, который занят на сервере всеми процессами. |
| **CPU Cores** | Метрика, показывающая общее количество процессорных ядер, доступных на сервере, где работает PostgreSQL. |
| **RAM Total** | Метрика, показывающая общий объем оперативной памяти, установленный на сервере. |
| **DB Disk Total** | Метрика, показывающая общий объем дискового пространства, выделенного для хранения данных базы данных PostgreSQL на сервере. |
| **CPU Basic** | Метрика, которая показывает детальную разбивку загрузки процессора по типам выполняемых задач. Она позволяет увидеть, на что именно тратится процессорное время на сервере. |
| **Memory Basic** | Метрика, которая показывает детальную разбивку использования оперативной памяти на сервере, а также информацию о SWAP. |
| **Disk IOps** | Метрика, показывающая количество операций чтения и записи, выполняемых на диске сервера в секунду. |
| **Disk Space Used Basic** | Метрика, показывающая процент занятого дискового пространства на всех подключенных файловых системах сервера. |
| **Disk R/W Data** | Показывает объем данных в байтах, читаемых с диска и записываемых на диск в секунду. |
| **Filesystem space available** | Метрика, показывающая объем свободного дискового пространства на файловой системе сервера. |
-67
View File
@@ -1,67 +0,0 @@
# PgAdmin
После предоставления доступа к сервису **Cloud PostgreSQL** пользователь получает возможность управлять базами данных через веб-интерфейс **pgAdmin**. Ниже приведена инструкция по входу в систему и выполнению основных операций.
## Вход в pgAdmin
1. Откройте веб-браузер и перейдите по адресу, предоставленному для доступа к pgAdmin;
2. На странице авторизации введите **логин и пароль от pgAdmin**;
> Учетные данные направляются пользователю на электронную почту при предоставлении доступа.
3. После входа в систему в левой панели навигации откройте раздел **Servers**;
4. Выберите предварительно настроенный сервер с названием **PostgreSQL**;
5. В открывшемся окне введите пароль;
> Важно: на данном этапе необходимо указать **пароль учетной записи базы данных**, а не пароль от pgAdmin.
6. Нажмите **ОК**.
После успешной аутентификации станет доступен веб-интерфейс СУБД PostgreSQL.
## Реплики и параметры конфигураций
pgAdmin позволяет осуществлять мониторинг реплик, входящих в состав кластера. Чтобы просмотреть список реплик необходимо открыть раздел **Replica nodes** в панели навигации.
### Просмотр состояния репликаций
Чтобы проверить состояние репликации:
1. Выберите нужную реплику в разделе **Replica nodes**;
2. Перейдите в подраздел **Replication**;
3. Откройте пункт **Replication stats**;
4. Разверните раздел **Подробности** - в нем отображаются все параметры и текущее состояние репликации.
Вкладка **Replication** позволяет определить, выполняется ли передача данных на дополнительные узлы кластера.
### Просмотр конфигураций реплики
Чтобы просмотреть **параметры конфигурации PostgreSQL**, применённые к конкретной реплике, перейдите в раздел **Конфигурация**, расположенный в блоке **Replica nodes**.
Раздел **Конфигурация** содержит следующие параметры:
- **Имя** - наименование конфигурационного параметра;
- **Категория** - логическая группа параметра;
- **Значение** - текущее установленное значение;
- **Единицы** - единицы измерения (если применимо);
- **Описание** - краткое пояснение назначения параметра.
> Вкладка **Конфигурация** предназначена для просмотра текущих настроек реплики.
## Базы данных
### Просмотр существующих баз данных:
Чтобы просмотреть существующие базы данных, откройте раздел Базы данных в левой панели навигации. В этом разделе отображается перечень всех созданных баз.
### Создание новой базы данных:
1. Щелкните правой кнопкой мыши по разделу **Базы данных**;
2. В контекстном меню выберите **Создать**, затем - **База данных**;
3. Заполните обязательные поля в открывшейся форме;
4. Нажмите **Сохранить**.
## Роли входа / группы
В разделе **Роли входа/группы** отображается список пользователей (ролей), имеющих доступ к базам данных кластера.
### Создание новой роли:
1. Щелкните правой кнопкой мыши по разделу **Роли входа/группы**;
2. Выберите **Создать**, затем - **Роль входа/группы**;
3. Заполните необходимые параметры в форме создания роли;
4. Нажмите **Сохранить**.
-119
View File
@@ -1,119 +0,0 @@
# Возможности пользователя
Данный раздел описывает права, которые предоставляются пользователю PostgreSQL при создании сервиса **Cloud PostgreSQL**, а также перечень административных операций, доступных ему для самостоятельного выполнения.
При развертывании сервиса автоматически создаётся пользователь базы данных с преднастроенными атрибутами и привилегиями. Эти права позволяют заказчику самостоятельно управлять своими базами данных, ролями и пользователями в рамках созданного экземпляра PostgreSQL.
## Общая информация о пользователе
При инициализации сервиса автоматически создаётся пользователь:
```nginx
client
```
Данный пользователь является основной учётной записью для административной работы в рамках предоставленного экземпляра PostgreSQL.
Он предназначен для самостоятельного управления в пределах выданных привилегий:
- базами данных;
- ролями;
- правами доступа.
## Выданные права и ограничения
Пользователю `client` назначается набор атрибутов и привилегий, позволяющих выполнять административные операции в рамках своего экземпляра базы данных.
#### Атрибуты роли
Пользователь создаётся со следующими атрибутами:
- `CREATEDB` — разрешено создание и удаление баз данных;
- `CREATEROLE` — разрешено создание ролей и пользователей, а также управление их.
Атрибут `SUPERUSER` пользователю не предоставляется. Соответственно, доступ к системным операциям уровня кластера и настройкам сервера отсутствует.
#### Права на системную базу postgres:
К стандартной базе данных `postgres` пользователю предоставлено только право подключения — `CONNECT`
**Иные привилегии (создание объектов, изменение схем и т.д.) на данную базу не выдаются.**
## Мониторинг и системные представления
Для выполнения базовых задач мониторинга пользователю дополнительно предоставлены:
- членство в роли `pg_monitor`;
- право `SELECT` на системное представление:
```sql
pg_catalog.pg_stat_replication
```
Доступ к системной информации предоставляется исключительно **в режиме чтения**. Изменение системных представлений и параметров сервера недоступно.
## Изменение пароля
После первого подключения к базе данных пользователь `client` обязан выполнить изменения пароля.
Изменить пароля можно:
- в открытом виде (с передачей нового значения пароля);
- с указанием заранее сгенерированного хэша.
На сервере используется алгоритм шифрования паролей:
```
scram-sha-256
```
При использовании **SCRAM** применяется следующий формат хэша:
```
$<iterations>:<salt>$<storedkey>:<serverkey>
```
| Операция | Описание | Команда SQL |
|----------|----------|-------------|
|Смена пароля в открытом виде | Для смены пароля в открытом виде | ```ALTER USER client WITH PASSWORD 'new_strong_password';``` |
|Смена пароля с указанием хэша | Рекомендуется использовать сложный уникальный пароль, соответствующий требованиям информационной безопасности, и хранить его в защищённом хранилище | ```ALTER USER client WITH ENCRYPTED PASSWORD '$4096:...';``` |
|Создание новой базы данных | Для создания базы данных | ```CREATE DATABASE app_db;``` |
|Создание базы данных с указанием владельца | Пользователь, указанный как владелец, будет иметь полный контроль над базой данных, включая права на её удаление и изменение. По умолчанию владельцем создаваемой базы данных является пользователь, который её создает | ```CREATE DATABASE app_db OWNER client;``` |
## Создание пользователей и ролей
Пользователь `client` имеет право создавать новые роли и пользователей для приложений, а также управлять их правами доступа.
| Операция | Описание | Команда SQL |
|----------|----------|-------------|
|Создание роли без логина | Для входа в базу данных (например, для организации прав доступа) | ```CREATE ROLE app_role; ```|
|Создание пользователя с паролем | Для создания пользователя с паролем. После выполнения этой команды новый пользователь `app_user` будет иметь возможность входа в базу данных, используя указанный пароль. | ```CREATE USER app_user WITH PASSWORD 'app_password';``` |
|Назначение роли пользователю | Для назначения роли пользователю. Данная команда позволяет управлять правами пользователя в рамках определённой роли. После выполнения этой команды пользователь `app_user` станет членом роли `app_role`, и будет наследовать все права, связанные с этой ролью. | ```GRANT app_role TO app_user; ``` |
## Управление правами доступа
После создания пользователей и ролей необходимо назначить им соответствующие права доступа.
| Операция | Описание | Команда SQL |
|----------|----------|-------------|
|Передача владельца базы данных | Для передачи прав владения базой данных другому пользователю. После выполнения этой команды база данных `app_db` будет принадлежать пользователю `app_user`, и он будет иметь полный контроль над ней.| ```ALTER DATABASE app_db OWNER TO app_user;``` |
|Выдача прав на подключение к базе данных | Для предоставления прав к подключению к базе данных. После выполнения этой команды пользователь может `app_user` подключаться к базе данных `app_db`. | ```GRANT CONNECT ON DATABASE app_db TO app_user;```|
|Предоставление прав на схему public | Для предоставления прав на использование схемы `public`. После выполнения этой команды пользователь `app_user` может использовать объекты в схеме `public`, а также создавать новые объекты внутри неё. | ```GRANT USAGE, CREATE ON SCHEMA public TO app_user;```|
|Предоставление прав на существующие таблицы | Для предоставления доступа пользователю к существующим таблицам в схеме `public`. После выполнения этой команды пользователь `app_user` может выполнять операции чтения, вставки, обновления и удаления данных в существующих таблицах схемы `public`.| ```GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO app_user;``` |
|Предоставление прав на будущие таблицы | Если необходимо автоматически предоставить пользователю права на новые таблицы, создаваемые в схеме `public`. После выполнения этой команды все будущие таблицы, создаваемые в схеме `public`, будут автоматически иметь права для пользователя `app_user` на чтение, вставку, обновление и удаление данных. | ```ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO app_user;```|
## Мониторинг репликации
Пользователь `client` имеет доступ к системным представлениям для мониторинга состояния репликации в кластере PostgreSQL.
| Операция | Описание | Команда SQL |
|----------|----------|-------------|
|Просмотр состояния репликации | Для просмотра текущего статуса репликации. Этот запрос возвращает информацию о всех репликах, подключённых к основному (primary) серверу. |```SELECT * FROM pg_stat_replication;```|
::: warning Ограничения доступа реплкации
Пользователь `client` имеет доступ к данным в представлении `pg_stat_replication` только в режиме **read-only**. Это означает, что он может просматривать состояние репликации, но не может изменять или вмешиваться в процесс репликации.
:::
-12
View File
@@ -1,12 +0,0 @@
---
section_links:
- title: Cloud PostgreSQL
link: /PaaS/PostgreSQL/PostgreSQL-index.md
description: Обзор сервиса PostgreSQL
- title: IPSEC
link: /PaaS/IPSEC.md
description: Параметры конфигурации IPSEC
---
# Начало работы в Cloud PostgreSQL
@@ -7,8 +7,8 @@ section_links:
link: /compute/compute-how-to/compute-connect-inside.md
description: Подключиться к виртуальной машине по SSH с помощью ключевой пары по внутреннему IP-адресу через джамп-хост
- title: Подключение по SSH по логину и паролю
link: /compute/compute-how-to/compute-connect-inside.md
link: /compute/compute-how-to/compute-connect-pwd.md
description: Подключиться к виртуальной машине по SSH с помощью логина и пароля
---
---
# Подключение к ВМ
# Подключение к ВМ
+3 -3
View File
@@ -14,9 +14,9 @@ section_links:
description: Резервирование, назначение IP-адреса виртуальной машине, удаление IP-адресов
- title: Группы размещения
link: /compute/compute-how-to/compute-affinity.md
description: Создание правил размещения виртуальных машин на физических хостах, управление группами размещения
---
description: Создание правил размещения виртуальных машин на физических хостах, управление группами размещения
---
# Виртуальные машины
Сервис **Виртуальные машины** предоставляет пользователям виртуальные машины.
Сервис **Виртуальные машины** предоставляет пользователям виртуальные машины.
+1 -5
View File
@@ -91,7 +91,7 @@ services:
- title: Резервное копирование
description: Создание, хранение и восстановление копии виртуальных машин
icon: refresh
link: /backups/index
link: /backups/index
- title: Базы данных
articles:
- title: ClickHouse
@@ -100,10 +100,6 @@ services:
- title: MongoDB
description: В работе
icon: database
- title: PostgreSQL
description: Объектно-реляционная СУБД с открытым кодом, обеспечивающая высокую надёжность и масштабируемость
icon: database
link: /PaaS/index
- title: Аналитика
articles:
- title: Визуализация и анализ данных
-20
View File
@@ -1,20 +0,0 @@
---
section_links:
- title:
link: /security/Cloud-MDM/about.md
description: Обзор сервиса
- title:
link: /security/Cloud-MDM/payments.md
description: Порядок платежей
- title:
link: /security/Cloud-MDM/characteristics.md
description: Качественные характеристики сервиса
- title:
link: /security/Cloud-MDM/provision.md
description: Сроки и условия предоставления сервиса
---
# Сервис Cloud Mobile Device Management (MDM)
Сервис управляет корпоративными и личными мобильными устройствами сотрудников и интегрируется с инфраструктурой заказчика.
-62
View File
@@ -1,62 +0,0 @@
# Cloud Mobile Device Management (MDM)
## Назначение сервиса
Сервис **Cloud Mobile Device Management (Cloud MDM)** используется для управления корпоративными и личными мобильными устройствами сотрудников. Сервис интегрируется с инфраструктурой заказчика и предоставляется по модели **Self-Service**.
## Возможности сервиса
Сервис позволяет:
- централизованно учитывать и управлять парком мобильных устройств;
- управлять настройками и политиками безопасности мобильных устройств;
- удаленно устанавливать ПО на управляемые мобильные устройства.
## Поддерживаемые операционные системы (ОС)
Сервис управляет мобильными устройствами со следующими ОС:
- Android 4.0 и выше.
- iOS 4.0 и выше.
- Windows Phone 8 и выше.
- Windows 10 Laptops.
- macOS 10.7 и выше.
- tvOS 7.0 и выше.
- Android TV (Android 4.4 и выше).
- Chrome OS 57.0 и выше.
- iPadOS 13.0 и выше.
## Функциональность сервиса
| Функция | Назначение |
| ----------------------------------------------- | ---------------------------------------------------------------------------------------------- |
| Поддержка BYOD | Разграничение личной и корпоративной информации на управляемом устройстве. |
| Геолокация | Определение местоположения мобильного устройства на карте. |
| Контейнеризация приложений | Защита данных, хранимых внутри приложений. |
| Собственный магазин приложений | Распространение приложений из публичных магазинов и приложений, разработанных внутри компании. |
| Автоматическая настройка приложений и устройств | Распространение конфигураций e-mail, VPN, Wi-Fi и сертификатов. |
| Режим "Kiosk" | Ограничение использования приложений, интерфейса ОС и настроек на мобильном устройстве. |
| Дистанционное удаление данных | Удаление данных при утере устройства или увольнении сотрудника. |
::: warning Важно
В зависимости от производителя устройства и версии ОС часть описанной функциональности может быть недоступна.
:::
## Компоненты сервиса
| Компонент | Назначение |
| ---------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Центр управления | Основной компонент сервиса. Заказчик подключается к центру управления через веб-браузер и получает доступ к веб-консоли администратора тенанта. В консоли администратор управляет настройками и задачами. Центр управления хранит информацию о конфигурации сервиса и отправляет команды агентам управления мобильными устройствами. |
| Агент управления мобильными устройствами | ПО, которое устанавливается на управляемые мобильные устройства. Агент выполняет задачи, инициированные из центра управления, и применяет политики и настройки на управляемое устройство. |
| Шлюз безопасности | Промежуточный сервер между агентами управления мобильными устройствами и центром управления. Все сообщения от агентов до центра управления проходят через шлюз. |
| Веб-консоль центра управления | Входит в состав центра управления. Центральная точка управления задачами MDM для администраторов заказчика. В консоли администратор создает и импортирует пользователей, настраивает политики для мобильных устройств, управляет политиками безопасности и т.д. |
| Сервер распространения | Устанавливается на компьютер в инфраструктуре заказчика. Используется для интеграции с Active Directory (AD) и получения информации обо всех компьютерах. Связывается с центром управления. |
::: warning Важно
**Сервер распространения** — дополнительный компонент. Разворачивается, если требуется интеграция AD заказчика с Cloud MDM или расширенное управление устройствами с ОС Windows.
:::
-15
View File
@@ -1,15 +0,0 @@
# Качественные характеристики сервиса
## Режим предоставления сервиса
Сервис **Cloud Mobile Device Management (Cloud MDM)** предоставляется 24/7.
## Зона ответственности Beeline Cloud
Beeline Cloud не отвечает за полное обеспечение защиты от всех возможных угроз информационной безопасности. Сервис основан на ПО стороннего разработчика. Beeline Cloud не гарантирует, что это ПО будет свободно от ошибок, будет работать непрерывно и надежно.
Если в ПО, на базе которого работает сервис, обнаруживается проблема или ошибка, Beeline Cloud заводит инцидент в технической поддержке вендора и содействует в его решении.
## Зона ответственности заказчика
Заказчик использует сервис на собственный риск. Beeline Cloud не несет ответственности за прямые, случайные, особые, косвенные или штрафные убытки, в том числе за утрату данных, прерывание бизнеса или потерю прибыли, возникшие вследствие использования сервиса или невозможности его использования.
@@ -1,3 +0,0 @@
# Архитектура сервиса
![Архитектура сервиса](../../image/MDM/architecture-MDM.png)
@@ -1,26 +0,0 @@
# Зоны ответственности
::: warning Примечание
**«К» — консультирующая сторона**: Beeline Cloud выполняет настройки и изменения на основании инструкций и требований заказчика.
:::
| № | Зоны ответственности | Self-Service |
| --- | ----------------------------------------------------------------------------------------- | ---------------------------- |
| 1 | Поддержка работоспособности виртуальных аплаенсов | Beeline Cloud |
| 2 | Управление системными настройками виртуальных аплаенсов | Beeline Cloud |
| 3 | Установка обновлений центра управления и шлюза безопасности | Beeline Cloud |
| 4 | Обеспечение высокой доступности виртуальных аплаенсов: резервное копирование и мониторинг | Beeline Cloud |
| 5 | Сбор диагностической информации при неисправностях виртуальных аплаенсов | Beeline Cloud «К» |
| 6 | Отправка уведомлений на электронную почту через email relay Beeline Cloud | Beeline Cloud |
| 7 | Создание учетных записей администраторов тенанта центра управления | Beeline Cloud |
| 8 | Добавление и удаление пользователей в тенанте центра управления | Заказчик |
| 9 | Добавление и удаление мобильных устройств в тенанте центра управления | Заказчик |
| 10 | Создание и настройка профилей мобильных устройств | Заказчик |
| 11 | Создание и настройка конфигураций мобильных устройств | Заказчик |
| 12 | Установка и удаление агентов управления на мобильные устройства | Заказчик |
| 13 | Внесение иных изменений в тенанте | Заказчик |
| 14 | Добавление готовых к распространению приложений в тенант центра управления | Beeline Cloud / Заказчик «К» |
| 15 | Заведение кейсов в технической поддержке вендора по функциональности сервиса | Beeline Cloud / Заказчик «К» |
@@ -1,13 +0,0 @@
# Состав сервиса
Сервис **Cloud Mobile Device Management (Cloud MDM)** предоставляется по модели **Self-Service**: заказчик самостоятельно управляет настройками. Beeline Cloud:
- предоставляет лицензии на ПО;
- выдает тенант в центре управления;
- создает учетные записи администраторов тенанта в центре управления;
- выдает доступ к веб-консоли тенанта центра управления согласно списку IP-адресов из опросного листа;
- обеспечивает отказоустойчивость виртуальных аплаенсов;
- проводит резервное копирование и мониторинг виртуальных аплаенсов;
- заводит инциденты у вендора, если нарушается работоспособность виртуальных аплаенсов.
Beeline Cloud тарифицирует [дополнительные работы](work.md) по фактическим трудозатратам.
@@ -1,22 +0,0 @@
---
section_links:
- title:
link: /security/Cloud-MDM/description/architecture.md
description: Архитектура сервиса
- title:
link: /security/Cloud-MDM/description/areas-responsibility.md
description: Зоны ответственности
- title:
link: /security/Cloud-MDM/description/compound.md
description: Состав сервиса
- title:
link: /security/Cloud-MDM/description/monitoring.md
description: Мониторинг работоспособности и отказоустойчивость сервиса
- title:
link: /security/Cloud-MDM/description/work.md
description: Дополнительные работы
---
# Описание сервиса Cloud Mobile Device Management (MDM)
Сервис используется для управления корпоративными и личными мобильными устройствами сотрудников и интегрируется с инфраструктурой заказчика.
@@ -1,16 +0,0 @@
# Мониторинг работоспособности и отказоустойчивость сервиса
## Назначение мониторинга
Мониторинг обнаруживает отклонения и ошибки в работе виртуальных аплаенсов.
## Параметры мониторинга виртуальных аплаенсов
- нагрузка на вычислительные ресурсы виртуальных аплаенсов;
- состояние (up/down) сетевых интерфейсов виртуальных аплаенсов;
- доступность веб-интерфейса центра управления;
- доступность TCP-портов подключения агентов управления мобильными устройствами на аплаенсе **Центр управления**.
## Отказоустойчивость
Отказоустойчивость сервиса **Cloud Mobile Device Management (Cloud MDM)** обеспечивается средствами платформы виртуализации.
@@ -1,15 +0,0 @@
# Дополнительные работы
Дополнительные работы не входят в сервис **Cloud Mobile Device Management (Cloud MDM)** и тарифицируются отдельно по фактическим трудозатратам.
| Наименование работ | Трудозатраты, ч/ч | Квалификация специалиста |
| ------------------------------------------------------------------- | ----------------- | -------------------------------- |
| Создание и настройка профилей мобильных устройств Android и/или iOS | от 4 | Специалист третьего уровня (ДИБ) |
| Настройка политик для режима "Kiosk" для мобильных устройств Android| 8 | Специалист третьего уровня (ДИБ) |
| Другие работы, не входящие в состав сервиса | от 1 | Специалист третьего уровня (ДИБ) |
::: warning Примечание
**Человеко-час (ч/ч)** — это единица учета рабочего времени, соответствующая одному часу фактической работы одного сотрудника.
:::
@@ -1,70 +0,0 @@
# Активация учетной записи
## Режимы Android Enterprise
Сервис **Cloud Mobile Device Management (Cloud MDM)** поддерживает два режима Android Enterprise:
- **BYOD**. Заказчик управляет только рабочим профилем. Личные приложения, файлы, документы и периферия устройства сотрудника находятся вне зоны управления заказчика. **Режим описывается в этой статье.**
- **Device Owner**. [Режим](./device-owner.md) предполагает полное управление корпоративным устройством.
![Режимы Android Enterprise](../../image/MDM/Android-Enterpise-MDM.png)
## Активация учетной записи администратора
Beeline Cloud подключает **Cloud MDM** и создает учетные записи (УЗ) администраторов тенанта. После создания УЗ Beeline Cloud отправляет письмо с информацией об активации УЗ в **Cloud MDM**.
Для активации учетной записи:
1. Ознакомьтесь с информацией в присланном письме.
![Письмо с данными для активации](../../image/MDM/MDM-1.png)
2. Перейдите по ссылке из письма, чтобы задать пароль учетной записи.
3. В открывшейся форме задайте пароль и нажмите **Create password**.
![Форма задания пароля](../../image/MDM/MDM-2.png)
На экране появится сообщение об успешной активации учетной записи.
![Сообщение об успешной активации](../../image/MDM/MDM-3.png)
4. На странице входа введите логин и пароль, затем нажмите **Sign In**.
![Страница входа](../../image/MDM/MDM-4.png)
5. Добавьте второй фактор аутентификации (2FA). Воспользуйтесь приложением **Яндекс Ключ** или **Google Authenticator**. Отсканируйте QR-код, который появится на странице.
![QR-код для 2FA](../../image/MDM/MDM-5.png)
6. Запустите приложение **Яндекс Ключ** и нажмите **+** в левом нижнем углу, чтобы добавить аккаунт 2FA.
![Добавление аккаунта в Яндекс Ключ](../../image/MDM/MDM-6.png)
7. На следующем экране нажмите **Сканировать QR**.
![Кнопка сканирования QR](../../image/MDM/MDM-7.png)
8. Отсканируйте QR-код из шага 5.
9. В приложении выберите добавленный аккаунт 2FA.
![Выбор аккаунта 2FA](../../image/MDM/MDM-8.png)
10. Введите шестизначный код из приложения в поле второго фактора в веб-консоли Cloud MDM (шаг 5).
![Ввод кода 2FA](../../image/MDM/MDM-9.png)
Откроется главная страница администратора Cloud MDM.
::: warning Важно
Активация учетной записи администратора Cloud MDM завершена.
:::
## Видеоинструкция
Посмотрите, как активировать учетную запись и сделать первые шаги в **Cloud MDM**.
[Cloud MDM. Активация учетной записи и первые шаги](https://youtu.be/Ogz5-EJqxBk)
@@ -1,124 +0,0 @@
# Режим Device Owner
## Режимы Android Enterprise
Сервис **Cloud Mobile Device Management (Cloud MDM)** поддерживает два режима Android Enterprise:
- **BYOD**. Заказчик управляет только рабочим профилем. Личные приложения, файлы, документы и периферия устройства сотрудника находятся вне зоны управления заказчика.
- **Device Owner**. Режим предполагает полное управление корпоративным устройством. Описывается в этой статье.
![Режимы Android Enterprise](../../image/MDM/Android-Enterpise-MDM.png)
::: warning Важно
Для регистрации устройства в режиме **Device Owner** из России доступен только вариант с Android Debug Bridge (ADB).
:::
## Настройка режима Device Owner
1. Сбросьте устройство Android к заводским настройкам.
![Сброс к заводским настройкам](../../image/MDM/MDM-10.png)
2. После сброса на экране появится приветствие. Нажмите **Начать**.
![Приветствие после сброса](../../image/MDM/MDM-11.png)
3. На экране настройки мобильной сети нажмите **Пропустить**.
4. На экране подключения к Wi-Fi нажмите **Настроить офлайн**, затем **Далее**.
![Настройка офлайн](../../image/MDM/MDM-12.png)
5. Завершите оставшиеся этапы настройки: установку даты и времени, задание PIN-кода и т. д. Дождитесь появления рабочего стола.
6. Откройте **Настройки**.
![Настройки](../../image/MDM/MDM-13.png)
7. Прокрутите экран вниз и выберите **О телефоне**.
![О телефоне](../../image/MDM/MDM-14.png)
8. Семь раз нажмите на **Номер сборки**. Убедитесь, что появилось сообщение об активации режима разработчика.
![Активация режима разработчика](../../image/MDM/MDM-15.png)
9. Вернитесь в **Настройки** и выберите **Система****Для разработчиков**.
![Для разработчиков](../../image/MDM/MDM-16.png)
10. Включите **Отладка по USB**.
![Отладка по USB](../../image/MDM/MDM-17.png)
11. Подключите устройство USB-кабелем к компьютеру с Windows. Убедитесь, что на экране устройства появилась информация об активной отладке по USB.
![Отладка по USB активна](../../image/MDM/MDM-18.png)
12. На компьютере откройте браузер и перейдите по ссылке. Нажмите **Windows** и скачайте архив `makedeviceowner.zip`.
13. Распакуйте архив и запустите файл `makedeviceowner.bat`.
14. На экране устройства Android появится запрос на отладку по USB. Нажмите **Разрешить**.
![Запрос на отладку по USB](../../image/MDM/MDM-19.png)
15. Снова запустите `makedeviceowner.bat`. Дождитесь появления надписи `Performing Streamed Install` и сообщения `Success` в командной строке.
![Сообщение Success](../../image/MDM/MDM-20.png)
16. На устройстве Android убедитесь, что в списке установленных приложений появилось приложение **ME MDM**.
![Приложение ME MDM установлено](../../image/MDM/MDM-21.png)
17. Отсоедините кабель USB и подключитесь к Wi-Fi с выходом в интернет.
18. В веб-консоли администратора **Cloud MDM** перейдите в **Управление мобильными устройствами****Регистрация****Android****Регистрация маркера EMM** и нажмите **Create Template**.
![Регистрация маркера EMM](../../image/MDM/MDM-22.png)
19. Задайте имя шаблона, в поле **Назначить пользователей** выберите **Вручную** и нажмите **Сохранить**.
![Создание шаблона](../../image/MDM/MDM-23.png)
20. Справа на странице **Управление мобильными устройствами****Регистрация****Android****Регистрация маркера EMM** отобразится QR-код.
21. На устройстве Android запустите **ME MDM** и отсканируйте QR-код из веб-консоли администратора **Cloud MDM**.
22. В приложении ME MDM появится сообщение об успешной регистрации устройства. Нажмите **Готово** в правом нижнем углу.
23. В веб-консоли администратора **Cloud MDM** перейдите в **Управление мобильными устройствами****Регистрация****Устройства****Промежуточные** и нажмите **Назначить пользователя**.
![Назначение пользователя](../../image/MDM/MDM-24.png)
24. Выберите пользователя для добавляемого устройства и нажмите **Назначить**.
::: warning Важно
Если пользователи еще не созданы, добавьте их в **Управление мобильными устройствами****Регистрация****Пользователи****Добавить пользователей**.
:::
1. Перейдите в **Управление мобильными устройствами****Регистрация****Устройства** и убедитесь, что устройство успешно добавлено в **Cloud MDM**.
2. Перейдите в **Управление мобильными устройствами****Инвентаризация****Устройства** и нажмите на имя устройства.
![Инвентаризация устройств](../../image/MDM/MDM-25.png)
3. Убедитесь, что в поле **Тип управления** указано **Полное управление устройством (владелец устройства)**. Устройство Android зарегистрировано в Cloud MDM в режиме Device Owner.
![Тип управления — Device Owner](../../image/MDM/MDM-26.png)
::: warning Важно
Устройство Android успешно зарегистрировано в **Cloud MDM** в режиме **Device Owner**.
:::
## Видеоинструкция
Посмотрите, как добавить устройство с Android в **Cloud MDM**.
[Cloud MDM. Как добавить устройство Android](https://youtu.be/TXh05dwTdaI)
@@ -1,15 +0,0 @@
---
section_links:
- title:
link: /security/Cloud-MDM/instructions/instructions.md
description: Инструкции для работы с сервисом
- title:
link: /security/Cloud-MDM/instructions/activation.md
description: Активация учетной записи
- title:
link: /security/Cloud-MDM/instructions/device-owner.md
description: Режим Device Owner
---
# Инструкции для работы с сервисом Cloud MDM
@@ -1,25 +0,0 @@
# Инструкции
## Видеоинструкции
- [Активация учетной записи администратора Cloud MDM и настройка 2FA](https://kinescope.io/9mw6JzWQTz9eZceG5CBvaY)
- [Регистрация устройства Windows](https://kinescope.io/aHiAf7BBwrQjWcRLV7MQ1k)
- [Регистрация устройства Android в режиме BYOD](https://kinescope.io/vCTDpdxLZdm18goaXbMUwo)
- [Настройка QR-кода для регистрации Android в режиме полного управления](https://kinescope.io/qr3tLu3h5f5E8C6AhxokJB)
- [Регистрация устройства iOS в режиме BYOD](https://kinescope.io/qt3Wki5qXUGAaZ1mUtvqXs)
- [Профили управления и распространение приложений для iOS](https://kinescope.io/w95pZ34Un3HwkpWfiMXZMx)
- [Удаление устройств iOS из консоли Cloud MDM](https://kinescope.io/31rqK1qRVwK5BkayJJsXcF)
- [Регистрация устройства macOS](https://kinescope.io/o9SUisLzuDx7CZtnmjh223)
- [Установка приложений на macOS](https://kinescope.io/wW5mfvh1HQyPxrxgmRtDtx)
- [Настройка политик ограничений для macOS](https://kinescope.io/dwKwDkFyxCB2Juc5jExjH4)
- [Удаление агента Cloud MDM с устройства macOS](https://kinescope.io/msJrAXigjhNS9aHUW2XYgq)
- [Создание отчетов](https://kinescope.io/m7CYaSUUb76SnHrKe2HTtV)
## Вебинар
- [«Облачный MDM UEM: гибкое управление мобильными и десктопными устройствами»](https://kinescope.io/jgHgtp3y9CX3MjpPK5q1uW)
## Текстовые инструкции
- [активировать учетную запись и сделать первые шаги в Cloud MDM](./activation.md)
- [добавить устройство с Android в Cloud MDM в режиме Device Owner](./device-owner.md)
-7
View File
@@ -1,7 +0,0 @@
# Порядок платежей
Стоимость сервиса **Cloud Mobile Device Management (Cloud MDM)** фиксируется в бланке заказа (БЗ). Ежемесячный платеж зависит от количества мобильных устройств и дополнительных администраторов согласно тарифу. Сервис тарифицируется на помесячной основе по выделенной квоте.
Расчетный период — календарный месяц. Сервис, активированный в течение расчетного периода, оплачивается по тарифу в полном объеме независимо от фактического срока использования. Перерасчет по календарным дням не производится. Доступ к сервису считается предоставленным, а сервис — оказанным в полном объеме с момента активации.
При необходимости [дополнительные работы](./description/work.md) оплачиваются отдельно. Основание для оплаты — заявки уполномоченных представителей заказчика, указанных в БЗ.
-27
View File
@@ -1,27 +0,0 @@
# Сроки и условия предоставления сервиса
## Порядок подключения сервиса
### Заказчик
1. Заполните и подпишите бланк заказа (БЗ) на предоставление сервиса **Cloud Mobile Device Management (Cloud MDM)** и опросный лист.
2. Отправьте отсканированную копию подписанного БЗ на e-mail `presales@datafort.ru` и корпоративный e-mail менеджера по продажам Beeline Cloud, указанный в заказе.
3. Предоставьте ФИО и e-mail администратора платформы.
4. Направьте оригинал БЗ в Beeline Cloud в порядке, установленном договором.
Скачайте [опросный лист](https://disk.datafort.ru/public/s/DiqBkajp7rEoXym) с помощью сервиса Cloud Workspace (WS).
### Beeline Cloud
1. Проверяет корректность заполнения бланка заказа и опросного листа и регистрирует заказ.
2. Уведомляет заказчика по e-mail о принятии заказа в работу.
3. Подключает сервис.
4. Предоставляет заказчику доступ к сервису не позднее двух рабочих дней с момента принятия заказа в работу.
## Настройка нестандартных конфигураций
Если требуется настройка нестандартных конфигураций, заказчик предоставляет необходимую информацию в Beeline Cloud.
## Прием запросов от заказчика
Beeline Cloud принимает запросы только от уполномоченных лиц заказчика, указанных в бланке заказа. Если конечный пользователь обращается в службу поддержки Beeline Cloud напрямую, он получает рекомендацию направить обращение через уполномоченных лиц.
-34
View File
@@ -1,34 +0,0 @@
---
section_links:
- title:
link: /security/Cloud-VS/about.md
description: Обзор сервиса
- title:
link: /security/Cloud-VS/areas-responsibility.md
description: Зоны ответсвенности
- title:
link: /security/Cloud-VS/monitoring.md
description: Мониторинг работоспособности и отказоустойчивость сервиса
- title:
link: /security/Cloud-VS/payment-procedure.md
description: Порядок платежей за сервис
- title:
link: /security/Cloud-VS/characteristics.md
description: Качественные характеристики сервиса
- title:
link: /security/Cloud-VS/provision-service.md
description: Варианты предоставления сервиса
- title:
link: /security/Cloud-VS/provision.md
description: Сроки предоставления сервиса
- title:
link: /security/Cloud-VS/scope-work.md
description: Состав работ
- title:
link: /security/Cloud-VS/work.md
description: Дополнительные работы
---
# Сервис Cloud Vulnerability Scanner (VS)
Сервис для оценки уязвимостей и сканирования, компьютеров и приложений на возможные проблемы в системе безопасности.
-23
View File
@@ -1,23 +0,0 @@
# Cloud Vulnerability Scanner (VS)
## Назначение сервиса
**Cloud Vulnerability Scanner (VS)** — сервис для оценки уязвимостей и сканирования, компьютеров и приложений на возможные проблемы в системе безопасности. Сервис является самостоятельным и предполагает взаимодействие с инфраструктурой заказчика.
Этапы работы сканера:
1. Проверка открытых портов и обнаружение запущенных сервисов и версий операционных систем (ОС);
2. Выявление уязвимостей;
3. Составление отчёта.
## Компоненты сервиса
- **RedCheck Scanner**. Сканер безопасности с:
- сетевыми и системными проверками на уязвимости;
- средствами контроля соответствия;
- механизмами оценки защищенности СУБД и систем виртуализации;
- средствами патч-менеджмента и контроля целостности.
- **RedCheck Agent**. Дополнительный компонент для семейства ОС Windows. Компонент используется для:
- повышения скорости сканирования;
- снижения требований к пропускной способности каналов и привилегиям доступа.
@@ -1,26 +0,0 @@
# Зоны ответственности
Работы зависят от варианта сервиса **Cloud Vulnerability Scanner (VS)**:
- [Dedicated](./provision-service.md#dedicated);
- [Managed-service](./provision-service.md#managed-service).
::: warning Важно
**«К» — консультирующая сторона**: Beeline Cloud выполняет настройки и изменения на основании инструкций и требований, предоставленных заказчиком.
:::
| Зоны ответственности | Dedicated | Managed Service |
|--------------------------------------------------------------------------|------------------------------|--------------------------------|
|Поддержка работоспособности [**RedCheck Scanner**](./about.md) | Beeline Cloud | Beeline Cloud |
|Управление системными настройками **RedCheck Scanner** | Beeline Cloud | Beeline Cloud |
|[Мониторинг доступности сервиса](./monitoring.md) | Beeline Cloud | Beeline Cloud |
|Резервное копирование | Beeline Cloud | Beeline Cloud |
|Внесение изменений в настройки виртуального аплаенса **RedCheck Scanner** | Beeline Cloud | Beeline Cloud |
|Сбор диагностической информации о неисправностях | Beeline Cloud / Заказчик "К" | Beeline Cloud |
|Заведение кейсов в техническую поддержку вендора | Beeline Cloud / Заказчик "К" | Beeline Cloud |
|Редактирование и добавление задач | Заказчик | Beeline Cloud / Заказчик "К" |
|Настройка и редактирование профилей | Заказчик | Beeline Cloud / Заказчик "К" |
|Устранение уязвимостей | Заказчик | Заказчик |
|Анализ отчетов **RedCheck Scanner** | Заказчик | Заказчик |
-32
View File
@@ -1,32 +0,0 @@
# Качественные характеристики сервиса
## Режим предостсавления сервиса
Сервис предоставляется 24/7.
## Обеспечение защиты от угроз
Beeline Cloud **не несёт ответственности** за полное и безусловное обеспечение защиты от всех возможных угроз информационной безопасности. Сервис **Cloud Vulnerability Scanner (VS)** функционирует на программном обеспечении, разработанном сторонним вендором.
В связи с этим Beeline Cloud не гарантирует:
- непрерывность и стабильность работы ПО;
- отсутствие ошибок, связанных с программным кодом разработчика.
## Заведение инцидентов
При выявлении ошибок или сбоев в работе программного обеспечения, на базе которого реализован сервис, Beeline Cloud:
- регистрирует инцидент в технической поддержке вендора;
- оказывает содействие в ходе его устранения.
## Ответственность заказчика
Заказчик:
- использует сервис на собственный риск.
- принимает, что Beeline Cloud **не несёт ответственности** за любые прямые, косвенные, случайные или штрафные убытки, включая, но не ограничиваясь:
- утратой данных;
- утратой возможности использования сервиса;
- потерей прибыли;
- прерыванием бизнес-процессов.
-13
View File
@@ -1,13 +0,0 @@
# Мониторинг работоспособности и отказоустойчивость сервиса
## Мониторинг работоспособности
Для обнаружения отклонений и ошибок в работе сервиса используется система мониторинга **RedCheck**. Мониторинг осуществляется **круглосуточно** и включает контроль следующих параметров:
- нагрузка на вычислительные ресурсы виртуального апплаенса;
- состояние сетевых интерфейсов (up/down);
- доступность веб-интерфейса управления.
## Отказоустойчивость
Отказоустойчивость сервиса обеспечивается средствами платформы виртуализации. Для защиты данных выполняется ежедневное резервное копирование виртуального апплаенса с глубиной хранения 7 дней.
@@ -1,20 +0,0 @@
# Порядок платежей за сервис
## Порядок предоставления сервиса
Сервис **Cloud Vulnerability Scanner (VS)** предоставляется как самостоятельный продукт, который оформляется в бланке заказа (БЗ) и предусматривает **фиксированный ежемесячный платеж**. **Тарификация** — фиксированный ежемесячный платеж, который зависит от:
- выбранного типа сервиса;
- количества сканируемых IP-адресов.
## Тарификация
- расчетный период — **календарный месяц**;
- сервис, активированный в течение расчётного периода, оплачивается полностью за весь месяц, независимо от фактической даты начала использования;
- перерасчёт по календарным дням не производится;
- доступ к сервису считается предоставленным в полном объёме с момента активации.
## Дополнительные работы
Если требуются [дополнительные работы](./work.md), необходимо создать заявку через уполномоченных представителей заказчика, указанных в бланке заказа (БЗ).
Такие работы оплачиваются отдельно.
@@ -1,67 +0,0 @@
# Варианты предоставления сервиса
## Варианты сервиса
Сервис **Cloud Vulnerability Scanner (VS)** доступен в двух вариантах:
- [Dedicated](provision-service.md#dedicated) — для заказчиков с инфраструктурой в облаке Beeline Cloud;
- [Managed-service](provision-service.md#managed-service) — для сканирования публичных ресурсов.
Beeline Cloud тарифицирует дополнительные работы по фактическим трудозатратам.
## Dedicated
### Назначение
Вариант Dedicated предназначен для заказчиков, чья виртуальная инфраструктура размещена в облаке Beeline Cloud. Управление сервисом осуществляется заказчиком самостоятельно.
Beeline cloud:
- предоставляет лицензии на ПО (от 10 IP-адресов);
- разворачивает и выполняет первичную настройку [**RedCheck Scanner**](./about.md) в технологическом пуле Beeline Cloud;
- обеспечивает сетевую связность **RedCheck Scanner** сканера с инфраструктурой заказчика в облаке Beeline Cloud;
- гарантирует доступность **RedCheck Scanner** за счёт:
- ежедневного резервного копирования;
- круглосуточного [мониторинга работоспособности](./monitoring.md);
- предоставляет доступ к интерфейсу управления **RedCheck Scanner**;
- поддерживает работоспособность сканера **RedCheck Scanner**;
- регистрирует инциденты у вендора при сбоях в работе **RedCheck Scanner**.
## Managed-service
### Назначение
Вариант Managed Service используется для сканирования уязвимостей публичных ресурсов заказчика.
Beeline cloud:
- предоставляет лицензии на ПО;
- обеспечивает доступность **RedCheck Scanner** за за счет:
- ежедневного резервного копирования;
- круглосуточного мониторинга работоспособности;
- настраивает задачи сканирования и отправку отчётов;
- изменяет конфигурацию сканера **RedCheck Scanner** по запросу;
- поддерживает работоспособность компонентов сервиса;
- регистрирует инциденты у вендора при нарушениях работоспособности.
## Схема включения сервиса
![Service-VS](../image/Service-VS.png)
## Исходные параметры настройки Managed-Service
Если техническое задание от заказчика не предоставлено, Beeline Cloud выполняет настройку сканирования со следующими параметрами по умолчанию:
- **Периодичность** — ежемесячное сканирование.
- **Режим аудита** — **«Пентест»** (сканер оценивает защищенность информационных систем c минимальными привилегиями и знаниями о сканируемом хосте). Включает:
- идентификацию сетевых узлов;
- сбор инвентаризационных данных;
- сопоставление полученных данных с признаками уязвимого ПО из базы знаний сканера.
- **Отчётность** — автоматическая отправка отчёта на электронную почту заказчика.
::: warning Примечание
Почта должна быть указана в [опросном листе](./provision.md#порядок-подключения-сервиса).
:::
-33
View File
@@ -1,33 +0,0 @@
# Сроки предоставления сервиса
## Порядок подключения сервиса
### Заказчик
1. Заполните и подпишите бланк заказа (БЗ) на предоставление сервиса **Cloud Vulnerability Scanner (VS)**.
2. Отправляет отсканированные копии подписанного БЗ и опросного листа на e-mail `presales@datafort.ru` и менеджера по продажам Beeline Cloud. Адрес менеджера по продажам указывается в БЗ.
3. Предоставляет ФИО и email администратора сервиса.
4. Оригинал БЗ направляет Beeline Cloud в установленном договором порядке.
[Скачайте опросный лист и примеры заполнения](https://disk.datafort.ru/public/s/XFZ9i5w7GrTWSXt) при помощи сервиса **Cloud Workspace (WS)**.
### Beeline cloud
1. Проверяет корректность заполнения БЗ и опросного листа и регистрирует заказ.
2. Уведомляет заказчика по e-mail о принятии заказа в работу.
3. Подключает сервис.
4. Предоставляет заказчику доступ к сервису не позднее двух рабочих дней с момента принятия заказа в работу.
## Настройка нестандартных конфигураций
Если требуются настройки, выходящие за рамки стандартной конфигурации, заказчик предоставляет соответствующую информацию в произвольной форме.
## Прием запросов от заказчика
В целях обеспечения информационной безопасности Beeline Cloud принимает запросы на:
- изменение, добавление или удаление правил фильтрации;
- иные изменения конфигурации, влияющие на работоспособность сервиса;
- исключительно от уполномоченных лиц, указанных в бланке заказа (БЗ).
Если конечный пользователь обращается в службу поддержки Beeline Cloud напрямую, ему направляется рекомендация сформировать обращение через уполномоченное лицо.
-19
View File
@@ -1,19 +0,0 @@
# Состав работ
Работы зависят от варианта сервиса Cloud Vulnerability Scanner (VS):
- [Dedicated](provision-service.md#dedicated) — для заказчиков с инфраструктурой в облаке Beeline Cloud;
- [Managed-service](provision-service.md#managed-service) — для сканирования публичных ресурсов.
|Детализация функционала | Dedicated | Managed Service |
|---------------------------------------------------------------------------|--------------------|--------------------|
|Предоставление лицензии | :heavy_check_mark: | :heavy_check_mark: |
|Предоставление вычислительных ресурсов в облаке beeline cloud | :heavy_check_mark: | :heavy_check_mark: |
|Предоставление канала связи необходимой ширины | :heavy_check_mark: | :heavy_check_mark: |
|Развертывание и первоначальная настройка [**RedCheck Scanner**](./about.md)| :heavy_check_mark: | Предоставление необходимого количества ресурсов для [**Multitenant RedCheck Scanner**](./about.md). |
|Обеспечение высокой доступности **RedCheck Scanner** | :heavy_check_mark: | :heavy_check_mark: |
|Организация сетевого доступа к консоли управления для заказчика | :heavy_check_mark: | Не предусмотрено. |
|Настройка профилей и задач сканирования | - | :heavy_check_mark: |
|Внесение изменений в профили и задачи сканирования | - | :heavy_check_mark: |
|Настройка периодической отправки автоматизированных отчетов | - | :heavy_check_mark: |
|Консультации по работе сервиса | :heavy_check_mark: | :heavy_check_mark: |
-10
View File
@@ -1,10 +0,0 @@
# Дополнительные работы
Дополнительные работы тарифицируются отдельно по фактическим трудозатратам.
|Наименование работ | Трудозатраты специалиста чел/час | Квалификация специалиста |
|------------------------------------------------------------------------------------------------------------------|-----------------------------------|--------------------------|
|Разработка и применение политик профилей сканирования | От четырех | Специалист ДИБ |
|Изменение параметров профилей сканирования и задач | От одного | Специалист ДИБ |
|Диагностика неисправностей компонентов на конечных устройствах | От одного | Специалист ДИБ |
|Диагностика неисправностей, вызванных некорректной [настройкой компонентов сервиса](./about.md#назначение-сервиса)| От одного | Специалист ДИБ |
Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 95 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 150 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 72 KiB

-50
View File
@@ -1,50 +0,0 @@
---
section_links:
- title:
link: /security/Cloud-SA
description: Сервис Cloud Security Awareness (SA)
- title:
link: /security/Cloud-VS
description: Сервис Cloud Vulnerability Scanner (VS)
- title:
link: /security/Cloud-MDM
description: Сервис Cloud Mobile Device Management (MDM)
- title:
link: /security/Cloud-NGFW-F
description: Сервис Cloud NGFW F
- title:
link: /security/Cloud-NGFW
description: Сервис Cloud NGFW
- title:
link: /security/Cloud-MFA
description: Сервис Cloud Multifactor Authentication (MFA)
- title:
link: /security/Cloud-SA-SM
description: Сервис Cloud Security Assistance (включая Security Manager)
- title:
link: /security/Cloud-EPP
description: Сервис Cloud Endpoint Protection Platform (EPP)
- title:
link: /security/Cloud-SEG
description: Сервис Cloud Secure Email Gateway (SEG)
- title:
link: /security/Cloud-WAF
description: Сервис Cloud Web Application Firewall (Cloud WAF)
- title:
link: /security/Cloud-WAF-PRO
description: Сервис Cloud Web Application Firewall (WAF) Pro
- title:
link: /security/Cloud-VPN
description: Сервис Шифрование каналов связи (ГОСТ VPN)
- title:
link: /security/Cloud-DDoS
description: Сервис Cloud DDoS Protection
- title:
link: /security/glossary
description: Глоссарий для сервиса информационной безопасности
---
# Сервисы информационной безопасности в Beeline Cloud
Beeline Cloud предлагает следующие сервисы информационной безопасности: