hf-cloud-sagemaker-iam-preflight
hf-cloud-sagemaker-iam-preflight — это предварительная проверка IAM для задач Amazon SageMaker. Навык нужен перед созданием endpoint, model, training job и другого ресурса, которому требуется execution role. Такая роль передаётся сервису SageMaker: сервис использует её, чтобы читать артефакты моделей из S3, получать serving-контейнеры из ECR и записывать журналы в CloudWatch. Главная цель навыка — не дать автоматизации сразу вызвать iam:CreateRole и получить предсказуемый AccessDenied от SSO-пользователя или другой учётной записи без права создавать IAM-ресурсы. Сначала нужно установить, какая роль уже существует и пригодна для SageMaker, и только потом рассматривать создание новой. Рабочий порядок начинается с явно переданного имени роли или ARN. Скрипт check_role.py проверяет именно указанную роль и при успехе выводит её ARN; при ошибке он сообщает причину, а не пытается молча исправить конфигурацию. Если роль не указана, тот же помощник ищет роли с распространёнными именами вроде AmazonSageMaker-ExecutionRole-* и SageMakerExecutionRole*. Кандидаты ранжируются по последней активности, потому что недавно использованная роль вероятнее соответствует текущей конфигурации аккаунта и может иметь нужную политику для ECR. AWS иногда не возвращает RoleLastUsed вообще. В таком случае навык использует дату создания и предпочитает более новую роль. Этот порядок снижает риск выбрать старый, забытый ресурс только из-за алфавитной сортировки. Роль считается пригодной в узком смысле этого preflight, если она существует и её trust policy разрешает сервису sagemaker.amazonaws.com выполнить sts:AssumeRole. Проверка не пытается заранее симулировать все разрешения роли: полный анализ прав через iam:SimulatePrincipalPolicy вынесен за пределы навыка, а фактическая ошибка на этапе запуска должна показать недостающую операцию. В сопутствующем шаблоне минимальные права сгруппированы вокруг чтения объекта и списка бакета S3, получения образов из ECR, а также журналов и метрик CloudWatch. Эти сведения помогают отделить проблему доверия к роли от проблемы прикладных permissions. Если подходящей роли нет, create_role.py может создать её только в среде, где вызывающий пользователь действительно имеет IAM-права. Имя роли передаётся первым аргументом, а имя бакета модели можно передать вторым, чтобы ограничить S3-доступ конкретным бакетом; без бакета скрипт предупреждает о необходимости последующей настройки. Для SSO-сценария навык рекомендует остановиться и запросить у администратора ARN готовой роли либо права iam:CreateRole, iam:AttachRolePolicy и iam:PutRolePolicy. Он не предлагает перебирать случайные IAM-операции после AccessDenied. Помощники написаны на Python и запускаются одинаково через python3 на macOS/Linux или python на Windows, но должны выполняться в том shell, где работает AWS CLI и доступен тот же профиль, регион, SSO-сеанс и цепочка credentials. На Windows нельзя прятать запуск в WSL, Git Bash или другой Bash-обёртке, если она не видит нативную AWS-конфигурацию. Навык проверяет готовность execution role, а не гарантирует полный набор бизнес-разрешений и не заменяет итоговую проверку конкретного SageMaker deployment или training job.
Для чего подходит
- Проверка execution role перед SageMaker training
- Подготовка роли для SageMaker endpoint
- Диагностика AccessDenied при IAM-подготовке
Установка
Сначала прочитайте SKILL.md и scripts в исходном репозитории. Затем выполните команду в каталоге проекта:
npx skills add https://github.com/huggingface/skills/tree/main/skills/hf-cloud-sagemaker-iam-preflight