Yandex Cloud
  • Сервисы
  • Решения
  • Почему Yandex Cloud
  • Сообщество
  • Тарифы
  • Документация
  • Связаться с нами
Подключиться
Language / Region
© 2022 ООО «Яндекс.Облако»
Yandex Cloud Functions
  • Сопоставление с другими сервисами Yandex Cloud
  • Начало работы
    • Обзор
    • Создание функции
      • Обзор
      • Node.js
      • Python
      • Go
      • PHP
      • Bash
      • Java
    • Создание триггера
      • Обзор
      • Таймер
      • Триггер для Message Queue
      • Триггер для Object Storage
      • Триггер для Container Registry
      • Триггер для Cloud Logs
      • Триггер для Cloud Logging
      • Триггер для Yandex IoT Core
      • Триггер для бюджетов
      • Триггер для Data Streams
  • Пошаговые инструкции
    • Все инструкции
    • Получение IAM-токена сервисного аккаунта с помощью функции
    • Подключение к управляемым БД из функции
    • Управление правами доступа к функции
    • Управление функцией
      • Создание функции
      • Управление версиями функции
      • Работа в редакторе кода
      • Вызов функции
      • Изменение функции
      • Масштабирование функции
      • Мониторинг функции
      • Просмотр журнала выполнения
      • Удаление функции
    • Управление триггером
      • Получение информации о триггере
      • Создание таймера
      • Создание триггера для Message Queue
      • Создание триггера для Object Storage
      • Создание триггера для Container Registry
      • Создание триггера для Cloud Logs
      • Создание триггера для Cloud Logging
      • Создание триггера для Yandex IoT Core
      • Создание триггера для бюджетов
      • Создание триггера для Data Streams
      • Изменение триггера
      • Мониторинг триггера
      • Удаление триггера
  • Концепции
    • Обзор
    • Функция
    • Вызов функции
    • Среда выполнения
      • Обзор
      • Окружение
      • Контекст выполнения
      • Предзагружаемая среда выполнения
    • Сборщик
    • Триггер
      • Обзор
      • Таймер
      • Триггер для Message Queue
      • Триггер для Object Storage
      • Триггер для Container Registry
      • Триггер для Cloud Logs
      • Триггер для Cloud Logging
      • Триггер для Yandex IoT Core
      • Триггер для бюджетов
      • Триггер для Data Streams
    • Dead Letter Queue
    • Лог-группа
    • Резервное копирование
    • Квоты и лимиты
  • Разработка на Node.js
    • Обзор
    • Управление зависимостями
    • Обработчик запросов
    • Контекст вызова
    • Журналирование
    • Обработка ошибок
    • Использование SDK
  • Разработка на Python
    • Обзор
    • Управление зависимостями
    • Обработчик запросов
    • Контекст вызова
    • Журналирование
    • Обработка ошибок
    • Использование SDK
  • Разработка на Go
    • Обзор
    • Управление зависимостями
    • Обработчик запросов
    • Контекст вызова
    • Журналирование
    • Обработка ошибок
    • Использование SDK
  • Разработка на PHP
    • Обзор
    • Управление зависимостями
    • Обработчик запросов
    • Контекст вызова
    • Журналирование
    • Обработка ошибок
  • Разработка на Bash
    • Обзор
    • Обработчик запросов
    • Журналирование
    • Обработка ошибок
    • Использование SDK
  • Разработка на Java
    • Обзор
    • Модель программирования
      • Обзор
      • Интерфейс Function
      • Интерфейс YcFunction
      • Класс HttpServlet
      • Spring Boot
    • Управление зависимостями
    • Обработчик запросов
    • Контекст вызова
    • Журналирование
    • Обработка ошибок
    • Использование SDK
  • Разработка на R
    • Обзор
    • Модель программирования
    • Управление зависимостями
    • Обработчик запросов
    • Контекст вызова
    • Журналирование
    • Обработка ошибок
  • Разработка на C#
    • Обзор
    • Модель программирования
      • Обзор
      • Интерфейс Function
      • Интерфейс YcFunction
    • Управление зависимостями
    • Обработчик запросов
    • Контекст вызова
    • Журналирование
    • Обработка ошибок
    • Использование SDK
  • Практические руководства
    • Создание навыка Алисы
    • Развертывание веб-приложения
    • Разработка навыка Алисы и сайта с авторизацией
    • Запись данных с устройства в Managed Service for PostgreSQL
    • Разработка Slack-бота
    • Разработка Telegram-бота
    • Подключение к базе данных YDB из функции на Python
    • Подключение к базе данных YDB из функции на Node.js
    • Конвертация видео в GIF на Python
    • Создание функции Node.js с помощью TypeScript
  • Правила тарификации
  • Управление доступом
  • Справочник API Functions
    • Аутентификация в API
    • gRPC (англ.)
      • Overview
      • FunctionService
      • OperationService
    • REST (англ.)
      • Overview
      • Function
        • Overview
        • create
        • createVersion
        • delete
        • get
        • getVersion
        • getVersionByTag
        • list
        • listAccessBindings
        • listOperations
        • listRuntimes
        • listScalingPolicies
        • listTagHistory
        • listVersions
        • removeScalingPolicy
        • removeTag
        • setAccessBindings
        • setScalingPolicy
        • setTag
        • update
        • updateAccessBindings
  • Справочник API Triggers
    • Аутентификация в API
    • gRPC (англ.)
      • Overview
      • TriggerService
      • OperationService
    • REST (англ.)
      • Overview
      • Trigger
        • Overview
        • create
        • delete
        • get
        • list
        • listOperations
        • pause
        • resume
        • update
  • Вопросы и ответы
  1. Пошаговые инструкции
  2. Управление правами доступа к функции

