Настроить параметры сервиса метаданных контейнера
Настроить параметры сервиса метаданных вы можете при создании ревизии контейнера.
Доступны следующие опции:
-
awsV1HttpEndpoint— обеспечивает доступ к метаданным с использованием формата AWS (IMDSv1). Возможные значения:enabled,disabled. Если для опции задано значениеdisabled, то запрос к метаданным завершится ошибкой404 Not Found. Значение по умолчанию:enabled.Примечание
По умолчанию параметр
awsV1HttpEndpointвключен (enabled), но мы советуем выключить его. Формат IMDSv1 имеет ряд недостатков со стороны безопасности. Наиболее критичный — повышенный риск реализации некоторых атак, например SSRF (подробнее в официальном блоге AWS ). -
gceHttpEndpoint— обеспечивает доступ к метаданным с использованием формата Google Compute Engine. Возможные значения:enabled,disabled. Если для опции задано значениеdisabled, то запрос к метаданным завершится ошибкой404 Not Found. Значение по умолчанию:enabled.
- В консоли управления
перейдите в каталог, в котором находится контейнер. - Выберите сервис Serverless Containers.
- Выберите контейнер.
- Перейдите на вкладку Редактор.
- Разверните блок Параметры сервиса метаданных.
- Настройте параметры сервиса метаданных контейнера —
Доступ к метаданным с использованием формата Google Compute EngineиДоступ к метаданным с использованием формата AWS (IMDSv1).п - Нажмите кнопку Создать ревизию.
Чтобы настроить параметры сервиса метаданных контейнера, выполните команду:
yc serverless container revision deploy \
--container-id <идентификатор_контейнера> \
--image <URL_Docker-образа> \
--service-account-id <идентификатор_сервисного_аккаунта>
--metadata-options <опция>=<enabled_или_disabled>
Где:
--container-id— идентификатор контейнера. Чтобы узнать идентификатор, получите список контейнеров.--image— URL Docker-образа из Yandex Container Registry.--service-account-id— идентификатор сервисного аккаунта, у которого есть права на скачивание Docker-образа.--metadata-options— настройки параметров сервиса метаданных, напримерaws-v1-http-endpoint=disabled.
Terraform
Terraform распространяется под лицензией Business Source License
Подробную информацию о ресурсах провайдера смотрите в документации на сайте Terraform
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
Чтобы настроить параметры сервиса метаданных контейнера:
-
Откройте файл конфигурации Terraform и добавьте к описанию контейнера блок
metadata_options:resource "yandex_serverless_container" "metadata_container" { name = "<имя_контейнера>" memory = "<объем_RAM>" execution_timeout = "<максимальное_время_выполнения>" service_account_id = "<идентификатор_сервисного_аккаунта>" content { zip_filename = "<путь_к_ZIP-архиву>" } image { url = <путь_к_образу_контейнера> } metadata_options { metadata_options.0.gce_http_endpoint = "0_или_1_или_2" metadata_options.0.aws_v1_http_endpoint = "0_или_1_или_2" } }Где:
metadata_options— настройки параметров сервиса метаданных, напримерmetadata_options.0.gce_http_endpoint = "1". Укажите:0— если хотите оставить значение по молчанию.1— чтобы включить параметр.2— чтобы выключить параметр.
Более подробную информацию о параметрах ресурса
yandex_serverless_containerсм. в документации провайдера. -
Примените изменения:
-
В терминале перейдите в папку, где вы отредактировали конфигурационный файл.
-
Проверьте корректность конфигурационного файла с помощью команды:
terraform validateЕсли конфигурация является корректной, появится сообщение:
Success! The configuration is valid. -
Выполните команду:
terraform planВ терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply -
Подтвердите изменения: введите в терминале слово
yesи нажмите Enter.
-
Проверить, что контейнер и его настройки изменились, можно в консоли управления
yc serverless container revision get <идентификатор_ревизии_контейнера>
Чтобы настроить параметры сервиса метаданных контейнера, воспользуйтесь методом REST API deployRevision для ресурса Container или вызовом gRPC API ContainerService/DeployRevision.