Enable Redshift imports

This documentation is for the CARTO Self-Hosted Legacy Version. Use only if you've installed this specific version. Explore our latest documentation for updated features.

To import data into Redshift through CARTO Self-Hosted, follow these step-by-step instructions.

This requires access to an AWS account and an existing accessible Redshift endpoint.

  1. Create an AWS IAM user with programmatic access. Take note of the user's ARN, Key ID and Key secret.

  2. Create an AWS S3 Bucket:

    • ACLs should be allowed.

    • If server-side encryption is enabled, the user must be granted with permissions over the KMS key following the AWS documentation.

  3. Create an AWS IAM role with the following settings:

    1. Trusted entity type: Custom trust policy.

    2. Custom trust policy: Make sure to replace <your_aws_user_arn>.

    {
      "Version": "2012-10-17",
      "Statement": [
          {
              "Effect": "Allow",
              "Principal": {
                  "AWS": "<your_aws_user_arn>"
              },
              "Action": [
                  "sts:AssumeRole",
                  "sts:TagSession"
              ]
          }
      ]
    }
    1. Add permissions: Create a new permissions' policy, replacing <your_aws_s3_bucket_name>.

    {
       "Version": "2012-10-17",
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "s3:ListBucket",
               "Resource": "arn:aws:s3:::<your_aws_s3_bucket_name>"
           },
           {
               "Effect": "Allow",
               "Action": "s3:*Object",
               "Resource": "arn:aws:s3:::<your_aws_s3_bucket_name>/*"
           }
       ]
    }
  4. Configure your CARTO Self-Hosted deployment:

Add the following lines to your customer.env file:

IMPORT_AWS_CUSTOM_BUCKET_ROLE_ARN='<AWS_CUSTOM_ROLE_ARN>'
IMPORT_AWS_ACCESS_KEY_ID='<AWS_ACCESS_KEY_ID>'
IMPORT_AWS_SECRET_ACCESS_KEY='<AWS_ACCESS_KEY_SECRET>'
  1. Update your installation to apply the changes.

  2. Configure Redshift Integration in CARTO:

    1. Log into your CARTO Self-Hosted, go to Data Explorer > Connections > Add new connection and create a new Redshift connection.

    2. Then go to Settings > Advanced > Integrations > Redshift > New, introduce your S3 Bucket name and region and copy the policy generated.

    3. From the AWS console, go to your S3 > Bucket > Permissions > Bucket policy and paste the policy obtained in the previous step in the policy editor.

    4. Go back to the CARTO Self-Hosted (Redshift integration page) and check the I have already added the S3 bucket policy box and click on the Validate and save button.

    5. Go to Data Exporer > Import data > Redshift connection and you should be able to import a local dataset to Redshift.

  3. Import Data to Redshift:

    1. Go to Data Explorer > Import data > Redshift connection. Now, you should be able to import a local dataset to Redshift! 🎉

Last updated