Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Истории успеха
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Доступны в регионе
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • AI Studio
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Партнёрская программа
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Истории успеха
  • Документация
  • Блог
Проект Яндекса
© 2025 ТОО «Облачные Сервисы Казахстан»
Yandex Serverless Containers
  • Сопоставление с другими сервисами Yandex Cloud
    • Все инструкции
    • Получение IAM-токена сервисного аккаунта с помощью контейнера
      • Сделать контейнер публичным
      • Сделать контейнер приватным
      • Посмотреть роли, назначенные на контейнер
      • Назначить роли на контейнер
      • Отозвать роли, назначенные на контейнер
    • Просмотр операций с ресурсами сервиса
  • Управление доступом
  • Правила тарификации
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • Публичные материалы
  • История изменений
  • Вопросы и ответы
  1. Пошаговые инструкции
  2. Управление правами доступа к контейнеру
  3. Сделать контейнер публичным

Сделать контейнер публичным

Статья создана
Yandex Cloud
Улучшена
mmerihsesh
Обновлена 21 апреля 2025 г.

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

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

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

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

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

yc serverless container allow-unauthenticated-invoke <имя_контейнера>

Результат:

done (1s)

Чтобы сделать контейнер публичным, воспользуйтесь методом REST API setAccessBindings для ресурса Container или вызовом gRPC API ContainerService/SetAccessBindings.

Пример запроса

Чтобы воспользоваться примером, установите cURL и аутентифицируйтесь в API.

  1. Подготовьте файл body.json с телом запроса:

    {
      "accessBindings": [
        {
          "roleId": "serverless-containers.containerInvoker",
          "subject": {
            "id": "allUsers",
            "type": "system"
          }
        }
      ]
    }
    

    Где:

    • roleId — роль, которую нужно назначить. Вызывать контейнер позволяет роль serverless-containers.containerInvoker.
    • id — субъект, которому нужно назначить роль. allUsers — любой пользователь, прохождение аутентификации не требуется.
    • type — тип субъекта, которому назначается роль. system — публичная группа.
  2. Выполните запрос, указав IAM-токен, путь к файлу body.json и идентификатор контейнера:

    curl \
        --request POST \
        --header "Authorization: Bearer <IAM-токен>" \
        --data "@<путь_к_файлу_body.json>" \
        https://serverless-containers.api.cloud.yandex.net/containers/v1/containers/<идентификатор_контейнера>:setAccessBindings
    

    Результат:

    {
     "done": false,
     "metadata": {
      "@type": "type.googleapis.com/yandex.cloud.access.SetAccessBindingsMetadata",
      "resourceId": "bba8dkc667bj********"
     },
     "id": "bbaoi3jn8plq********",
     "description": "operationSetAccessBindings",
     "createdAt": "2023-12-22T10:30:58.348672821Z",
     "createdBy": "aje07l4q4vmo********",
     "modifiedAt": "2023-12-22T10:30:58.348672821Z"
    }
    
  3. Убедитесь, что роль назначена. Для этого выполните запрос, указав IAM-токен и идентификатор контейнера:

    curl \
        --request GET \
        --header "Authorization: Bearer <IAM-токен>" \
        https://serverless-containers.api.cloud.yandex.net/containers/v1/containers/<идентификатор_контейнера>:listAccessBindings
    

    Результат:

    {
     "accessBindings": [
      {
       "subject": {
        "id": "allUsers",
        "type": "system"
       },
       "roleId": "serverless.containers.invoker"
      }
     ]
    }
    

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

Предыдущая
Настроить параметры сервиса метаданных
Следующая
Сделать контейнер приватным
Проект Яндекса
© 2025 ТОО «Облачные Сервисы Казахстан»