3

匿名ユーザーがオブジェクトをアップロードし、S3 バケットにフォルダーを作成できるサンプル Web ページがあります。

残念ながら、これを行う前に特定のバケット ポリシーや ACL を設定していませんでした。

現在、匿名ユーザーがフォルダーを作成し、(root ユーザーとして) ダウンロードまたはアクセスできないオブジェクトをアップロードしたという問題があります。より多くのユーザーがオブジェクトをアップロードできるようになる前に、新しいバケット ポリシーを設定する予定ですが、現時点では、anonymous が所有するこれらの現在のオブジェクトにアクセスする必要があります。

誰かが私にこれを行う方法を教えてもらえますか?

4

2 に答える 2

4

「匿名ユーザー」とは、「認証されていないユーザー」を意味しますか? その場合、2 つのオプションがあります (以下の #1 と #2)。そうでない場合は、選択肢が 1 つあります (以下の #1)。もちろん、これはすべて、アップローダー自身にこれらのオブジェクトの ACL を変更するよう説得できないことを前提としています。

  1. オブジェクトを削除します。バケットの所有者は、いつでもオブジェクトを削除できます (そして、それらに対する支払いを停止できます)。

  2. オブジェクト所有者になり、バケット所有者 (あなた) にフル コントロールを付与します。誰でも認証されていないユーザーになることができるため、オブジェクトの所有者になります。

node.js と AWS JavaScript SDK を使用して bkt/cat.jpg に対して #2 を実行する方法の例を次に示します。このコードは、認証されていないユーザーとして putObjectAcl を呼び出し、バケット所有者 (あなた) にオブジェクトを完全に制御できるようにします。

var aws = require('aws-sdk');
var s3 = new aws.S3();
var p = { Bucket: 'bkt', Key: 'cat.jpg', ACL: 'bucket-owner-full-control' };
s3.makeUnauthenticatedRequest('putObjectAcl', p, function(e,d) {
  if (e) console.log('err: ' + e);
  if (d) console.log('data: ' + d);
});

残念ながら、awscli は認証されていない S3 呼び出しをサポートしていないようです。それ以外の場合は、それを使用してオブジェクトの ACL を変更することを提案します。

既定のACLである bucket-owner-full-control により、オブジェクトの所有者バケットの所有者の両方に完全な制御が与えられることに注意してください。

于 2015-02-08T01:27:47.427 に答える
0

AWS マネジメント コンソールへのアクセスに使用している Identity and Access Management (IAM) ユーザーのポリシーを確認してください。管理者またはパワー ユーザーのポリシー設定がある場合、AWS アカウントに関連付けられたすべての Amazon S3 バケット内のオブジェクトに完全にアクセスできます。

S3 マネジメント コンソールなどの認証された方法でオブジェクトにアクセスする必要があります。

アカウントのrootユーザーを使用している場合は、S3 バケットとその内容にも完全にアクセスできます。日常的に root ユーザーを使用することはお勧めしません。なぜなら、root ユーザーにはアカウントへの完全なアクセス権があり、危険にさらされると危険だからです。代わりに、root アカウントを使用して、より簡単に管理できる IAM で管理ユーザーを作成してください。 (例: パーミッションの変更、キーのローテーション)。

それでもオブジェクトを表示できない場合は、オブジェクトを選択し、[アクション] メニューから[開く]を選択して、オブジェクトにアクセスできることを確認してください。これにより、ファイルを開く認証済み URL が作成されます。オブジェクトのプロパティ ウィンドウに表示されたリンクをクリックするだけでは、認証のない URL が使用され、失敗する可能性があります。

于 2015-01-18T19:54:09.427 に答える