2016-04-14 10 views
1

私はIonic Frameworkを使用しており、Cordova File Transfer Pluginを使用してS3バケットにファイルをアップロードしたいとします。すべての例では、POSTメソッドを利用している...Amazon S3 - POSTリクエストのバケットポリシー

https://forum.ionicframework.com/t/cordova-filetransfer-upload-image-to-aws-s3/20051/2 http://coenraets.org/blog/2013/09/how-to-upload-pictures-from-a-phonegap-app-to-amazon-s3/

  1. は、私は、Amazon S3のみPUT、以下のとおりバケットに直接適用することができるバケットポリシーに対するオブジェクト権限をGETしていることに気づきました:上記のリンクで http://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html

例は、コンソールにあるAmazon S3のポリシージェネレータのドロップダウンによって見つけることができます。そのドロップダウンから、PostObjectに対する同等の「アクション」(Bucket Policyコンテキストで定義されているアクション)がないことに気付きました。

ここに何か不足していますか? バケットポリシー(POSTメソッドを許可)を作成する必要はありませんか?AND/これを可能にするユーザーポリシーを作成します。

  1. また、上記のAND/OR部分に明快さを使用することもできます。私は、noobプログラマであるので、バケツとユーザーポリシーの両方にそれを適用して安全性を高めようとしていました。
  2. 私はPOSTリクエスト(リンクhttp://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-authentication-HTTPPOST.htmlのように)と共に送信されたPOSTポリシーがあることを理解しています。これは、バケツポリシーセクションで単純に定義されているのとは異なり、要求と共にポリシーが送信されるため、GETのバケットポリシーとPUTとは異なるように見えます。 POSTで送信されるポリシー(リンクごと)も、バケットポリシーとは異なる形式です。したがって、混乱。

私はまだPOSTリクエストを送信しようとしていませんが、それは別の日の仕事だと思います。誰かがこれをクリアするのを助けることができれば、それは素晴らしいだろう!

答えて

2

ここに何か不足していますか?

はい、いいえ。

POST動詞を使用しても、実際にオブジェクトを作成しているという事実は変わりません。適切なs3:Put*権限が必要です。

s3:PutObjectおよび​​特に。

オブジェクトを作成してそのaclを設定する権限をIAMユーザーが持っている場合、そのユーザーはその目的を達成するための要求に署名する必要があります。PUTまたはPOSTのいずれかです。比較のために、依然としてHEAD要求を送信することは、s3:GetObjectを必要とすると考えてください。

0

バケットにPOSTポリシーを追加することは間違いありません。ここ 詳細:ここにいくつかの例のバケットPOSTポリシーにhttp://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-HTTPPOSTConstructPolicy.html:あなたの2番目の質問に関してhttp://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-post-example.html

、あなたはバケットポリシーと同じ効果を持つIAMユーザーのユーザーレベルのポリシーを、作成することができます正しいです。より強力に、バケット、ユーザー、およびグループポリシーを一緒に使用して、効率的な方法でリソースへのアクセスを制御できます。

+0

ありがとうございますhephalump!申し訳ありませんが、私は明確にする必要があります:はい、リンクに見られるようなポリシーはありますが、ここで見られるこれらのバケツポリシーとは異なります。[リンク](http://docs.aws.amazon.com/AmazonS3/latest/dev/example -bucket-policies.html)。 S3のAmazon Policy Generatorを使用してこれらのバケットポリシーを再現しましたが、ドロップダウンメニューでは、_POST_を表すアクションはありませんが、PUTおよびGETのアクションはありません。あなたはこの理由を知っていますか? POSTポリシーと他のポリシーとの違いはありますか?私は元の質問を更新します。ありがとう – njho

関連する問題