seratch/AWScala

scala S3 client Credentials problems

j-kinyanjui opened this issue · 0 comments

This might have been solved before but I check old issues and did not find anything.

I'm configuring an S3 client like so.

  implicit val region: Region = Region.apply(current.configuration.getString("s3.region").getOrElse("eu-central-1"))

  val credentials: AWSCredentialsProvider = BasicCredentialsProvider(
    current.configuration.getString("aws.accessKeyId").get,
    current.configuration.getString("aws.secretKey").get
  )

  val config = new ClientConfiguration()
  config.setProtocol(Protocol.HTTP)

  implicit val s3: S3 = {
    val options: S3ClientOptions = S3ClientOptions.builder().setPathStyleAccess(true).build()
    val s3 = S3.apply(config, credentials)
    s3.setS3ClientOptions(options)
    s3
  }

  lazy val bucket: Bucket = {
    val bucketName: String = current.configuration.getString("s3.bucket").get
    s3.bucket(bucketName).get
  }

When I try and find the bucket, I get a 403 error. Where I'm I doing anything wrong? The exception is as follows:

com.amazonaws.services.s3.model.AmazonS3Exception: Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; Request ID: xxxxyyyyzzzz; S3 Extended Request ID: xxxxyyyyzzzz, S3 Extended Request ID: xxxxyyyyzzzz
	at com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleErrorResponse(AmazonHttpClient.java:1712)
	at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeOneRequest(AmazonHttpClient.java:1367)
	at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeHelper(AmazonHttpClient.java:1113)
	at com.amazonaws.http.AmazonHttpClient$RequestExecutor.doExecute(AmazonHttpClient.java:770)
	at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeWithTimer(AmazonHttpClient.java:744)
	at com.amazonaws.http.AmazonHttpClient$RequestExecutor.execute(AmazonHttpClient.java:726)
	at com.amazonaws.http.AmazonHttpClient$RequestExecutor.access$500(AmazonHttpClient.java:686)
	at com.amazonaws.http.AmazonHttpClient$RequestExecutionBuilderImpl.execute(AmazonHttpClient.java:668)
	at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:532)
	at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:512)
	at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:4921)
	at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:4867)
	at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:4861)
	at com.amazonaws.services.s3.AmazonS3Client.listBuckets(AmazonS3Client.java:978)
	at com.amazonaws.services.s3.AmazonS3Client.listBuckets(AmazonS3Client.java:984)
	at awscala.s3.S3$class.buckets(S3.scala:62)
	at awscala.s3.ConfiguredS3Client.buckets(S3.scala:350)
	at awscala.s3.S3$class.bucket(S3.scala:64)
	at awscala.s3.ConfiguredS3Client.bucket(S3.scala:350)