Amazon Redshift will no longer support the creation of new Python UDFs starting November 1, 2025.
If you would like to use Python UDFs, create the UDFs prior to that date.
Existing Python UDFs will continue to function as normal. For more information, see the
blog post
Prerequisites
IAM policy requirements for Amazon Redshift federated permissions setup
Amazon Redshift federated permissions enables you to centrally manage data access across your analytics workloads, with permissions managed by the Redshift warehouse directly.
To enable Amazon Redshift federated permissions, specific IAM permissions are required beyond the standard permissions needed for creating Redshift provisioned clusters and serverless namespaces.
For Redshift provisioned warehouse to enable Redshift federated permissions:
redshift:ModifyLakehouseConfigurationredshift:RegisterNamespace
For Redshift Serverless warehouse to enable Redshift federated permissions:
redshift-serverless:UpdateLakehouseConfigurationredshift:RegisterNamespace
For AWS Glue Data Catalog integration to create a catalog with Redshift federated permissions:
glue:CreateCatalogglue:GetCatalog
For Lake Formation resource registration as one time registration to enable Redshift permission federation from remote warehouse with federated permissions:
lakeformation:RegisterResourcelakeformation:RegisterResourceWithPrivilegedAccess
IAM Identity Center application configuration for Redshift warehouse with federated permissions
Amazon Redshift supports identity center identity propagation to seamlessly pass user identities between Redshift instances and AWS Lake Formation and AWS Glue services. This capability requires configuring dedicated IdC applications.
Required IAM Permissions
To create and manage the identity center application for identity center identity propagation, ensure your IAM permissions include the following permissions:
For Amazon Redshift IdC application management:
redshift:CreateRedshiftIdcApplicationredshift:ModifyRedshiftIdcApplicationredshift:DescribeRedshiftIdcApplications
For Lake Formation IdC application management:
lakeformation:CreateLakeFormationIdentityCenterConfigurationlakeformation:DescribeLakeFormationIdentityCenterConfigurationlakeformation:UpdateLakeFormationIdentityCenterConfiguration
Create corresponding IdC applications and configuration
To establish identity propagation for your analytics workloads, create an Amazon Redshift IdC application of type Lakehouse. It manages permissions without requiring explicit user assignments. Redshift warehouses linked to this application require CONNECT privileges for IdC users to authenticate connections.
You can create only one Amazon Redshift IdC application of type Lakehouse per AWS account. This application handles identity propagation across all Redshift warehouses that are integrated with Lake Formation and AWS Glue services. The application can only be used with Redshift warehouses that are registered with the AWS Glue Data Catalog.
Prepare the IAM role assumed by Redshift and used by IdC identity propagation
Redshift Lakehouse IdC application creation requires an IAM role from your account with certain IAM permissions. Your IAM role used in your Redshift IdC Applications should have the following trust relationship to allow Redshift to assume it and set context for IdC identity propagation.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Statement1", "Effect": "Allow", "Principal": { "Service": [ "redshift-serverless.amazonaws.com", "redshift.amazonaws.com" ] }, "Action": [ "sts:AssumeRole", "sts:SetContext" ] } ] }
And below permissions for your IdC IAM role to support IdC identity propagation.
-
AmazonRedshiftFederatedAuthorization – This policy enables Amazon Redshift to query AWS Glue Data Catalog databases through federated permissions.
-
AWSIDC Set Context Policy
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sts:SetContext" ], "Resource": "*" } ] } -
Setting up Redshift as an AWS managed application with AWS IAM Identity Center.
-
AWSIDC identity center SSO IAM policy:
-
sso:DescribeApplication– Required to create an identity provider (IdP) entry in the catalog. -
sso:DescribeInstance– Used to manually create IdP federated roles or users.{ "Sid": "VisualEditor1", "Effect": "Allow", "Action": [ "sso:DescribeApplication", "sso:DescribeInstance" ], "Resource": [ "arn:aws:sso:::instance/<IAM Identity Center Instance ID>", "arn:aws:sso::<AWS-account-id>:application/<IAM Identity Center Instance ID>/*" ] }
-
Create a new Lakehouse type Redshift IdC application
Modify an existing Redshift IdC application
If you have an existing Redshift IdC application that doesn't have the required service integrations enabled, you can update it to support identity propagation between services and clusters/namespaces.
Create Lake Formation identity center configuration
Your Lake Formation service requires a dedicated IdC application if one has not been created yet.
You must also enable Redshift:Connect authorization for the configuration to function properly.
Update Lake Formation identity center configuration
If you had configured Lake Formation IdC application that doesn't have the required service integrations enabled, you can update it to support identity propagation between services and clusters/namespaces.
Lake Formation prerequisites
Customer need Lake Formation CREATE_CATALOG permissions to enable AWS Glue Data Catalog with Amazon Redshift
federated permissions.
-
If the account belongs to an existing Lake Formation customer, the Lake Formation administrator must explicitly grant CREATE_CATALOG permission to each cluster creator. Use the following sample CLI command:
aws lakeformation grant-permissions \ --cli-input-json \ '{ "Principal": { "DataLakePrincipalIdentifier": "<PrincipalArn>" }, "Resource": { "Catalog": {} }, "Permissions": [ "CREATE_CATALOG" ] }' -
If the account has never used Lake Formation, verify that Catalog Creators is set to IAMAllowedPrincipals in the Administrative Roles and Tasks page of the Lake Formation console. If not configured, set up a Data Lake Administrator by following the Create a data lake administrator. Alternatively, you can create a Data Lake Administrator with the minimum required policies if you will only use AWS Glue Data Catalog with Amazon Redshift federated permissions.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Statement1", "Effect": "Allow", "Action": [ "lakeformation:PutDataLakeSettings", "lakeformation:GrantPermissions", "lakeformation:GetDataLakeSettings", "lakeformation:BatchGrantPermissions", "lakeformation:ListPermissions" ], "Resource": [ "*" ] } ] } -
Have the DataLake Admin grant permissions to the IAMAllowedPrincipals to Create Catalog. Access can be granted through the Grant button for Catalog Creators in the Administrative Role and Tasks page.
Connect privileges
As part of Amazon Redshift federated permissions, Amazon Redshift has introduced CONNECT privileges to manage AWS IAM Identity Center federated users' access to Amazon Redshift workgroups or clusters. This feature is available when Amazon Redshift federated permissions are enabled on the workgroup or cluster.
This privilege enables administrators to control user access through granular permissions at each Amazon Redshift workgroup(s) or clusters(s) where Amazon Redshift federated permissions are enabled. Amazon Redshift administrator can specify which AWS IAM Identity Center federated user(s) or group(s) have access to directly connect to the Amazon Redshift workgroup or cluster, providing fine-grained control over the AWS IAM Identity Center user access at each workgroup or cluster.
Syntax
GRANT CONNECT [ON WORKGROUP] TO [USER] <prefix>:<username> | ROLE <prefix>:<rolename> | PUBLIC;
- CONNECT [ON WORKGROUP]
-
Grants permission to connect to a workgroup. The CONNECT permission is applicable only for AWS IAM Identity Center identities (users and roles).
- TO <prefix>:<username>
-
Indicates the AWS IAM Identity Center federated user receiving the permissions.
- TO ROLE <prefix>:<rolename>
-
Indicates the AWS IAM Identity Center federated group receiving the permissions.
- PUBLIC
-
Grants the CONNECT permissions to all AWS IAM Identity Center federated users, including users created later.