从补丁 198 开始,Amazon Redshift 将不再支持创建新的 Python UDF。现有的 Python UDF 将继续正常运行至 2026 年 6 月 30 日。有关更多信息,请参阅博客文章
载入
Redshift 集群注册
Redshift 支持创建新集群或者通过 AWS Glue Data Catalog(GDC)注册从快照还原集群。您可以指定此注册的 GDC 目录名称部分。要支持 IdC 身份传播,您可以指定 Lakehouse 类型的 Redshift IdC 应用程序的 ARN,用于启用 IdC 身份传播。
使用 Glue Data Catalog 注册创建新集群
通过 AWS Glue Data Catalog 注册还原新集群
通过 AWS Glue Data Catalog 注册修改现有集群
如果您的 Redshift 集群已经与非 Lakehouse 类型的 Redshift IdC 应用程序相关联,则在 AWS Glue Data Catalog 注册期间会发生以下情况:
-
如果未提供 Redshift IdC 应用程序 ARN,则目录中的现有 Redshift IdC 应用程序将被设置为禁用状态。
-
指定来自不同 AWS IAM Identity Center 实例的 Lakehouse 类型的 Redshift IdC 应用程序时,当前 IdC 提供程序将被禁用
-
提供来自同一 AWS IAM Identity Center 实例的 Lakehouse 类型的 Redshift IdC 应用程序时
-
您目录中的 Redshift IdC 应用程序 ARN 将更改为 Lakehouse 类型的 Redshift IdC 应用程序的 ARN。更新后的目录可以通过查询 svv_identity_providers 进行检查。有关 svv_identity_providers 的更多信息,请参阅 svv_identity_providers。
-
对于之前有权访问 Redshift 集群的 AWS IAM Identity Center 联合用户,必须由管理员明确授予 CONNECT 权限才能访问该集群。有关授予 CONNECT 权限的更多信息,请参阅连接权限。
-
注册 AWS Glue Data Catalog 后,您现有的 AWS IAM Identity Center 联合身份及所拥有的资源保持不变。这些联合身份的命名空间关联同样也会保留。
-
Redshift Serverless 命名空间注册
Redshift Serverless 支持将连接了工作组的 Serverless 命名空间注册到 AWS Glue Data Catalog。请注意,在此更新期间,数据库将重新启动。
如果您的 Redshift Serverless 命名空间已经与非 Lakehouse 类型的 Redshift IdC 应用程序相关联,则在 Glue Data Catalog 注册期间会发生以下情况:
-
如果未提供 Redshift IdC 应用程序 ARN,则目录中的现有 Redshift IdC 应用程序将被设置为禁用状态。
-
指定来自不同 AWS IAM Identity Center 实例的 Lakehouse 类型的 Redshift IdC 应用程序时,当前 IdC 提供程序将被禁用
-
提供来自同一 AWS IAM Identity Center 实例的 Lakehouse 类型的 Redshift IdC 应用程序时
-
您目录中的 Redshift IdC 应用程序 ARN 将更改为 Lakehouse 类型的 Redshift IdC 应用程序的 ARN。更新后的目录可以通过查询 svv_identity_providers 进行检查。有关 svv_identity_providers 的更多信息,请参阅 svv_identity_providers。
-
对于之前有权访问 Redshift 集群的 AWS IAM Identity Center 联合用户,必须由管理员明确授予 CONNECT 权限才能访问该集群。有关授予 CONNECT 权限的更多信息,请参阅连接权限。
-
注册 AWS Glue Data Catalog 后,您现有的 AWS IAM Identity Center 联合身份及所拥有的资源保持不变。这些联合身份的命名空间关联同样也会保留。
-
启用 AWS IAM Identity Center 身份传播
Amazon Redshift 支持 Identity Center(IdC)身份传播,以便在 Redshift 实例与 AWS Lake Formation/AWS Glue 服务之间无缝传递 IdC 用户身份。
先决条件
-
您已经创建了 Lakehouse 类型的 Amazon Redshift IdC 应用程序,请参阅具有联合身份验证权限的 Redshift 仓库的 AWS IAM Identity Center 应用程序配置。
-
您有一个已经注册到 AWS Glue Data Catalog 的 Amazon Redshift 集群或 Amazon Redshift Serverless 命名空间。
-
Redshift Serverless 命名空间需要连接工作组才能执行相关操作。
-
如果您的 Redshift 集群或 Redshift Serverless 命名空间已经与非 Lakehouse 类型的 Redshift IdC 应用程序相关联,则在 AWS Glue Data Catalog 注册期间会发生以下情况:
-
如果未提供 Redshift IdC 应用程序 ARN,则目录中的现有 Redshift IdC 应用程序将被设置为禁用状态。
-
指定来自不同 AWS IAM Identity Center 实例的 Lakehouse 类型的 Redshift IdC 应用程序时,当前 IdC 提供程序将被禁用
-
提供来自同一 AWS IAM Identity Center 实例的 Lakehouse 类型的 Redshift IdC 应用程序时
-
您目录中的 Redshift IdC 应用程序 ARN 将更改为 Lakehouse 类型的 Redshift IdC 应用程序的 ARN。更新后的目录可以通过查询 svv_identity_providers 进行检查。有关 svv_identity_providers 的更多信息,请参阅 svv_identity_providers。
-
对于之前有权访问 Redshift 集群的 AWS IAM Identity Center 联合用户,必须由管理员明确授予 CONNECT 权限才能访问该集群。有关授予 CONNECT 权限的更多信息,请参阅连接权限。
-
注册 AWS Glue Data Catalog 后,您现有的 AWS IAM Identity Center 联合身份及所拥有的资源保持不变。这些联合身份的命名空间关联同样也会保留。
-
为 Amazon Redshift 预调配集群启用 AWS IAM Identity Center 身份传播
对于将其命名空间注册到了 AWS Glue Data Catalog 的 Amazon Redshift 预调配集群,该集群需要的 Lakehouse 类型的 Amazon Redshift IdC 应用程序并不要求向该应用程序进行明确的用户 AWS IAM Identity Center 身份分配,IdC 用户的登录权限由 Redshift 仓库上的 CONNECT 权限管理。
为 Amazon Redshift Serverless 命名空间启用 AWS IAM Identity Center 身份传播
ALTER USER SET GLOBAL IDENTITY
除了 IAM 和 AWS IAM Identity Center 凭证以外,对具有联合身份验证权限的 Redshift 仓库运行查询的用户,还可以使用 IAM 角色进行身份验证。超级用户可以为其他非联合用户设置一个 IAM 角色,使其在建立会话时自动关联,在对具有联合身份验证权限的 Redshift 仓库进行查询时,将代入此 IAM 角色。提供此功能是为了让 AWS IdC 用户可以通过非交互式方式进行身份验证。
此功能在以下使用案例中非常有用:
-
拥有庞大且复杂设置的客户,此类客户除具备全局身份的用户外,还存在现有的本地仓库用户。
-
使用 IdC 的客户,此类客户希望无需通过交互式浏览器操作即可实现自动登录。
要求和限制:
-
只有超级用户才能通过
ALTER USER设置 IAM 角色。 -
IAM 角色必须附加到集群。
-
IAM 角色必须拥有访问相关资源的权限,以便在具有联合身份验证权限的 Redshift 仓库上运行查询。建议使用
AmazonRedshiftFederatedAuthorizationAWS 托管式策略。 -
通过 GLOBAL IDENTITY IAM 角色进行身份验证的用户,可以查询具有联合身份验证权限的 Redshift 仓库中的视图,但不能对视图执行 CREATE、ALTER、REFRESH 或 DROP 操作。
语法
以下语法描述了 ALTER USER SET GLOBAL IDENTITY 命令,该命令用于为非联合数据库用户设置 IAM 角色,使用户能够对具有联合身份验证权限的 Redshift 仓库运行查询。
ALTER USERusernameSET GLOBAL IDENTITY IAM_ROLE 'arn:aws:iam::<AWS-account-id>:role/<role-name>'
现在,当以目标用户的身份(通过直接以 username 身份进行连接,或者使用 SET SESSION AUTHORIZATION)进行身份验证时,您可以使用以下命令检查全局身份角色
SHOW GLOBAL IDENTITY
请注意,全局身份角色在建立会话时会与用户关联。如果您为当前已登录用户设置了全局身份,则该用户需要重新连接才能使全局身份生效。
以下命令可用于移除关联的 IAM 角色。
ALTER USERusernameRESET GLOBAL IDENTITY
参数
- username
-
用户的名称。不能是联合用户,例如 IAM 用户或 AWS IdC 用户。
- IAM_ROLE 'arn:aws:iam::<account-id>:role/<role-name>'
-
当用户
username对具有联合身份验证权限的 Redshift 仓库运行查询时,使用您的集群用于身份验证和授权的 IAM 角色的 Amazon 资源名称(ARN)。此角色必须具有运行查询所需的权限。建议使用AmazonRedshiftFederatedAuthorizationAWS 托管式策略。