2017-06-28 9 views
0

にアクセスすると403の原因となるため、この問題を一日中解決しており、この問題の原因を見つけることができません。AWS S3 SESによって生成されたMimeMessageファイルは、Java SDK

私は特定のサブドメインのすべての電子メールを特定のバケットに転送するアクションをSESに持っています。これらのメッセージは正常にダウンロードでき、コンソールで対話するときに必要なすべての情報が含まれていますが、Java SDKのgetObject()を使用して取得できません。

コードで同じキープレフィックスを使用していても、同じバケットから他のファイルをダウンロードできるため、SDKの資格情報が正しく機能することを確認できます。

これは、バケットポリシーが正しく設定されていることを証明しています。それはAWS-SES + publishing.us-」と定義されているので、私は、問題の根本的な原因は、所有者に関係していることを確信している

{ 
    "Sid": "EmailsAccess", 
    "Effect": "Allow", 
    "Principal": "*", 
    "Action": [ 
     "s3:DeleteObject", 
     "s3:GetObject" 
    ], 
    "Resource": "arn:aws:s3:::foo-bucket-foo/foo-prefix-foo/*" 
} 

:getObjectメソッドの許可を扱うエントリは次のようになりますSESによって生成された各ファイルに「east-1.prod」を追加します。なぜ私のコードが403を呼び起こすのでしょうか?ファイルの所有者を変更する方法はありますか?それともより洗練されたソリューションですか?

+0

代替所有者は通常ですが、オブジェクトにはACL「bucket-owner-full-control」が必要です。これらのオブジェクトにアクセスするには、バケットレベルでは 's3:ListBucket'、オブジェクトレベルでは' s3:GetObjectAcl'が必要です。推測、どのパーミッションについては、私はあなたのパーミッション - あなたのパーミッションが問題であると確信しています。 –

+0

彼らは 'bucket-owner-full-control' ACLがないことを確認できます。変更するためにSESを設定する方法はありますか、ファイルのアップロード時にACLの変更を自動化する方法はありますか? – SmashedBug

答えて

0

SDKで使用されているアカウントが、バケット所有者とは異なるアカウントを設定していて、特定のメッセージを表示する権限がないことがわかりました。

次に、this guideが問題を解決しましたが、別のルートに進むことにしましたが、バケットオーナーアカウントを使用してログインしようとしています。

関連する問題