2017-10-26 27 views
0

この質問は私自身の答えです。あなたの方針にJSONのこの作品を追加:AWS S3 getObjectExist()は403を返します。Forbidden

{ 
     "Sid": "AllowGetObjectExist", 
     "Resource": ["*"], 
     "Action": ["s3:ListBucket"], 
     "Effect": "Allow" 
    } 

(それはあなたがすでに「S3:GetObject関数」前提としています。あなたのポリシーで別の「シド」と行動を)

+0

このページとほぼ同じhttps://stackoverflow.com/questions/44256527/aws-s3-java-doesobjectexist-results-in-403-forbiddenこのページには正解も含まれています。私はすでに答えがなければ私の質問を削除します。 – user1648825

+0

doesObjectExistに 's3:ListBucket'が必要な場合は、getObjectMetadataを実行してオブジェクトが存在しない場合に例外をキャッチするよりも、各要求に対してより多くの$を支払っていることに注意してください。なぜその方法が一種のものであるかは不明です。無駄な、非効率なと思われる。 –

答えて

0

あなたはS3を追加する必要があります。のGetObjectこのメソッドは、リスト上でその名前を見つけるのではなく、「オブジェクトを取得」しようとします。

+0

"s3:GetObject"アクションがポリシーに既に存在すると仮定しました。しかし、このアクションだけで 'getObjectExist()'メソッドを使用することはできません。また、 "s3:ListBucket"アクションも必要です。理由を知らない。 – user1648825

関連する問題