Minio.error.S3Error: Операция S3 не удалась; код: AccessDenied с ключом доступа пользователя root

У меня есть кластер docker с несколькими контейнерами, такими как minio в качестве хранилища файлов и backend на django, и это выглядит примерно так:

  files:
    image: minio/minio
    container_name: files
    env_file: .env
    command: server /data --console-address ":9001"
    healthcheck:
      test: curl -I ${MINIO_EXTERNAL_ENDPOINT}/minio/health/live
      interval: 5s
      timeout: 5s
      retries: 5
    volumes:
      - s3:/data
    ports:
      - 9000:9000
      - 9001:9001

  backend:
    build: ./backend
    container_name: backend
    env_file: .env
    volumes:
      - ./scripts/backend:/app/scripts
    healthcheck:
      test: curl --fail ${BACKEND_HC} || exit 1
      interval: 10s
      timeout: 5s
      retries: 5
    ports:
      - 8000:8000
    depends_on:
      files:
        condition: service_healthy

Все было хорошо до сегодняшнего дня, когда мой SSD умер и я был вынужден использовать более старый. На нем всего 119 Гб «реального» пространства, поэтому я сделал Troubleshoot -> Purge Data в docker desktop (будь ты проклят, wsl/docker). А затем клонировал свой проект, ожидая, что он запустится как обычно. И тут я столкнулся с ошибкой, указанной в заголовке. Вот полезная часть трассировки стека:

backend  | [2024-11-13 15:50:41 +0700] [13] [INFO] Worker exiting (pid: 13)
backend  | [2024-11-13 15:50:41 +0700] [14] [ERROR] Exception in worker process
backend  | Traceback (most recent call last):

...

backend  |     application = get_wsgi_application()
backend  |                   ^^^^^^^^^^^^^^^^^^^^^^
backend  |   File "/usr/local/lib/python3.11/site-packages/django/core/wsgi.py", line 12, in get_wsgi_applicati
on
backend  |     django.setup(set_prefix=False)
backend  |   File "/usr/local/lib/python3.11/site-packages/django/__init__.py", line 24, in setup
backend  |     apps.populate(settings.INSTALLED_APPS)
backend  |   File "/usr/local/lib/python3.11/site-packages/django/apps/registry.py", line 124, in populate     
backend  |     app_config.ready()
backend  |   File "/usr/local/lib/python3.11/site-packages/django_minio_backend/apps.py", line 31, in ready    
backend  |     mbs = MinioBackendStatic()
backend  |           ^^^^^^^^^^^^^^^^^^^^
backend  |   File "/usr/local/lib/python3.11/site-packages/django_minio_backend/models.py", line 482, in __init
__

backend  |     self.check_bucket_existence()  # make sure the `MINIO_STATIC_FILES_BUCKET` exists
backend  |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
backend  |   File "/usr/local/lib/python3.11/site-packages/django_minio_backend/models.py", line 408, in check_
bucket_existence
backend  |     if not self.client.bucket_exists(self.bucket):
backend  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
backend  |   File "/usr/local/lib/python3.11/site-packages/minio/api.py", line 696, in bucket_exists
backend  |     self._execute("HEAD", bucket_name)
backend  |   File "/usr/local/lib/python3.11/site-packages/minio/api.py", line 440, in _execute
backend  |     return self._url_open(
backend  |            ^^^^^^^^^^^^^^^
backend  |   File "/usr/local/lib/python3.11/site-packages/minio/api.py", line 423, in _url_open
backend  |     raise response_error
backend  | minio.error.S3Error: S3 operation failed; code: AccessDenied, message: Access denied, resource: /loc
al-static, request_id: 18077B04951EF538, host_id: dd9025bab4ad464b049177c95eb6ebf374d3b3fd1af9251148b658df7ac2e
3e8, bucket_name: local-static

Как видите, minio пытается проверить, существует ли ведро local-static, но не может этого сделать. Единственные учетные данные, которые я использую, - это доступ пользователя root/секретные ключи, поэтому я никак не могу получить отказ в доступе. Я никогда не использовал никаких политик, так что настраивать нечего, поэтому я понятия не имею, что нужно исправить

Хорошо, я просто яростно удалил проект и очистил все данные в докере, затем клонировал и собрал его снова, и эта проблема исчезла.

Вернуться на верх