Управление правами доступа к функции

Статья создана
Yandex Cloud
  • Сделать функцию публичной
  • Сделать функцию приватной
  • Посмотреть роли, назначенные на функцию
  • Назначить роли на функцию
  • Отозвать роли, назначенные на функцию

Вы можете сделать функцию публичной или приватной, посмотреть, какие роли на нее назначены, отозвать их или назначить новые.

Сделать функцию публичной

Чтобы любой пользователь мог вызвать функцию без передачи заголовка авторизации, сделайте ее публичной.

Консоль управления
CLI
API
  1. В консоли управления перейдите в каталог, в котором находится функция.
  2. Выберите сервис Cloud Functions.
  3. Выберите функцию, которую хотите сделать публичной.
  4. На странице Обзор, в разделе Общая информация, переведите переключатель Публичная функция в активное состояние.

Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.

По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name или --folder-id.

Чтобы сделать функцию публичной, выполните команду:

yc serverless function allow-unauthenticated-invoke <имя функции>

Результат:

done (1s)    

Сделать функцию публичной можно с помощью метода API setAccessBindings.

Сделать функцию приватной

Чтобы функцию могли вызвать только пользователи, у которых есть права на ее вызов, сделайте функцию приватной.

Примечание

Если на облако или каталог всем неавторизованным пользователям (системная группа allUsers) выданы права на вызов функции, функция будет публичной вне зависимости от ее настроек. Как отозвать роль.

Консоль управления
CLI
  1. В консоли управления перейдите в каталог, в котором находится функция.
  2. Выберите сервис Cloud Functions.
  3. Выберите функцию, которую хотите сделать приватной.
  4. На странице Обзор, в разделе Общая функция, переведите переключатель Публичная функция в неактивное состояние.

Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.

По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name или --folder-id.

Чтобы сделать функцию приватной, выполните команду:

yc serverless function deny-unauthenticated-invoke <имя функции>

Результат:

done (1s)   

Посмотреть роли, назначенные на функцию

CLI
API

Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.

По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name или --folder-id.

Чтобы посмотреть роли, назначенные на функцию, выполните команду:

yc serverless function list-access-bindings <имя функции>

Результат:

+------------------------------+--------------+-----------------------+
|           ROLE ID            | SUBJECT TYPE |       SUBJECT ID      |
+------------------------------+--------------+-----------------------+
| serverless.functions.invoker | system       | allAuthenticatedUsers |
+------------------------------+--------------+-----------------------+

Посмотреть роли, назначенные на функцию, можно с помощью метода API listAccessBindings.

Примечание

Роли, назначенные на каталог или облако, автоматически наследуются функцией. При этом они не отображаются в списке ролей, назначенных на нее. Подробнее о просмотре ролей.

Назначить роли на функцию

CLI
API

Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.

По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name или --folder-id.

Выполните команду, чтобы назначить роль на функцию:

  • пользователю:
    yc serverless function add-access-binding \
      --id <идентификатор функции> \
      --user-account-id <идентификатор пользователя> \
      --role <роль>
    
    Результат:
    done (1s)
    
  • сервисному аккаунту:
    yc serverless function add-access-binding \
      --id <идентификатор функции> \
      --service-account-id <идентификатор сервисного аккаунта> \
      --role <роль>
    
    Результат:
    done (1s)
    
  • всем авторизованным пользователям (системная группа allAuthenticatedUsers):
    yc serverless function add-access-binding \
      --id <идентификатор функции> \
      --all-authenticated-users \
      --role <роль>
    
    Результат:
    done (1s)
    

Назначить роли на функцию можно с помощью метода API setAccessBindings.

Отозвать роли, назначенные на функцию

CLI
API

Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.

По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name или --folder-id.

Выполните команду, чтобы отозвать роль на функцию:

  • у пользователя:
    yc serverless function remove-access-binding \
      --id <идентификатор функции> \
      --user-account-id <идентификатор пользователя> \
      --role <роль>
    
    Результат:
    done (1s)
    
  • у сервисного аккаунта:
    yc serverless function remove-access-binding \
      --id <идентификатор функции> \
      --service-account-id <идентификатор сервисного аккаунта> \
      --role <роль>
    
    Результат:
    done (1s)
    
  • у всех авторизованных пользователей (системная группа allAuthenticatedUsers):
    yc serverless function remove-access-binding \
      --id <идентификатор функции> \
      --all-authenticated-users \
      --role <роль>
    
    Результат:
    done (1s)
    

Отозвать роли на функцию можно с помощью метода API updateAccessBindings.

Была ли статья полезна?

Language / Region
© 2022 ООО «Яндекс.Облако»
В этой статье:
  • Сделать функцию публичной
  • Сделать функцию приватной
  • Посмотреть роли, назначенные на функцию
  • Назначить роли на функцию
  • Отозвать роли, назначенные на функцию