Connectors and Connections > Data Ingestion and Replication connection properties > Amazon Redshift V2 connection properties
  

Amazon Redshift V2 connection properties

Create an Amazon Redshift V2 connection to read from or write data to Amazon Redshift.

Prepare for authentication

You can configure Default and Redshift IAM Authentication via AssumeRole authentication types in an Amazon Redshift V2 connection to connect to Amazon Redshift. Additionally, you need to complete the S3 staging prerequisites to access S3 resources. You can also configure encryption, if required, to connect to Amazon Redshift.
Note: Application ingestion and replication and database ingestion and replication tasks do not support Redshift IAM authentication via AssumeRole unless you use an EC2 instance to assume the role.
See the following sections for a summary of the authentication, staging, and encryption prerequisites.

Authentication prerequisites

Before you begin, you need to have a registered user account with Amazon Redshift.
Get the minimum required details from your Amazon Redshift account from the AWS Console for the authentication type that you want to configure, as listed in the following table:
Default authentication
Redshift IAM Authentication via Assume Role
  • - JDBC URL
  • - User name
  • - Password
  • - JDBC URL
  • - User name
  • - Database name
  • - Cluster identifier
  • - Redshift IAM role ARN*
*To use the Redshift IAM role ARN, configure the Redshift IAM role ARN with the required trust policies to generate temporary security credentials to access Amazon Redshift.

Staging prerequisites

To enable staging on Amazon S3 and to gain access to S3 resources when you read or write data, you need to configure the staging properties in the Amazon Redshift V2 connection.
The following table summarizes the staging options that you can configure in the connection for both default and Redshift IAM Authentication via AssumeRole authentication and the tasks that you need to perform to get the required details for S3 staging:
S3 staging options
Tasks
Generate temporary credentials for the IAM user who assumes the S3 IAM role to access S3 staging.
AWS configurations
Enable IAM users to assume an S3 IAM role and generate temporary credentials.
For instructions, see the following references:
Redshift V2 connection configurations
  • - Enter the value of the S3 IAM Role ARN.
  • - Enter the S3 Access Key ID and S3 Secret Access Key values.
Generate temporary security credentials for an EC2 instance that assumes an S3 IAM role to access S3 staging.
AWS configurations
Define an EC2 instance to assume an S3 IAM role and generate the temporary credentials for S3 staging.
Redshift V2 connection configurations
Configure the following minimum required properties:
  • - Enable Use EC2 Role to Assume Role.
  • - Enter the value of the S3 IAM Role ARN.
Generate the S3 access and secret access keys for the IAM user with access to the S3 bucket.
AWS configurations
To generate the credentials, perform the following tasks:
  1. 1Create a minimal Amazon IAM policy.
  2. 2Create an IAM user, assign the policy to that user, and then generate the S3 access key ID and S3 secret access key in the AWS console.
  3. For more information about how to create an IAM user and generate keys, see the AWS documentation.
Redshift V2 connection configurations
Enter the S3 Access Key ID and S3 Secret Access Key values.
Configure IAM authentication
AWS configurations
If you have an EC2 instance, and do not want to specify the keys or use the IAM role ARN, then assign the minimum policy to the EC2 with access to the S3 bucket.
For instructions, see Configure IAM authentication.
Redshift V2 connection configurations
In this case, you do not need to enable or specify any of the staging properties in the connection.

Encryption prerequisites

To configure client-side and server-side encryption for the Default authentication and Redshift IAM authentication via AssumeRole during staging, see Enable encryption.

Create a minimal Amazon IAM policy

To stage the data in Amazon S3, you need to create an IAM policy with the minimum required permissions to access the S3 resources.
You can either attach the policy to the IAM user and generate the S3 access key ID and S3 secret access keys to access S3 resources. Or, if you have an EC2 instance, you can assign the minimum policy to the EC2 instance to access the S3 bucket for staging.
You need the following minimum required permissions in the policy:
You can use the following sample Amazon IAM policy:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:DeleteObject",
"s3:ListBucket",
"s3:ListBucketMultipartUploads"
],
"Resource": [
"arn:aws:s3:::<bucket_name>/*",
"arn:aws:s3:::<bucket_name>"
]
}
]
}
Note: The Test Connection does not validate the IAM policy assigned to users. Hence, ensure that the policy assigned to the user is valid.

Configure IAM authentication

Configure AWS Identity and Access Management (IAM) authentication and create a minimal Amazon IAM policy for both the EC2 role and Redshift role.
For instructions, see the following How-to-Library article: Configuring AWS IAM Authentication

Configure an assume role for Amazon Redshift

To use the Redshift IAM role ARN, configure the Redshift IAM role ARN with the required trust policies to generate temporary security credentials to access Amazon Redshift.
You can use one of the following options to generate the temporary security credentials:
AWS configurations
Connection details
Option 1. Configure an AssumeRole to enable an IAM user.
To use the AssumeRole for the IAM user, specify the following IAM user details:
  • - Redshift Access Key ID
  • - Redshift Secret Access Key
  • - Redshift IAM Role ARN
Option 2. Define an EC2 instance to assume a Redshift IAM role.
To use the AssumeRole for Amazon EC2:
  • - Specify the Redshift IAM Role ARN value.
  • - Enable the Use EC2 Role to Assume Role check box.
