java.io.IOException: Server returned HTTP response code: 403 for URL -

Viewed 297

I am trying to access s3 object url via lambda and I am getting following exception.

java.io.IOException: Server returned HTTP response code: 403 for URL: https://rvs-rta-beta-na.s3.amazonaws.com/Jul-8018/eBooks/eBooksASINReport-EGFUS-SimpleHeader-P94M5TAN9BAYJX0W0FQ1-xls_99c13329-efa7-4084-ab70-5912a652316a_aggregatedLogs.csv: java.lang.RuntimeException
java.lang.RuntimeException: java.io.IOException: Server returned HTTP response code: 403 for URL: https://rvs-rta-beta-na.s3.amazonaws.com/Jul-8018/eBooks/eBooksASINReport-EGFUS-SimpleHeader-P94M5TAN9BAYJX0W0FQ1-xls_99c13329-efa7-4084-ab70-5912a652316a_aggregatedLogs.csv
    at com.amazon.metricadapterslambda.lambda.functions.ProcessRVSResults.ProcessRVSResultsHandler.handleRequest(ProcessRVSResultsHandler.java:187)
    at com.amazon.metricadapterslambda.lambda.functions.ProcessRVSResults.ProcessRVSResultsLambda.handleRequest(ProcessRVSResultsLambda.java:17)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
Caused by: java.io.IOException: Server returned HTTP response code: 403 for URL: https://bucketname.s3.amazonaws.com/test-123/abc/FILE_NAME.csv
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1894)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1492)
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:263)
    at java.net.URL.openStream(URL.java:1045)
    at com.amazon.metricadapterslambda.lambda.functions.ProcessRVSResults.ProcessRVSResultsHandler.getFailedRowDetailsFromRVS(ProcessRVSResultsHandler.java:204)
    at com.amazon.metricadapterslambda.lambda.functions.ProcessRVSResults.ProcessRVSResultsHandler.handleRequest(ProcessRVSResultsHandler.java:149)
    ... 5 more

Bucket Policy:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::ACCOUNTNuMBER:role/LAMBDAROLE"
            },
            "Action": [
                "s3:GetObject",
                "s3:PutObject"
            ],
            "Resource": "arn:aws:s3:::BUCKETNAME/*"
        }
    ]
}

Code:-

Trying to open the link using bufferedReader

    try (BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream(), StandardCharsets.UTF_8.name()))) 
1 Answers
Related