Enable Redshift imports (Helm)

For CARTO Self-hosted using Kubernetes and Helm

This documentation only applies to advanced Orchestrated container deployments using Kubernetes and Helm

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 customizations.yaml file:

    appConfigValues:
      importAwsRoleArn: "<your_aws_user_arn>"
    
    appSecrets:
      importAwsAccessKeyId:
        value: "<your_aws_user_access_key_id>"
      importAwsSecretAccessKey:
        value: "<your_aws_user_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?