[Документация Yandex Cloud](../../../index.md) > [Yandex IoT Core](../../index.md) > [Пошаговые инструкции](../index.md) > Управление устройствами > Создание устройства

# Создание устройства

{% note warning %}

Сервис Yandex IoT Core больше не доступен для новых пользователей. 

Текущие пользователи могут создавать ресурсы до 1 ноября 2026 года. После сервис перейдет в режим read-only, а 1 декабря 2026 года — прекратит работу. Подробнее о сроках и порядке закрытия читайте на странице [Закрытие сервиса](../../sunset.md).

{% endnote %}

{% list tabs group=instructions %}

- Консоль управления {#console}

   1. В [консоли управления](https://console.yandex.cloud) выберите каталог, в котором вы хотите создать устройство.
   1. Перейдите в сервис **IoT Core**.
   1. Выберите в списке нужный реестр.
   1. В левой части окна выберите раздел **Устройства**.
   1. Нажмите кнопку **Добавить устройство**.
   1. В блоке **Общая информация** добавьте:

      * **Имя** устройства. Например, `my-device`.
      * (Опционально) **Описание** с дополнительной информацией об устройстве.
      * (Опционально) **Пароль**, который вы будете использовать для доступа к устройству. Для создания пароля можно воспользоваться [генератором паролей](https://passwordsgenerator.net/).

         {% note info %}

         Сохраните пароль, он вам понадобится для [аутентификации](../../concepts/authorization.md).

         {% endnote %}

   1. (Опционально) Добавьте [алиасы](../../concepts/topic/usage.md#aliases):

      1. Нажмите кнопку **Добавить алиас**.
      1. Заполните поля: введите алиас (например, `events`) и тип топика после `$devices/<идентификатор_устройства>` (например, `events`). Вы сможете использовать алиас `events` вместо топика `$devices/<идентификатор_устройства>/events`.

   1. (Опционально) Добавьте [сертификат](../certificates/create-certificates.md):

      * Чтобы добавить файл:

         1. Выберите способ `Файл`.
         1. Нажмите кнопку **Прикрепить файл**.
         1. Выберите файл с публичным ключом сертификата и нажмите кнопку **Открыть**.
         1. Нажмите кнопку **Добавить**.

      * Чтобы добавить текст:

         1. Выберите способ `Текст`.
         1. Вставьте публичный ключ сертификата в поле **Содержимое**.
         1. Нажмите кнопку **Добавить**.

   1. Нажмите кнопку **Создать**.

- CLI {#cli}

   Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), [установите и инициализируйте его](../../../cli/quickstart.md#install).

   1. [Посмотрите список реестров](../registry/registry-list.md#registry-list), в которых можно создать устройство, или [создайте новый реестр](../registry/registry-create.md).

   1. Создайте устройство:

      ```bash
      yc iot device create \
         --registry-name <имя_реестра> \
         --name <имя_устройства>
      ```

      Требования к названию устройства:

      * длина — от 3 до 63 символов;
      * может содержать строчные буквы латинского алфавита, цифры и дефисы;
      * первый символ — буква, последний — не дефис.

      Результат:

      ```text
      id: b9135goeh**********
      registry_id: b91ki3851h**********
      created_at: "2019-05-28T16:08:30.938Z"
      name: <имя_устройства>
      status: ACTIVE
      ```

   1. (Опционально) Присвойте устройству пароль для аутентификации с помощью [логина и пароля](../../concepts/authorization.md#log-pass):

      ```bash
      yc iot device password add --device-name <имя_устройства>
      ```

      Команда предложит ввести пароль. Требования к паролю:

      * пароль должен содержать цифры, буквы в верхнем и нижнем регистре, специальные символы;
      * длина пароля — не менее 14 символов.

      Результат:

      ```text
      device_id: b9135goeh**********
      id: aoek49ghmk*********
      created_at: "2019-05-28T16:12:30.938Z"
      ```

   1. (Опционально) Добавьте реестру сертификат для аутентификации с помощью [сертификатов](../../concepts/authorization.md#certs):

      ```bash
      yc iot device certificate add \
         --device-name <имя_устройства> \
         --certificate-file <сертификат>
      ```

      Где:

      * `--device-name` — имя устройства;
      * `--certificate-file` — путь к публичному ключу сертификата, например `cert.pem`.

      Результат:

      ```text
      device_id: b9135goeh**********
      fingerprint: 589ce16050****
      certificate_data: |
         -----BEGIN CERTIFICATE-----
         MIIE/jCCAuagAwIBAgIJAPRA...
         -----END CERTIFICATE-----
      created_at: "2019-05-28T16:15:30.938Z"
      ```

   1. (Опционально) Добавьте [алиасы](../../concepts/topic/usage.md#aliases):

      ```bash
      yc iot device add-topic-aliases \
         --name <имя_устройства> \
         --topic-aliases <алиас>='<топик>'
      ```

      Пример:

      ```bash
      yc iot device add-topic-aliases \
         --name my-device \
         --topic-aliases events='$devices/are0ej5kpik1********/events'
      ```

      Результат:

      ```text
      id: aoek49ghmk*********
      registry_id: b91ki3851h**********
      created_at: "2019-05-28T16:17:30.938Z"
      name: <имя_устройства>
      topic_aliases:
        <алиас>: <топик>
      status: ACTIVE
      ```

- Terraform {#tf}

   [Terraform](https://www.terraform.io/) позволяет быстро создать облачную инфраструктуру в Yandex Cloud и управлять ею с помощью файлов конфигураций. В файлах конфигураций хранится описание инфраструктуры на языке HCL (HashiCorp Configuration Language). При изменении файлов конфигураций Terraform автоматически определяет, какая часть вашей конфигурации уже развернута, что следует добавить или удалить.
   
   Terraform распространяется под лицензией [Business Source License](https://github.com/hashicorp/terraform/blob/main/LICENSE), а [провайдер Yandex Cloud для Terraform](https://github.com/yandex-cloud/terraform-provider-yandex) — под лицензией [MPL-2.0](https://www.mozilla.org/en-US/MPL/2.0/).
   
   Подробная информация о ресурсах провайдера в документации на сайте [Terraform](https://www.terraform.io/docs/providers/yandex/index.html) или в [зеркале](../../../terraform/index.md).

   Если у вас еще нет Terraform, [установите его и настройте провайдер Yandex Cloud](../../../tutorials/infrastructure-management/terraform-quickstart.md#install-terraform).
   
   
   Чтобы управлять инфраструктурой с помощью Terraform от имени сервисного аккаунта или пользовательских аккаунтов: аккаунта на Яндексе, федеративного аккаунта и локального пользователя, [аутентифицируйтесь](../../../terraform/authentication.md) соответствующим способом.
   
   {% note info %}

   Чтобы добавить сертификаты устройству, [подготовьте](../certificates/create-certificates.md) их заранее.

   {% endnote %}

   Чтобы создать устройство: 
   
   1. [Посмотрите список реестров](../registry/registry-list.md#registry-list), в которых можно создать устройство, или [создайте новый реестр](../registry/registry-create.md).

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

      * `yandex_iot_core_device` — параметры устройства:

         * `registry_id` — идентификатор реестра, в котором создается устройство.
         * `name` — имя устройства.
         * `description` — описание устройства.
         * `aliases` — алиасы топиков. Подробнее в [Создание алиаса](alias/alias-create.md).
         * `passwords` — список паролей для аутентификации с помощью [логина и пароля](../../concepts/authorization.md#log-pass).
         * `certificates` — список сертификатов для аутентификации с помощью [сертификатов](../../concepts/authorization.md#certs).

      {% note info %}

      Используйте только один из двух способов аутентификации.

      {% endnote %}

      Пример структуры ресурса в конфигурационном файле:
      
      ```
      resource "yandex_iot_core_device" "my_device" {
        registry_id = "<идентификатор_реестра>"
        name        = "test-device"
        description = "test device for terraform provider documentation"
        
        aliases = {
          "some-alias1/subtopic" = "$devices/{id}/events/somesubtopic",
          "some-alias2/subtopic" = "$devices/{id}/events/aaa/bbb",
        }
        
        passwords = [
          "<пароль>",
        ]
        
        certificates = [
          file("<путь_к_файлу_с_сертификатом>")
        ]
      }
      ```
      
      Подробнее о ресурсах, которые можно создать с помощью Terraform, в [документации провайдера](../../../terraform/index.md).
      
   1. Проверьте корректность конфигурационных файлов.
      
      1. В командной строке перейдите в папку, где вы создали конфигурационный файл.
      1. Выполните проверку с помощью команды:
         ```
         terraform plan
         ```
      Если конфигурация описана верно, в терминале отобразится список создаваемых ресурсов и их параметров. Если в конфигурации есть ошибки, Terraform на них укажет. 
         
   1. Разверните облачные ресурсы.

      1. Если в конфигурации нет ошибок, выполните команду:
         ```
         terraform apply
         ```
      1. Подтвердите создание ресурсов.
      
      После этого в указанном каталоге будут созданы все требуемые ресурсы. Проверить появление ресурсов и их настройки можно в [консоли управления](https://console.yandex.cloud).

- API {#api}

  Чтобы создать устройство, воспользуйтесь методом REST API [create](../../api-ref/Device/create.md) для ресурса [Device](../../api-ref/Device/index.md) или вызовом gRPC API [DeviceService/Create](../../api-ref/grpc/Device/create.md).

{% endlist %}