Настроить политику доступа в организации SourceCraft

С помощью политики доступа можно задать ограничения для организации и ее ресурсов в виде кода (Configuration as Code). Конфигурация хранится в файле .sourcecraft/policies.yaml в ветке по умолчанию специального репозитория с названием .sourcecraft.

Важно

Политики доступа доступны только на платных тарифных планах.

Конфигурация .sourcecraft/policies.yaml

В примере включены все ограничения и задан список разрешенных сетей. Замените демонстрационные сети в ip_allowlist сетями вашей организации:

policies:
  admin_only_repository_creation: true
  anonymous_public_access_disabled: true
  public_visibility_changes_disabled: true
  non_federative_invitations_disabled: true
  ip_allowlist:
    - 192.0.2.0/24
    - 2001:db8::/32

Блок policies содержит список разрешенных сетей и следующие логические параметры:

Параметр

Ограничение при значении true

admin_only_repository_creation

Создавать репозитории могут только администраторы организации.

anonymous_public_access_disabled

Запрещен доступ к публичным ресурсам организации без аутентификации в браузере и при работе с Git по HTTP(S).

public_visibility_changes_disabled

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

non_federative_invitations_disabled

Запрещены приглашения нефедеративных пользователей (без идентификатора федерации), включая приглашения по электронной почте и никнейму. Подробнее на странице SAML-совместимые федерации удостоверений.

Чтобы включить ограничение, укажите в параметре значение true. Чтобы отключить — false. По умолчанию все ограничения отключены.

Примечание

После включения ограничительные политики применяются только к новым ресурсам и действиям.

Например, после включения политики public_visibility_changes_disabled ранее созданные публичные репозитории так и останутся публичными.

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

Список разрешенных сетей

Параметр policies.ip_allowlist задает список клиентских сетей, из которых разрешен доступ к ресурсам организации. Поддерживаются сети IPv4 и IPv6 в формате CIDR. Сети приводятся к каноническому виду, повторяющиеся записи отклоняются.

Важно

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

Если параметр ip_allowlist отсутствует или содержит пустой список, фильтрация по IP-адресам отключена. Чтобы отключить ранее настроенную фильтрацию, задайте ip_allowlist: [] внутри блока policies и сохраните изменения в ветку по умолчанию.

Особенности применения списка:

  • Список обновляется после обработки изменений, отправленных в ветку по умолчанию. При ошибке обновления сохраняются предыдущие правила.
  • От проверки освобождаются запросы из настроенных сетей внутренних сервисов и отдельные системные фоновые операции.
  • Запросы по подписанным ссылкам проходят проверку IP-адреса, за исключением подписанных ссылок Git LFS. По уже выданной ссылке Git LFS можно получить файл с IP-адреса вне списка разрешенных сетей. Получить новую ссылку с такого адреса нельзя.
  • Ранее закешированные публичные RAW-файлы и архивы репозиториев могут оставаться доступными до истечения срока кеширования — до пяти минут.
  • Если организация не продлевает платный тарифный план, доступ перестает ограничиваться.

Сетевые ограничения для CI/CD, AI-коллег и сканирования безопасности

Фильтрация по IP-адресам распространяется на CI/CD. Если сети воркеров не включены в список разрешенных, CI/CD перестает работать. Вместе с CI/CD перестают работать AI-коллеги и сканирование безопасности.

Для выполнения CI/CD на пользовательских воркерах добавьте в policies.ip_allowlist сети, из которых эти воркеры обращаются к SourceCraft.

Чтобы восстановить работу CI/CD на воркерах, предоставляемых SourceCraft, AI-коллег и сканирования безопасности, добавьте в policies.ip_allowlist публичные диапазоны IP-адресов Yandex Virtual Private Cloud. Воркеры SourceCraft используют адреса из этих диапазонов.

Важно

Эти диапазоны используются также виртуальными машинами других пользователей Yandex Cloud. Если добавить диапазоны целиком, запросы с таких виртуальных машин пройдут проверку по списку разрешенных сетей. Это ослабляет сетевое ограничение доступа к ресурсам организации.

Чтобы настроить политику доступа в организации SourceCraft:

  1. Создайте репозиторий .sourcecraft.
  2. Сконфигурируйте политику доступа.
  3. Проверьте конфигурацию.

Создать репозиторий .sourcecraft

Если в организации еще нет репозитория .sourcecraft, создайте его. Для настройки политик вам потребуется доступ к этому репозиторию и возможность вносить изменения в его ветку по умолчанию.

Сконфигурировать политику доступа

  1. Откройте главную страницу SourceCraft.
  2. Перейдите на вкладку Организации и выберите организацию.
  3. На странице организации в разделе Настройки перейдите в секцию Конфигурации.
  4. На карточке Политики организации нажмите Пустая конфигурация.
  5. Заполните файл .sourcecraft/policies.yaml по примеру конфигурации, выбрав нужные ограничения.
  6. В правом верхнем углу нажмите Сохранить изменения.
  7. В открывшемся окне настройте параметры внесения изменений:
    • В поле Сообщение об изменениях укажите комментарий, который опишет внесенные изменения.
    • В блоке Ветка изменений выберите ветку по умолчанию.
    • В блоке Действие после сохранения изменений выберите Просто сохранить.
  8. Подтвердите внесение изменений.
  1. Склонируйте репозиторий .sourcecraft и перейдите в его каталог.

  2. Переключитесь на ветку по умолчанию:

    git switch <ветка_по_умолчанию>
    
  3. Создайте каталог и файл конфигурации:

    mkdir -p .sourcecraft
    nano .sourcecraft/policies.yaml
    
  4. Заполните файл по примеру конфигурации, выбрав нужные ограничения, и сохраните его.

  5. Добавьте файл в индекс Git, сделайте коммит и отправьте изменения в ветку по умолчанию:

    git add .sourcecraft/policies.yaml
    git commit -m "Configure organization access policies"
    git push origin <ветка_по_умолчанию>
    

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

Проверить конфигурацию

  1. На странице организации откройте раздел Настройки → Конфигурации.
  2. Найдите карточку Политики организации и убедитесь, что отображается статус Активен. Если конфигурация содержит ошибки, исправьте файл и сохраните изменения в ветку по умолчанию.

Чтобы изменить политики, отредактируйте файл .sourcecraft/policies.yaml в репозитории .sourcecraft и сохраните изменения в ветку по умолчанию.

Полезные ссылки