Enable Redshift imports

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

  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>'
  5. Update your installation to apply the changes.

  6. 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.

  7. 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

Was this helpful?