You can enable cross-account access for AssumeRole authentication.
Enabling trust and permission policies for cross-account access
Let's consider a use case where the Redshift cluster, S3 bucket, Redshift IAM Role ARN are in the same account, for example Account A. The EC2 instance that assumes a role is in a different account, Account B.
Enable the following policies for cross-account access:
Trust policy of the Redshift IAM Role ARN in Account A, to let the EC2 in Account B to assume a role:
Permission policy of the EC2 role in Account B that you can configure to assume a role in Account A: