[Документация Yandex Cloud](../../../index.md) > [Yandex Cloud Stackland](../../index.md) > [Пошаговые инструкции](../index.md) > Базы данных > Iceberg REST Catalog > Создать каталог

# Создать каталог

Если у вас есть [проект](../projects/create-project.md), вы можете создать в нем каталог [Iceberg REST Catalog](../../concepts/components/rest-catalog.md).

Перед созданием каталога убедитесь, что бакет, на который ссылается параметр `spec.stacklandStorage.bucketRef`, уже существует. Чтобы создать бакет, воспользуйтесь инструкцией [Создать бакет](../storage/create-bucket.md).

{% list tabs group=instructions %}

- CLI {#cli}

  1. Если проект еще не создан, то создайте его: `kubectl create namespace <название проекта>`.
  1. Создайте файл ресурса `RestCatalog`. Например, с помощью команды `touch restcatalog.yaml`.
  1. Откройте файл и вставьте конфигурацию ниже:

      ```yaml
      apiVersion: restcatalog.stackland.yandex.cloud/v1alpha1
      kind: RestCatalog
      metadata:
        name: analytics                    # Имя каталога; уникально в пределах кластера
      spec:
        allowedLocations:                  # Разрешенные пути хранения данных таблиц (минимум один)
          - "s3://analytics-bucket/wh/"
        stacklandStorage:
          bucketRef: analytics-bucket      # Ссылка на существующий бакет (Bucket CR)
        defaultBaseLocation: "s3://analytics-bucket/wh/"   # Опционально; входит в allowedLocations
        defaultNamespace:                  # Опционально; массив сегментов пространства имен
          - analytics
          - reporting
        properties:                        # Опционально; дополнительные параметры каталога
          some-key: some-value
        declaredPrincipalRoles:            # Опционально; группы пользователей каталога
          - name: analytics-admin
        catalogRoles:                      # Опционально; роли каталога с привилегиями
          - name: analytics-admin-all
            principalRoles:
              - analytics-admin
            catalog:                       # Одна из веток: catalog, namespace, table или view
              privileges:
                - CATALOG_MANAGE_CONTENT
      ```

  1. Примените манифест: `kubectl apply -f restcatalog.yaml -n <название проекта>`. При необходимости можно прописать название проекта в параметр ресурса `metadata.namespace` и не использовать в команде.


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

  1. Если вы еще не открыли проект, выберите проект.
  1. В левом меню выберите **Iceberg REST Catalog**.
  1. На вкладке **Каталоги** нажмите **Создать каталог**.
  1. Заполните поля:

      * **Имя** — имя каталога. После создания имя не меняется.
      * **Имя бакета** — выберите существующий бакет из списка или создайте новый.
      * **Разрешенные пути хранения** — укажите хотя бы один путь вида `s3://<имя бакета>/...`. При необходимости добавьте несколько путей.
      * **Базовый путь по умолчанию** — выберите один из разрешенных путей или оставьте поле пустым.
      * **Пространство имен по умолчанию** — укажите сегменты пути при необходимости.
      * **Дополнительные параметры** — задайте пары «ключ — значение» при необходимости.

  1. В блоке **Группы пользователей** добавьте имена групп пользователей каталога.
  1. В блоке **Роли каталога** при необходимости добавьте роли. Для каждой роли укажите имя, группы пользователей, тип охвата (**Каталог**, **Пространство имен**, **Таблица** или **Представление**) и привилегии.
  1. Нажмите **Создать**.

{% endlist %}