For application ingestion and replication tasks and database ingestion and replication tasks, use Option 2 to have an EC2 role assume the Redshift IAM role.
For more information about configuring an AssumeRole, see the following How-to-Library article: Configure AssumeRole authentication for Amazon Redshift V2 Connector
Generate the temporary security credentials based on your requirement.

Configure an assume role for Amazon S3 staging

To configure AssumeRole authentication for S3 staging, you need to attach the minimum permission policies and trust policies for the IAM user and IAM role in the AWS console.
An IAM user can use the AssumeRole to temporarily gain access to the Amazon S3 resources. For more information about using an assume role for Amazon S3 resources, you can also refer to the How-to-Library article: Using an assume role for Amazon S3 resources
You can generate temporary security credentials using AssumeRole for Amazon S3 staging to access the Amazon S3 staging bucket. If you want EC2 instances to assume an IAM role to gain access to the S3 staging bucket securely, use the temporary security credentials generated using AssumeRole for EC2 instances.
Note: Do not use the root user credentials of the AWS account to generate the temporary security credentials. You need to use the credentials of an IAM user to generate the temporary security credentials.
Generate the temporary security credentials based on your requirement.

Enable encryption

You can enable client-side and server-side encryption in the Amazon Redshift V2 connection for staging data in Amazon S3.
Complete the prerequisites based on the type of encryption that you want to configure in the Amazon Redshift V2 connection.
Client-side encryption
Client-side encryption requires a 256-bit AES encryption key in the Base64 format. You can generate a key using a third-party tool.
Specify the key value in the Master Symmetric Key field when you create an Amazon Redshift V2 connection.
Server-side encryption
To enable server-side encryption, create an AWS Key Management Service (AWS KMS)-managed customer master key.
Generate the customer master key ID for the same region where your Amazon S3 staging bucket resides. For more information about generating a customer master key, see the AWS documentation.
To enable encryption with the customer master key, you need to create a minimal KMS policy. You can specify the customer master key ID when you create an Amazon Redshift V2 connection.
Note: You cannot configure server-side encryption with the master symmetric key and client-side encryption with the customer master key.

Create a minimal policy for using AWS KMS

To use the AWS Key Management Service (AWS KMS)-managed customer master key and enable the encryption with KMS, you must create a KMS policy.
You can perform the following operations to enable encryption with KMS:
Sample policy:
{
"Version":"2012-10-17",
"Statement":[
{ "Effect":"Allow",
"Action":
[ "kms:GenerateDataKey", "kms:DescribeKey", "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*" ],
"Resource": ["arn:aws:kms:region:account:key/<KMS_key>"]
}
]
}
When you configure KMS and access an Amazon S3 endpoint in the China region, use the following sample policy:
{
"Version":"2012-10-17",
"Statement":[
{ "Effect":"Allow",
"Action":[ "kms:GenerateDataKey", "kms:DescribeKey", "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*" ],
"Resource": ["arn:aws-cn:kms:region:account:key/<KMS_key>"]
}
]
}

Connect to Amazon Redshift

Let's configure the Amazon Redshift V2 connection properties to connect to Amazon Redshift.

Before you begin

Before you get started, you'll need to get information from your Amazon Redshift account based on the authentication type you want to configure.
Check out Prepare for authentication to learn about the authentication requirements before you configure a connection.

Connection details

The following table describes the basic connection properties:
Property
Description
Connection Name
Name of the connection. Each connection name must be unique within the organization. Connection names can contain alphanumeric characters, spaces, and the following special characters: _. + -, Maximum length is 255 characters.
Description
Description of the connection. Maximum length is 4000 characters.
Type
Amazon Redshift V2
Runtime Environment
Name of the runtime environment where you want to run tasks.
You cannot run an application ingestion and replication task, database ingestion and replication task, file ingestion and replication task, or streaming ingestion and replication task on a Hosted Agent or serverless runtime environment.

Authentication types

You can configure default and Redshift IAM AssumeRole authentication types to access Amazon Redshift.
Note: Application ingestion and replication tasks and database ingestion and replication tasks do not support Redshift IAM AssumeRole authentication without an EC2 instance.
Select the required authentication method and then configure the authentication-specific parameters.

Proxy server settings

If your organization uses an outgoing proxy server to connect to the Internet, the Secure Agent connects to Informatica Intelligent Cloud Services through the proxy server.
You can configure the Secure Agent to use the proxy server on Windows and Linux. You can use only an unauthenticated proxy server.
To configure the proxy settings for the Secure Agent, use one of the following methods:
Note: If you enable both HTTP and SOCKS proxies, SOCKS proxy is used by default. If you want to use HTTP proxy instead of SOCKS proxy, set the value of the DisableSocksProxy property to true in the System property.

Private communication with Amazon Redshift

If you do not want to expose your traffic to the public internet, you can enable private communication with Amazon Redshift by configuring a gateway endpoint on the AWS console.
To establish a private connection with Amazon Redshift, ensure that the Secure Agent is a part of the subnet in the AWS Virtual Private Cloud (VPC). You can create a gateway endpoint and stage the Amazon S3 data to Amazon Redshift.
To configure private communication to connect to Amazon Redshift, you need to perform the following tasks:
You can then specify the gateway endpoint in the Amazon Redshift V2 connection properties.
For more information, see Configuring private communication with Amazon Redshift using the Amazon Redshift V2 Connector.