s3バケット上のファイル(CSS JSファイル)をherokuで実行されているDjangoアプリケーションからアクセスできるようにしようとしています。
settings.pyが正しく構成されていると思います。
ただし、S3バケットのアクセス許可を変更しようとすると、アクセスが拒否されます。
corsを追加し、バケットポリシーを公開に設定しました。
最終的に、herokuからアプリケーションをロードすると、静的ファイルにアクセスしようとすると403エラーが発生します。
バケットポリシー:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AddPerm",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:*",
"Resource": "arn:aws:s3:::NameOfBucket/*"
}
]
}
COR構成:
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<AllowedHeader>Authorization</AllowedHeader>
</CORSRule>
</CORSConfiguration>
バケットにパブリックポリシーがある場合、このオプションは「パブリックアクセスとクロスアカウントアクセスをブロックする」と呼ばれます。これがTRUEの場合、バケットポリシーはバケット所有者にのみ適用されることを意味しました。
詳細については、以下を参照してください:AmazonS3ブロックパブリックアクセスの使用-AmazonSimple Storage Service
これらの4つの新しい設定は、コンテンツを公開しようとする際の追加の障害となるため、煩わしいと見なされる可能性がありますが、データの偶発的な公開を防ぐことで、多くの組織の多くの恥ずかしさを軽減できるでしょう。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加