Amazon Quicksight can't connect to S3


I was recently interested in leveraging Amazon Quicksight to visualize a collection of data, as well as learn about another Amazon Web Services (AWS) service.
I set up my Quicksight account which is a little more involved than I am accustomed to for AWS services. I originally started using the .csv upload feature to load my data. This quickly became tedious and I wanted to leverage the fantastic integration offered amongst AWS services. I decided to try my hand at using an S3 bucket to store the raw data.

Configure Amazon Quicksight Roles

This was not as straightforward as I was expecting. I first had to configure the IAM role to allow Quicksight to access S3. Quicksight can manage this policy on its own if you allow it to do so. Being relatively inexperienced with the finer nuances of IAM users/roles I accidentally deleted the Quicksight managed policies. I was then left scratching my head wondering why I couldn’t update any settings in Quicksight. After some reading I found that I had to manually delete the unattached policies in IAM. Quicksight was then able to generate its own required roles.
So if you are faced with the following error, have no fear as this guide will help you.

Double-check Amazon Quicksight Bucket Permissions

Before hunting down issues that may not even exist, it is often useful to inspect the easy and obvious configuration items first. We will ensure that Amazon Quicksight is actually allowed to access your bucket.
In Amazon Quicksight access the Account Management page by clicking on your profile in the upper-right hand corner of the screen and clicking Manage Quicksight.

 
On the Account Management page select Account settings from the left hand menu. The click the ‘Edit AWS permissions’ button.

 
This screen allows you to edit the AWS resources that Quicksight has read-only access to. In this case we want Quicksight to be able to access our data bucket. Make sure the Amazon S3 box is checked, then click ‘Choose S3 buckets’. 
 
A pop-up shows a list of Amazon S3 buckets available on your account. Make sure the box is checked next to the S3 bucket you wish to use. Finally click ‘Select buckets’ and give it a shot.

 

Double Check the Manifest!


I thought this would have solved my issues. So I put together a basic manifest file listing my S3 bucket as a datasource. I added this manifest file to the S3 bucket and made sure it was readable. I then gave Quicksight the URL to the manifest file. Unfortunately Quicksight was not able to connect. So…I double-checked all of the permissions, odd, Quicksight definitely shows that it has permission to access my test bucket.
Skip ahead through a couple hours of reading and poking about.
I read that errors in the manifest file can sometimes lead to a ‘unable to connect’ message. The file was formatted correctly and even passed validation using a JSON validator. I was originally using the S3 protocol in the links (s3://). I decided to insert the direct link offered up by the S3 console so that I could be absolutely sure that the manifest specifies the file correctly.
This time it worked. Below is the final manifest.json file used during testing. This is a minimal example to test that Amazon Quicksight can successfully connect to S3.

{
  "fileLocations": [{
    "URIPrefixes": [
      "s3://my-bucket/"
    ]
  }]
}
Posted in: AWS

Leave a Reply

Your email address will not be published. Required fields are marked *