Ошибка Access Denied при монтировании Amazon S3 — NetDrive

5 мин чтения troubleshooting amazon-s3
Casey
CaseyProduct Manager
Ошибка Access Denied на S3-диске, подключённом в NetDrive? Разбираем три частые причины: неверные учётные данные, нехватку прав IAM и конфликты политики бакета.

Вы монтируете бакет S3 в NetDrive, буква диска появляется в проводнике Windows, а затем любая операция с файлами возвращает «Access Denied». Диск отображается, но недоступен. Это происходит, когда учётным данным IAM, которые использует NetDrive, не хватает нужных действий S3 — или когда политика IAM корректна, но её переопределяет политика бакета.

NetDrive drive manager showing Google Drive, S3 and pCloud mounted as drive lettersMounted clouds appearing as native drives in Windows File Explorer

Монтируйте бакеты S3 как локальный диск

NetDrive показывает Google Drive, OneDrive, S3, SFTP, WebDAV и другие хранилища как обычные диски в Windows и macOS — без синхронизации и полной загрузки файлов.

  • Поддержка Amazon S3 и S3-совместимых хранилищ (Wasabi, MinIO и других)
  • Файловый браузер позволяет проверить доступ к бакету перед монтированием
  • Автоматическое определение региона S3 начиная с NetDrive 3.19.7
WindowsmacOS
Скачать NetDrive →

Бесплатный пробный период. Доступны бессрочная лицензия и подписка.

Почему на смонтированном диске S3 появляется Access Denied

Доступ к Amazon S3 регулируется двумя независимыми уровнями: политикой IAM, привязанной к пользователю или роли, чьи ключи доступа вы ввели, и политикой бакета, привязанной к самому бакету. Любой из уровней может отклонить операцию независимо от другого.

Для нормального монтирования и работы с бакетом NetDrive требуются как минимум следующие действия S3:

  • s3:ListBucket — для получения списка объектов и построения представления папок
  • s3:GetObject — для чтения содержимого файла при его открытии
  • s3:PutObject — для записи файлов обратно в бакет (только для монтирования с записью)
  • s3:DeleteObject — для удаления файлов со смонтированного диска (только для монтирования с записью)

Отсутствие нужного действия вызывает «Access Denied» именно на этой операции. Вы можете просматривать папку, но получать отказ при открытии файла, либо открывать файлы, но получать отказ при сохранении — оба случая говорят о частичном предоставлении прав IAM, а не о полном сбое учётных данных.

Менеджер дисков NetDrive показывает статус диска S3 для проверки состояния монтирования и соединения

Шаг 1: учётные данные, введённые в NetDrive

Начните с самих учётных данных. Одна переставленная местами буква в ключе доступа или устаревший секретный ключ дают те же симптомы «Access Denied», что и неверно настроенная политика IAM.

  1. Откройте NetDrive → нажмите на значок шестерёнки на вашем диске S3, чтобы открыть его настройки.
  2. Сравните Access Key ID посимвольно со значением, показанным в консоли AWS в разделе IAM → Users → [имя пользователя] → Security credentials. Копируйте и вставляйте значение, а не вводите его заново.
  3. Введите заново Secret Access Key. AWS никогда не показывает это значение после первоначального создания, поэтому при малейшем сомнении в его корректности создайте новую пару ключей в IAM и сразу обновите значения в NetDrive.
  4. Проверьте поле Region. Несовпадение региона — например, указание us-east-1, когда ваш бакет находится в eu-west-1 — направляет запросы не на тот конечный узел и возвращает ошибки 403. В NetDrive 3.19.7 добавлено автоматическое определение региона для новых подключений, но конфигурации дисков, созданные до обновления, по-прежнему хранят изначально введённое значение. При необходимости обновите регион вручную.

Исправив проблемы с учётными данными, нажмите Mount и попробуйте просмотреть папку, прежде чем переходить к уровню IAM.

Шаг 2: политика IAM — необходимые действия S3

Если учётные данные верны, но доступ по-прежнему отклоняется, значит в привязанной политике IAM не хватает одного или нескольких необходимых действий. Быстрее всего это подтвердить с помощью AWS IAM Policy Simulator.

В консоли AWS перейдите в IAM → Policy Simulator, выберите пользователя IAM, чьи ключи указаны в NetDrive, и проверьте s3:ListBucket для ARN вашего бакета (arn:aws:s3:::my-bucket) и s3:GetObject для ARN объектов (arn:aws:s3:::my-bucket/*). Если симулятор возвращает «Denied», добавьте политику, предоставляющую недостающие действия.

Минимальная политика для доступа на чтение и запись к одному бакету:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:ListBucket"
      ],
      "Resource": "arn:aws:s3:::my-bucket"
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
        "s3:PutObject",
        "s3:DeleteObject"
      ],
      "Resource": "arn:aws:s3:::my-bucket/*"
    }
  ]
}

Обратите внимание на два разных значения Resource: ListBucket относится к ARN самого бакета, тогда как GetObject, PutObject и DeleteObject относятся к объектам внутри него (/*). Объединение их в одну строку Resource — распространённая ошибка, которая незаметно нарушает получение списка объектов или доступ к ним.

Файловый браузер NetDrive показывает содержимое бакета S3 для проверки доступа на чтение без полного монтирования

Используйте File Browser NetDrive (доступен без монтирования), чтобы быстро проверить, работает ли доступ к объектам после обновления политики IAM. Он выполняет те же вызовы API, что и смонтированный диск, но без присвоения буквы диска, что делает его быстрым способом проверки при поиске неполадок.

Шаг 3: явные запреты в политике бакета

Разрешающая политика IAM переопределяется явным Deny в политике бакета. Перейдите в S3 → [ваш бакет] → Permissions → Bucket policy и найдите любые утверждения с "Effect": "Deny". Частые причины:

  • Ограничения по конечной точке VPC — политики, запрещающие запросы, поступающие не из определённой конечной точки VPC (aws:SourceVpc). Десктопная версия NetDrive подключается через публичный интернет, если вы не маршрутизируете трафик через VPN.
  • Списки разрешённых IP-адресов — политики с использованием aws:SourceIp, блокирующие запросы с публичного IP-адреса вашего компьютера.
  • Запрет незащищённого HTTP — утверждение, запрещающее запросы при aws:SecureTransport, равном false. Обычно это безвредно, поскольку NetDrive использует HTTPS для запросов к S3 (подтверждено начиная с версии 3.1.234), но стоит проверить, если политика бакета была написана с запасом.

Если вы обнаружили ограничивающее условие, применимое к вашему сценарию доступа, ослабьте условие или добавьте пользователя IAM в явное разрешение Allow с более высоким приоритетом.

Итог

Ошибки S3 «Access Denied» в NetDrive почти всегда сводятся к одной из трёх причин: неверные учётные данные, политика IAM без нужного действия или политика бакета с явным запретом. Проверяйте их в этом порядке — учётные данные исключить проще всего. Для монтирования других провайдеров объектного хранилища см. монтирование Amazon S3 на macOS или рабочий процесс DevOps с тестовыми данными S3 в NetDrive.

— Casey, NetDrive