AWS S3バケット、アップロードされた画像ファイルにアクセスできるのは、個々のオブジェクトの権限を手動でパブリックに設定した後のみです

アヌープKジョージ

バケットを作成し、ウェブサイト開発サーバーからアップロードした画像をXMLファイルとして保存しました。バケットに移動して手動で公開すると、すべてのユーザーが利用できるようになり、そのファイルを取得できます。

ここで何が問題になるのでしょうか?

アップロードされた各ファイルを以下のように公開する ここに画像の説明を入力してください

設定しました access= objects can be public

Block all public access = False

CORS構成

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
    <AllowedOrigin>*</AllowedOrigin>
    <AllowedMethod>GET</AllowedMethod>
    <AllowedMethod>POST</AllowedMethod>
    <AllowedMethod>PUT</AllowedMethod>
    <AllowedMethod>DELETE</AllowedMethod>
    <ExposeHeader>ETag</ExposeHeader>
    <ExposeHeader>x-amz-meta-custom-header</ExposeHeader>
    <AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>

アップロードされた画像にアクセスしようとしたときの初期エラー

This XML file does not appear to have any style information associated with it. The document tree is shown below.
<Error>
<Code>InvalidRequest</Code>
<Message>The authorization mechanism you have provided is not supported. Please use AWS4-HMAC-SHA256.</Message>
<RequestId>XX</RequestId>
<HostId>XXZjXX</HostId>
</Error>
マーシン

バケットに移動して手動で公開すると、すべてのユーザーが利用できるようになり、そのファイルを取得できます。ここで何が問題になるのでしょうか?

手動で行う必要はありません。代わりに、バケット内のすべてのオブジェクト自動的に公開して読み取り可能にするために、バケットポリシーを追加できます。

例えば:

{
  "Version":"2012-10-17",
  "Statement":[
    {
      "Sid":"PublicRead",
      "Effect":"Allow",
      "Principal": "*",
      "Action":["s3:GetObject"],
      "Resource":["arn:aws:s3:::<your-bucket-name>/*"]
    }
  ]
}

また block public access settings無効にしておく必要があります。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