Обслуживание статических файлов Django из частного ведра S3 с помощью CloudFront
Я использую Django 3.2.16 и Python 3.7.3. Я хочу обслуживать мои статические файлы Django из частного ведра AWS S3. Я использую django-storages 1.13.1 и boto3 1.24.85. Я следовал этой статье: https://shrinidhinhegde.medium.com/how-to-serve-django-static-files-in-a-production-environment-from-a-private-s3-bucket-using-aee840a5a643
У меня настроена инфраструктура S3 и CloudFront. Однако у меня проблемы с AWS_CLOUDFRONT_KEY и AWS_CLOUDFRONT_KEY_ID в моем settings.py.
Я использую python-decouple 3.3. Я сгенерировал закрытый и открытый ключи с помощью 'openssl genrsa -out private_key.pem 2048' и 'openssl rsa -pubout -in private_key.pem -out public_key.pem' из окна cygwin на моем ПК с Windows. В моем .ini файле я ввел эти два ключа следующим образом:
AWS_CLOUDFRONT_KEY=-----BEGIN RSA PRIVATE KEY----- MIIEogIBAAKCAQEAn05f+B/dcarBHa4hTyPCSYgP9x39qnNN74yLDmy4QGw8MaRaB lftda77PNuwj/DTjUc59YPlMM8HIS9D436I3ngPEnhn5B3ojfu80xr5zCIZXIynW d827CKjKjaputHQu5L2ef13YYpMqUIaaLuxhvKyVcpla1c1gBPVOlyAe9QWJdazq SrkyHO3DakBfK2bySr433EkYTDx0AwLJ4iVBAuo71pYgRXipJ+G84d9q1kAPK8RU
...
UOb3kifExjFSsmtAUgfmog99HOgcdxDkHcMR/FR/0jz6ji0gsE/G4nsQioYYY4Hq
bxnZAoGAG/sVbReKOpcHQo4bxJ+F4SzjyN+TQF7rNI3qgUe6S7xlHVsuzPgwPPrv
q2Ax8mi24weX4VdxmXupT1rZ+DpNQN2K6YPtn/kaP93oh7dPpoMiC3jmNKUO3Zkr
jbj6BO/UbcvI7noxgMTTCjSCHs2/VE6tuOkS635AH6HjO1Ag6i4=
-----END RSA PRIVATE KEY-----
и
AWS_CLOUDFRONT_KEY_ID=-----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAn05f+B/dcarBHa4hTyPC
...
JlEKvnt+sVI5aBI0o9ylSvIHqpnYeN8vsRswRbLUYti9k5wCjrhmKZTH5PudPruw MQIDAQAB -----END ОТКРЫТЫЙ КЛЮЧ-----
Я использую табуляцию в начале каждой строки продолжения двух KEY в моем .ini файле, чтобы удовлетворить конфигурацию decouple. Открытый ключ был добавлен в CloudFront. Я считываю два ключа в свой файл settings.py с:
AWS_CLOUDFRONT_KEY = config('AWS_CLOUDFRONT_KEY')
AWS_CLOUDFRONT_KEY_ID = config('AWS_CLOUDFRONT_KEY_ID')
Это позволяет мне запустить приложение Django. Однако, когда я перехожу на веб-сайт, я получаю ошибку:
django.core.exceptions.ImproperlyConfigured: Для подписания URL-адресов cloudfront требуется бэкенд RSA. Поддерживаемыми бэкендами являются пакеты: cryptography и rsa.
Он не позволяет мне получить доступ к статическим файлам. Являются ли вкладки для многострочных ключевых записей в моем .ini файле причиной этой проблемы? Я неправильно генерирую ключи?