Несколько дней назад появилась новость о том, что репозиторий пакетов Python PyPI (индекс пакетов Python) уже предоставляет возможность использовать новый безопасный метод публикации пакетов, что избавляет от необходимости хранить жесткие пароли и токены доступа к API во внешних системах (например, в GitHub Actions).
Новый метод аутентификации имеет название«Надежные издатели» и предназначен для решения проблемы выпуска вредоносных обновлений в результате взлома внешних систем и попадания предопределенных паролей или токенов в чужие руки.
Начиная с сегодняшнего дня, сопровождающие пакетов PyPI могут использовать новый, более безопасный метод публикации, который не требует долгоживущих паролей или токенов API для обмена с внешними системами.
Упоминается, что этот новый метод аутентификации обеспечивает значительные преимущества в плане удобства использования и безопасности по сравнению с другими традиционными методами аутентификации PyPI:
- удобство и простота использования: Благодаря доверенной публикации пользователям больше не нужно вручную создавать токены API в PyPI, копировать и вставлять их в своего поставщика CI. Единственный ручной шаг — настроить редактор в PyPI.
- Безопасность: обычные токены API PyPI являются долговечными, а это означает, что злоумышленник, скомпрометировавший выпуск пакета, может использовать его до тех пор, пока его законный пользователь не заметит и не отзовет его вручную. Точно так же загрузка с паролем означает, что злоумышленник может загрузить любой проект, связанный с учетной записью. Надежная публикация позволяет избежать обеих этих проблем: Срок действия выпущенных токенов истекает автоматически, и они ограничены только пакетами, в которые им разрешено загружать.
Относительно этого нового метода аутентификации упоминается, что основан на стандарте OpenID Connect (ОИДК), который использует токены аутентификации с ограниченным сроком обмена между внешними службами и каталогом PyPI для проверки операции публикации пакета вместо использования традиционного логина/пароля или постоянного API, созданного вручную с помощью токенов доступа.
«Надежная публикация» — это наш термин для использования стандарта OpenID Connect (OIDC) для обмена недолговечными токенами идентификации между доверенной сторонней службой и PyPI. Этот метод можно использовать в автоматизированных средах и устраняет необходимость использования комбинаций имени пользователя и пароля или сгенерированных вручную токенов API для аутентификации с помощью PyPI при публикации.
С другой стороны, также упоминается, что сопровождающие пакеты могут на стороне PyPI доверять идентификаторам, предоставленным внешним поставщикам OpenID (IdP), которые внешняя служба будет использовать для запроса неживых токенов PyPI.
Сгенерированные токены OpenID Connect подтверждают связь между проектом и контроллером, что позволяет PyPI выполнять дополнительную проверку метаданных, например проверку того, что опубликованный пакет связан с определенным репозиторием. Токены не являются постоянными, они привязаны к определенным API и автоматически истекают после короткого срока действия.
Вместо этого сопровождающие PyPI могут настроить PyPI так, чтобы он доверял удостоверению, предоставленному данным поставщиком удостоверений OpenID Connect (IdP). Это позволяет PyPI проверять и делегировать доверие этому удостоверению, которое затем уполномочено запрашивать у PyPI краткосрочные токены API с ограниченной областью действия. Эти токены API никогда не нужно хранить или совместно использовать, они автоматически меняются по истечении срока действия и обеспечивают проверяемую связь между опубликованным пакетом и его источником.
Сейчас умение пользоваться механизмом «Надежные издатели» Он уже реализован и работает. для контроллеров, запущенных в GitHub Actions. И последнее, но не менее важное: также упоминается, что в будущем ожидается совместимость с Trusted Publishers для других внешних служб.
В конце концов если вам интересно узнать об этом больше, вы можете проверить подробности По следующей ссылке.