Управление пользователями Yandex StoreDoc
Вы можете добавлять и удалять пользователей, а также управлять их индивидуальными настройками и правами доступа к базам данных.
Получить список пользователей
- В консоли управления
выберите каталог. - Перейдите
в сервис Yandex StoreDoc. - Нажмите на имя нужного кластера, затем выберите вкладку
Пользователи.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id. Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.
Чтобы получить список пользователей кластера, выполните команду:
yc managed-mongodb user list \
--cluster-name <имя_кластера>
Имя кластера можно запросить со списком кластеров в каталоге.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом User.List и выполните запрос, например с помощью cURL
:curl \ --request GET \ --header "Authorization: Bearer $IAM_TOKEN" \ --url 'https://mdb.api.cloud.yandex.net/managed-mongodb/v1/clusters/<идентификатор_кластера>/users'Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом UserService.List и выполните запрос, например с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/mongodb/v1/user_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>" }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.mongodb.v1.UserService.ListИдентификатор кластера можно запросить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Получить информацию о пользователе
-
В консоли управления
выберите каталог. -
Перейдите
в сервис Yandex StoreDoc. -
Нажмите на имя нужного кластера, затем выберите вкладку
Пользователи.Информация о пользователе доступна в списке пользователей.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id. Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.
Чтобы получить информацию о конкретном пользователе:
-
Посмотрите описание команды CLI для получения информации о пользователе:
yc managed-mongodb user get --help -
Получите информацию о пользователе, выполнив команду:
yc managed-mongodb user get <имя_пользователя> \ --cluster-id=<идентификатор_кластера>Имя пользователя можно получить со списком пользователей в кластере, а идентификатор кластера — со списком кластеров в каталоге.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом User.Get и выполните запрос, например с помощью cURL
:curl \ --request GET \ --header "Authorization: Bearer $IAM_TOKEN" \ --url 'https://mdb.api.cloud.yandex.net/managed-mongodb/v1/clusters/<идентификатор_кластера>/users/<имя_пользователя>'Идентификатор кластера можно получить со списком кластеров в каталоге, а имя пользователя — со списком пользователей в кластере.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом UserService.Get и выполните запрос, например с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/mongodb/v1/user_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "user_name": "<имя_пользователя>" }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.mongodb.v1.UserService.GetИдентификатор кластера можно получить со списком кластеров в каталоге, а имя пользователя — со списком пользователей в кластере.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Создать пользователя
-
В консоли управления
выберите каталог. -
Перейдите
в сервис Yandex StoreDoc. -
Нажмите на имя нужного кластера и выберите вкладку
Пользователи. -
Нажмите кнопку Создать пользователя.
-
Выберите способ авторизации:
-
Пароль — авторизация по имени пользователя и паролю.
Для этого способа авторизации введите имя пользователя и пароль.
Примечание
Имя пользователя может содержать латинские буквы, цифры, дефис и подчеркивание, но должно начинаться с буквы, цифры или подчеркивания.
Длина пароля от 8 до 128 символов.
-
IAM — авторизация с помощью аккаунта на Яндексе, федеративного или локального аккаунта.
Для этого способа авторизации выберите аккаунт в поле Пользователь.
-
-
Настройте роли пользователя:
- Нажмите кнопку Добавить базу данных и выберите БД, в которой вы хотите выдать роль.
- Добавьте роли с помощью кнопки
.
Вы можете выдать пользователю несколько ролей в разных базах данных.
-
Нажмите кнопку Создать.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id. Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.
Чтобы создать пользователя в кластере:
-
Посмотрите описание команды CLI для создания пользователя:
yc managed-mongodb user create --help -
Укажите параметры пользователя в команде создания:
yc managed-mongodb user create <имя_пользователя> \ --cluster-name <имя_кластера> \ --password <пароль_пользователя> \ --permission database=<имя_БД>,role=<роль>,role=<другая_роль>,... \ --permission database=<имя_другой_БД>,role=<роль>,... \ --deletion-protection=<защитить_пользователя_от_удаления>Где:
-
<имя_пользователя>,--password— имя и пароль пользователя.Примечание
Имя пользователя может содержать латинские буквы, цифры, дефис и подчеркивание, но должно начинаться с буквы, цифры или подчеркивания.
Длина пароля от 8 до 128 символов.
-
--cluster-name— имя кластера, которое можно запросить со списком кластеров в каталоге. -
--permission— разрешения пользователя для доступа к базе данных:-
database— имя базы данных, к которой пользователь получает доступ.Имя базы данных можно запросить со списком баз данных в кластере.
-
role— роль пользователя в базе данных. Список доступных значений приведен в разделе Пользователи и роли.Пользователю можно назначить несколько ролей в базе данных. Для этого каждую роль укажите в отдельном параметре
role.
Для каждой базы данных, к которой нужно предоставить доступ пользователю, задайте отдельный параметр
--permission. -
-
--deletion-protection— защита пользователя от непреднамеренного удаления:trueилиfalse. По умолчанию значение не задано, и для пользователя используется значение соответствующей настройки кластера. Если защита включена (true), удалить пользователя нельзя.
-
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
Инструкция по созданию такого файла приведена в разделе Создание кластера.
-
Добавьте ресурс
yandex_mdb_mongodb_user:resource "yandex_mdb_mongodb_user" "<имя_пользователя>" { cluster_id = <идентификатор_кластера> name = "<имя_пользователя>" password = "<пароль>" deletion_protection = <защитить_пользователя_от_удаления> permission { database_name = "<имя_БД>" roles = [ "<список_ролей_пользователя>" ] } }Где:
-
cluster_id— идентификатор кластера, который можно запросить со списком кластеров в каталоге. -
name,password— имя и пароль пользователя.Примечание
Имя пользователя может содержать латинские буквы, цифры, дефис и подчеркивание, но должно начинаться с буквы, цифры или подчеркивания.
Длина пароля от 8 до 128 символов.
-
deletion_protection— защита пользователя от непреднамеренного удаления:trueилиfalse. По умолчанию значение не задано, и для пользователя используется значение соответствующей настройки кластера. Если защита включена (true), удалить пользователя нельзя. -
permission— разрешения пользователя для доступа к базе данных:-
database_name— имя базы данных, к которой пользователь получает доступ.Имя базы данных можно запросить со списком баз данных в кластере.
-
roles— список ролей пользователя в базе данных. Доступные значения приведены в разделе Пользователи и роли.
-
-
-
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validateЕсли в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform planЕсли конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply -
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
Подробнее читайте в документации провайдера Terraform.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом User.Create и выполните запрос, например с помощью cURL
:curl \ --request POST \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.cloud.yandex.net/managed-mongodb/v1/clusters/<идентификатор_кластера>/users' \ --data '{ "userSpec": { "name": "<имя_пользователя>", "password": "<пароль_пользователя>", "permissions": [ { "databaseName": "<имя_БД>", "roles": [ "<роль_1>", "<роль_2>", ..., "<роль_N>" ] } ], "deletionProtection": <защитить_пользователя_от_удаления> } }'Где:
-
<идентификатор_кластера>— идентификатор кластера, который можно запросить со списком кластеров в каталоге. -
userSpec.name,userSpec.password— имя и пароль пользователя.Примечание
Имя пользователя может содержать латинские буквы, цифры, дефис и подчеркивание, но должно начинаться с буквы, цифры или подчеркивания.
Длина пароля от 8 до 128 символов.
-
userSpec.permissions— настройки разрешений пользователя:-
databaseName— имя базы данных, к которой пользователь получает доступ.Имя базы данных можно запросить со списком баз данных в кластере.
-
roles— массив ролей пользователя. Каждая роль представлена в виде отдельной строки в массиве. Список доступных значений приведен в разделе Пользователи и роли.
Для каждой базы данных добавьте отдельный элемент с настройками разрешений в массив
permissions. -
-
userSpec.deletionProtection— защита пользователя от непреднамеренного удаления:trueилиfalse. По умолчанию значение не задано, и для пользователя используется значение соответствующей настройки кластера. Если защита включена (true), удалить пользователя нельзя.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом UserService.Create и выполните запрос, например с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/mongodb/v1/user_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "user_spec": { "name": "<имя_пользователя>", "password": "<пароль_пользователя>", "permissions": [ { "database_name": "<имя_БД>", "roles": [ "<роль_1>", "<роль_2>", ..., "<роль_N>" ] } ], "deletion_protection": <защитить_пользователя_от_удаления> } }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.mongodb.v1.UserService.CreateГде:
-
cluster_id— идентификатор кластера, который можно запросить со списком кластеров в каталоге. -
user_spec.name,user_spec.password— имя и пароль пользователя.Примечание
Имя пользователя может содержать латинские буквы, цифры, дефис и подчеркивание, но должно начинаться с буквы, цифры или подчеркивания.
Длина пароля от 8 до 128 символов.
-
user_spec.permissions— настройки разрешений пользователя:-
database_name— имя базы данных, к которой пользователь получает доступ.Имя базы данных можно запросить со списком баз данных в кластере.
-
roles— массив ролей пользователя. Каждая роль представлена в виде отдельной строки в массиве. Список доступных значений приведен в разделе Пользователи и роли.
Для каждой базы данных добавьте отдельный элемент с настройками разрешений в массив
permissions. -
-
user_spec.deletion_protection— защита пользователя от непреднамеренного удаления:trueилиfalse. По умолчанию значение не задано, и для пользователя используется значение соответствующей настройки кластера. Если защита включена (true), удалить пользователя нельзя.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Изменить настройки пользователя
Примечание
Изменить имя пользователя нельзя.
-
В консоли управления
выберите каталог. -
Перейдите
в сервис Yandex StoreDoc. -
Нажмите на имя нужного кластера и выберите вкладку
Пользователи. -
Чтобы изменить пароль пользователя, нажмите значок
в строке нужного пользователя и выберите пункт Изменить пароль. Длина пароля — от 8 до 128 символов. -
Чтобы изменить роли пользователя:
- Нажмите значок
в строке нужного пользователя и выберите пункт Настроить. - Чтобы добавить роль, нажмите
напротив нужной БД и выберите роль. - Чтобы удалить роль, нажмите на значок
возле названия роли.
- Нажмите значок
-
Нажмите Сохранить.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id. Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.
Чтобы изменить настройки пользователя:
-
Посмотрите описание команды CLI для изменения пользователя:
yc managed-mongodb user update --help -
Укажите параметры пользователя в команде изменения:
yc managed-mongodb user update <имя_пользователя> \ --cluster-name <имя_кластера> \ --password <пароль_пользователя> \ --permission database=<имя_БД>,role=<роль>,role=<другая_роль>,... \ --permission database=<имя_другой_БД>,role=<роль>,... \ --deletion-protection=<защитить_пользователя_от_удаления>Где:
-
<имя_пользователя>— имя пользователя, которое можно запросить со списком пользователей в кластере. -
--cluster-name— имя кластера, которое можно запросить со списком кластеров в каталоге. -
--password— пароль пользователя.Длина пароля от 8 до 128 символов.
-
--permission— разрешения пользователя для доступа к базе данных:-
database— имя базы данных, к которой пользователь получает доступ.Имя базы данных можно запросить со списком баз данных в кластере.
-
role— роль пользователя в базе данных. Список доступных значений приведен в разделе Пользователи и роли.Пользователю можно назначить несколько ролей в базе данных. Для этого каждую роль укажите в отдельном параметре
role.
Для каждой базы данных, к которой нужно предоставить доступ пользователю, задайте отдельный параметр
--permission. -
-
--deletion-protection— защита пользователя от непреднамеренного удаления:trueилиfalse. По умолчанию значение не задано, и для пользователя используется значение соответствующей настройки кластера. Если защита включена (true), удалить пользователя нельзя.
-
Чтобы добавить пользователю доступ к базе данных с определенным набором ролей:
-
Посмотрите описание команды CLI для выдачи прав пользователю:
yc managed-mongodb user grant-permission --help -
Укажите свойства пользователя в команде выдачи прав:
yc managed-mongodb user grant-permission <имя_пользователя> \ --cluster-name <имя_кластера> \ --database <имя_БД> \ --role <набор_ролей_через_запятую>
Чтобы отозвать доступ у пользователя к базе данных:
-
Посмотрите описание команды CLI для отзыва прав пользователя:
yc managed-mongodb user revoke-permission --help -
Укажите свойства пользователя в команде отзыва прав:
yc managed-mongodb user revoke-permission <имя_пользователя> \ --cluster-name <имя_кластера> \ --database <имя_БД>Эта команда полностью закрывает пользователю доступ к указанной базе данных.
Имя кластера можно запросить со списком кластеров в каталоге, имя базы данных — со списком баз данных в кластере, имя пользователя — со списком пользователей в кластере.
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
Инструкция по созданию такого файла приведена в разделе Создание кластера.
-
Найдите ресурс
yandex_mdb_mongodb_user. -
Чтобы задать новый пароль, измените значение поля
password:resource "yandex_mdb_mongodb_user" "<имя_пользователя>" { ... password = "<новый_пароль>" ... }Длина пароля от 8 до 128 символов.
-
Чтобы настроить разрешения пользователя, измените список ролей в поле
roles:resource "yandex_mdb_mongodb_user" "<имя_пользователя>" { ... permission { database_name = "<имя_БД>" roles = [ "<новый_список_ролей_пользователя>" ] } ... }Список доступных ролей приведен в разделе Пользователи и роли.
-
Чтобы включить или отключить защиту пользователя от непреднамеренного удаления, измените значение поля
deletion_protection:resource "yandex_mdb_mongodb_user" "<имя_пользователя>" { ... deletion_protection = <защитить_пользователя_от_удаления> ... }Где
deletion_protection— защита пользователя от непреднамеренного удаления:trueилиfalse. По умолчанию значение не задано, и для пользователя используется значение соответствующей настройки кластера. Если защита включена (true), удалить пользователя нельзя. -
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validateЕсли в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform planЕсли конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply -
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
Подробнее читайте в документации провайдера Terraform.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом User.Update и выполните запрос, например с помощью cURL
:Важно
Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
updateMask(одной строкой через запятую).curl \ --request PATCH \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.cloud.yandex.net/managed-mongodb/v1/clusters/<идентификатор_кластера>/users/<имя_пользователя>' \ --data '{ "updateMask": "password,permissions.databaseName,permissions.roles,deletionProtection", "password": "<пароль_пользователя>", "permissions": [ { "databaseName": "<имя_БД>", "roles": [ "<роль_1>", "<роль_2>", ..., "<роль_N>" ] } ], "deletionProtection": <защитить_пользователя_от_удаления> }'Где:
-
<идентификатор_кластера>— идентификатор кластера, который можно запросить со списком кластеров в каталоге. -
<имя_пользователя>— имя пользователя, которое можно запросить со списком пользователей в кластере. -
updateMask— перечень изменяемых параметров в одну строку через запятую. -
password— пароль пользователя.Длина пароля от 8 до 128 символов.
-
permissions— настройки разрешений пользователя:-
databaseName— имя базы данных, к которой пользователь получает доступ.Имя базы данных можно запросить со списком баз данных в кластере.
-
roles— массив ролей пользователя. Каждая роль представлена в виде отдельной строки в массиве. Список доступных значений приведен в разделе Пользователи и роли.
-
-
deletionProtection— защита пользователя от непреднамеренного удаления:trueилиfalse. По умолчанию значение не задано, и для пользователя используется значение соответствующей настройки кластера. Если защита включена (true), удалить пользователя нельзя.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом UserService.Update и выполните запрос, например с помощью gRPCurl
:Важно
Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
update_mask(в виде массива строкpaths[]).Формат перечисления настроек
"update_mask": { "paths": [ "<настройка_1>", "<настройка_2>", ... "<настройка_N>" ] }grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/mongodb/v1/user_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "user_name": "<имя_пользователя>", "update_mask": { "paths": [ "password", "permissions.database_name", "permissions.roles", "deletion_protection" ] }, "password": "<пароль_пользователя>", "permissions": [ { "database_name": "<имя_БД>", "roles": [ "<роль_1>", "<роль_2>", ..., "<роль_N>" ] } ], "deletion_protection": <защитить_пользователя_от_удаления> }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.mongodb.v1.UserService.UpdateГде:
-
cluster_id— идентификатор кластера, который можно запросить со списком кластеров в каталоге. -
user_name— имя пользователя, которое можно запросить со списком пользователей в кластере. -
update_mask— перечень изменяемых параметров в виде массива строкpaths[]. -
password— пароль пользователя.Длина пароля от 8 до 128 символов.
-
permissions— настройки разрешений пользователя:-
database_name— имя базы данных, к которой пользователь получает доступ.Имя базы данных можно запросить со списком баз данных в кластере.
-
roles— массив ролей пользователя. Каждая роль представлена в виде отдельной строки в массиве. Список доступных значений приведен в разделе Пользователи и роли.
-
-
deletion_protection— защита пользователя от непреднамеренного удаления:trueилиfalse. По умолчанию значение не задано, и для пользователя используется значение соответствующей настройки кластера. Если защита включена (true), удалить пользователя нельзя.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Удалить пользователя
Примечание
Перед удалением пользователя отключите его защиту от удаления.
- В консоли управления
выберите каталог. - Перейдите
в сервис Yandex StoreDoc. - Нажмите на имя нужного кластера и выберите вкладку
Пользователи. - Нажмите значок
в строке нужного пользователя и выберите пункт Удалить.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id. Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.
Чтобы удалить пользователя, выполните команду:
yc managed-mongodb user delete <имя_пользователя> \
--cluster-name <имя_кластера>
Имя кластера можно запросить со списком кластеров в каталоге.
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
Инструкция по созданию такого файла приведена в разделе Создание кластера.
-
Удалите ресурс
yandex_mdb_mongodb_userс описанием нужного пользователя. -
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validateЕсли в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform planЕсли конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply -
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
Подробнее читайте в документации провайдера Terraform.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом User.Delete и выполните запрос, например с помощью cURL
:curl \ --request DELETE \ --header "Authorization: Bearer $IAM_TOKEN" \ --url 'https://mdb.api.cloud.yandex.net/managed-mongodb/v1/clusters/<идентификатор_кластера>/users/<имя_пользователя>'Идентификатор кластера можно запросить со списком кластеров в каталоге, а имя пользователя — со списком пользователей в кластере.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом UserService.Delete и выполните запрос, например с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/mongodb/v1/user_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "user_name": "<имя_пользователя>" }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.mongodb.v1.UserService.DeleteИдентификатор кластера можно запросить со списком кластеров в каталоге, а имя пользователя — со списком пользователей в кластере.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Примеры
Добавить пользователя с правами только на чтение
Чтобы добавить в существующий кластер нового пользователя user2 с доступом только на чтение к базе данных db1:
- В консоли управления
выберите каталог. - Перейдите
в сервис Yandex StoreDoc. - Нажмите на имя нужного кластера и выберите вкладку
Пользователи. - Нажмите кнопку Создать пользователя.
- Введите имя пользователя
user2и пароль (от 8 до 128 символов). - Выберите базу данных
db1из выпадающего списка Добавить базу данных. - Выберите роль
readиз выпадающего списка напротив базы данныхdb1. - Нажмите кнопку Создать.
Выполните следующую команду:
yc managed-mongodb user create user2 \
--cluster-name <имя_кластера> \
--password <пароль_пользователя> \
--permission database=db1,role=read \
--deletion-protection=true
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
Как создать такой файл, описано в разделе Создание кластера.
-
Добавьте ресурс
yandex_mdb_mongodb_user.resource "yandex_mdb_mongodb_user" "user2" { cluster_id = <идентификатор_кластера> name = "user2" password = "<пароль>" deletion_protection = true permission { database_name = "db1" roles = [ "read" ] } } -
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validateЕсли в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform planЕсли конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply -
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
Подробнее в документации провайдера Terraform.
Изменить права пользователя
Чтобы добавить существующему пользователю user1 кластера cluster1 доступ только на чтение к базе данных db2:
- В консоли управления
выберите каталог. - Перейдите
в сервис Yandex StoreDoc. - Нажмите на имя кластера
cluster1и выберите вкладку Пользователи. - Нажмите значок
в строке пользователяuser1и выберите пункт Настроить. - Нажмите кнопку Добавить базу данных и выберите базу данных
db2. - Нажмите
и выберите рольreadиз выпадающего списка напротив базы данныхdb2. - Нажмите кнопку Сохранить.
Выполните следующую команду:
yc managed-mongodb user grant-permission user1 \
--cluster-name cluster1 \
--database db2 \
--role read
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
Как создать такой файл, описано в разделе Создание кластера.
-
Найдите ресурс
yandex_mdb_mongodb_user. -
Добавьте блок
permission:resource "yandex_mdb_mongodb_user" "user1" { cluster_id = <идентификатор_кластера> name = "user1" password = "<пароль>" deletion_protection = true permission { database_name = "db2" roles = [ "read" ] } } -
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validateЕсли в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform planЕсли конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply -
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
Подробнее в документации провайдера Terraform.