公司新闻

  • 首页Our News通过外部身份提供商简化 Amazon Redshift 和 AWS Lake Formation 的

通过外部身份提供商简化 Amazon Redshift 和 AWS Lake Formation 的

2026-01-27 14:59:18 24

使用Amazon Redshift与AWS Lake Formation简化外部身份提供商用户的访问管理

关键要点

许多组织利用身份提供商IdP来进行用户认证、管理用户属性和群组归属,以实现安全、高效和集中化的身份管理。通过集成AWS IAM Identity Center,Amazon Redshift和AWS Lake Formation可以有效简化用户访问管理,允许用户通过单一登录体验在这些服务间无缝切换,进一步提高数据访问的灵活性与安全性。

许多组织采取身份提供商IdP来确保用户身份的安全认证、属性管理和群组管理,以实现高效的身份管理。如果您正在使用Amazon Redshift来现代化您的数据架构,从而访问数据湖和数据仓库,同时希望基于IdP身份来中心化和可扩展地管理数据访问,

那您可以使用AWS Lake Formation来实现数据的集中治理、安全和全球共享用于分析和机器学习ML。当前,您可能需要将用户身份和群组映射到AWS身份与访问管理IAM角色,而数据访问权限则是在Lake Formation内以IAM角色级别进行定义。这种设置效率不高,因为随着新群组的生成,想要建立和维护IdP群组与IAM角色映射会非常耗时,并且很难追溯到哪个服务在何时访问了哪些数据。

通过AWS IAM Identity Center的新受信任身份传播功能,Amazon Redshift和AWS Lake Formation现已实现无缝用户认证。在本文中,我们将讨论两种使用案例,以配置与Amazon Redshift和Lake Formation的受信任身份传播。

解决方案概述

受信任身份传播为希望跨服务边界集中管理数据权限并基于IdP身份授权请求的组织提供了新认证选项。通过IAM Identity Center,您可以配置现有的IdP来管理用户和群组,并使用Lake Formation为这些IdP身份定义细粒度的访问控制权限。Amazon Redshift在使用Amazon Redshift Spectrum和Amazon Redshift数据共享查询数据时支持身份传播,您还可以使用AWS CloudTrail审计IdP身份的数据访问,帮助您的组织满足监管和合规要求。

通过这种新功能,用户可以通过QuickSight连接到Amazon Redshift,享受单一登录的体验并创建直接查询数据集。通过将IAM Identity Center作为共享身份源,使用受信任身份传播,当QuickSight的仪表板等资产与其他用户共享时,每个QuickSight用户的数据库权限会通过其终端用户身份从QuickSight传播到Amazon Redshift,并执行各自的数据权限。根据实际用途,作者还可以在QuickSight中应用额外的行级和列级安全性。

以下图示展示了解决方案架构的示例。

在本文中,我们将介绍如何配置Amazon Redshift和Lake Formation的受信任身份传播。我们涵盖的使用案例包括:

使用Lake Formation的Redshift Spectrum使用Lake Formation的Redshift数据共享

前提条件

本指导假设您已经设置了Lake Formation管理员角色或类似角色,以便于遵循本帖中的指引。有关如何设置数据湖管理员的权限,请参考创建数据湖管理员。

此外,您还需创建以下资源,如下所述,针对集成Okta与Amazon Redshift查询编辑器V2使用AWS IAM Identity Center进行无缝单一登录:

一个与IAM Identity Center集成的Okta账户,以同步用户和群组启用IAM Identity Center的Redshift管理应用启用IAM Identity Center集成的Redshift源集群想要连接的目标集群,成员为IAM Identity Center集成您可以跳过设置Amazon Redshift基于角色的访问段落从IAM Identity Center分配到Redshift应用的用户和群组分配给AWS账户的权限集以启用对Redshift查询编辑器V2的访问

将下列权限添加到用于Redshift管理应用的IAM角色中,以便与IAM Identity Center进行集成:

json{ Version 20121017 Statement [ { Effect Allow Action [ lakeformationGetDataAccess glueGetTable glueGetTables glueSearchTables glueGetDatabase glueGetDatabases glueGetPartitions lakeformationGetResourceLFTags lakeformationListLFTags lakeformationGetLFTag lakeformationSearchTablesByLFTags lakeformationSearchDatabasesByLFTags ] Resource } ]}

用例1:使用Lake Formation的Redshift Spectrum

本用例假设您具备以下前提条件:

用于存储数据的Amazon Simple Storage ServiceAmazon S3桶。为运行AWS命令行接口AWS CLI命令,您需要在您的账户中设置AWS CloudShell或在工作站上安装AWS CLI。有关说明,请参考开始使用AWS CloudShell或设置AWS CLI。

您可以使用现有的AWS Glue数据库和表,或者以管理员身份完成以下步骤以设置这些资源。

作为IAM管理员登录到AWS管理控制台。

转到CloudShell或您的AWS CLI并运行以下AWS CLI命令,向所需的桶复制数据:

一元加速器下载

shaws s3 sync s3//redshiftdemos/data/NYPub/ s3//ltbucketnamegt/data/NYPub/

在此文章中,我们使用AWS Glue Crawler来创建外部表nypub,该表存储为Apache Parquet格式,位于Amazon S3位置s3//ltbucketnamegt/data/NYPub/。在下一步中,我们使用AWS CloudFormation创建一个堆栈,命名为CrawlS3SourceNYTaxiData,区域为useast1。

下载模板文件或启动CloudFormation堆栈。

该堆栈将创建以下资源:

爬虫NYTaxiCrawler以及新的IAM角色AWSGlueServiceRoleRedshiftAutoMountAWS Glue数据库automountdb

堆栈完成后,继续完成以下步骤以完成资源设置:

在AWS Glue控制台中,导航到数据目录,选择爬虫。

打开NYTaxiCrawler并选择编辑。

在选择数据源和分类器下,选择编辑。

对于数据源,选择S3。

对于S3路径,输入s3//ltbucketnamegt/data/NYPub/。

选择更新S3数据源。

选择下一步然后选择更新。

选择运行爬虫。

爬虫运行完成后,您可以在数据目录下的automountdb数据库中看到新的表nypub。

创建完资源后,继续在接下来的部分中设置AWS Glue表nypub的Lake Formation权限,以供销售IdP组访问。

启用Redshift管理应用的Lake Formation传播

完成以下步骤以启用为在集成Okta与Amazon Redshift查询编辑器V2使用AWS IAM Identity Center进行无缝单一登录创建的Redshift管理应用之一,启用Lake Formation传播:

作为管理员登录AWS控制台。在Amazon Redshift控制台中,导航到IAM Identity Center连接。

选择以redshiftiad开头的管理应用,选择编辑。

在受信任身份传播下,选择启用AWS Lake Formation访问授权并保存更改。

将Lake Formation设置为IAM Identity Center应用

完成以下步骤,将Lake Formation设置为IAM Identity Center应用:

在Lake Formation控制台中,导航到管理下的IAM Identity Center集成。

查看选项并选择提交以启用Lake Formation的集成。

集成状态将更新为成功。

另一种办法是运行以下命令:

shaws lakeformation createlakeformationidentitycenterconfiguration cliinputjson {CatalogId ltcatalogidgtInstanceArn ltidentitycenterarngt}

在Lake Formation注册数据

在本节中,注册数据与Lake Formation。完成以下步骤:

在Lake Formation控制台中,导航到管理下的数据湖位置。选择注册位置。对于Amazon S3路径,输入包含表数据的桶s3//ltbucketnamegt/data/NYPub/。对于IAM角色,选择Lake Formation自定义角色。有关详细信息,请参考注册位置所需角色。对于权限模式,选择Lake Formation。选择注册位置。

接下来,验证IAMAllowedPrincipal组在数据库上没有权限。

在Lake Formation控制台中,导航到数据目录,选择数据库。选择automountdb,然后在操作菜单中选择查看权限。

如果IAMAllowedPrincipal被列出,选择该主体并选择撤销。

重复这些步骤以验证对于表nypub的权限。

授予IAM Identity Center组对AWS Glue数据库和表的权限

完成以下步骤,以授予IAM Identity Center组数据库权限:

在Lake Formation控制台中,导航到数据目录,选择数据库。选择数据库automountdb,在操作菜单中选择授权。选择授予数据库。

在主体部分选择IAM Identity Center并选择添加。

在弹出窗口中,如果这是第一次分配用户和组,请选择开始使用。

在搜索框中输入IAM Identity Center组并选择该组。

选择分配。

在LF标签或目录资源下,automountdb已被选中为数据库。

选择描述作为数据库权限。选择授权以应用这些权限。

另一种办法是运行以下命令:

shaws lakeformation grantpermissions cliinputjson { Principal { DataLakePrincipalIdentifier arnawsidentitystoregroup/ltidentitycentergroupnamegt } Resource { Database { Name automountdb } } Permissions [ DESCRIBE ]}

接下来,向IAM Identity Center组授予表权限。

在数据目录中,导航至数据库。选择数据库automountdb,在操作菜单中选择授予。在主体部分,选择IAM Identity Center并选择添加。在搜索框中输入IAM Identity Center组并选择该组。选择分配。在LF标签或目录资源下,automountdb已被选中为数据库。对于表,选择nypub。选择描述和选择作为表权限。选择授权以应用权限。

另一种办法是运行以下命令:

shaws lakeformation grantpermissions cliinputjson { Principal { DataLakePrincipalIdentifier arnawsidentitystoregroup/ltidentitycentergroupnamegt } Resource { Table { DatabaseName automountdb Name nypub } } Permissions [ SELECT DESCRIBE ]}

为IAM Identity Center组设置Redshift Spectrum表访问

完成以下步骤以设置Redshift Spectrum表访问:

使用管理员角色登录Amazon Redshift控制台。导航到查询编辑器v2。点击集群旁的选项菜单三个点并选择创建连接。以管理员用户身份连接,并运行以下命令,使得S3数据湖中的nypub数据可用于销售组:

sqlcreate external schema if not exists nycexternalschema from DATA CATALOG database automountdb catalogid ltaccountidgt grant usage on schema nycexternalschema to role awsidcawsssosales grant select on all tables in schema nycexternalschema to role awsidcawsssosales

通过外部身份提供商简化 Amazon Redshift 和 AWS Lake Formation 的

验证Redshift Spectrum访问作为IAM Identity Center用户

完成以下步骤以验证访问:

在Amazon Redshift控制台中,导航到查询编辑器v2。点击集群旁的选项菜单三个点并选择创建连接。选择IAM Identity Center选项以连接。在浏览器弹出框中提供Okta用户名和密码。登录为联邦用户后,运行以下SQL命令以查询nypub数据湖表:

sqlselect from nycexternalschemanypub

用例2:使用Lake Formation的Redshift数据共享

本用例假设您已设置与Amazon Redshift的IAM Identity Center集成,并根据先前提供的说明启用Lake Formation传播。

创建数据共享并与数据目录共享

完成以下步骤,以创建数据共享:

使用管理员角色登录Amazon Redshift控制台。导航到查询编辑器v2。点击Redshift源集群旁的选项菜单三个点并选择创建连接。以管理员用户身份连接,使用临时凭证并运行以下SQL命令以创建数据共享:

sqlCREATE DATASHARE salesds ALTER DATASHARE salesds ADD SCHEMA salesschema ALTER DATASHARE salesds ADD TABLE storesales GRANT USAGE ON DATASHARE salesds TO ACCOUNT ‘ltaccountidgt’ via DATA CATALOG

选择数据共享,然后选择数据共享salesds。选择数据共享,然后选择授权。

现在您可以在Lake Formation中将数据共享注册为AWS Glue数据库。

作为数据湖管理员IAM用户或角色,登录Lake Formation控制台。在数据目录下,选择数据共享,在配置标签页查看Redshift数据共享邀请。选择数据共享salesds并选择审查邀请。审查详细信息后选择接受。为AWS Glue数据库提供名称例如,salesds,然后选择跳到审查并创建。

在基于Redshift数据共享创建AWS Glue数据库后,您可以在共享数据库中查看它。

授予IAM Identity Center用户组对AWS Glue数据库和表的权限

完成以下步骤以授予IAM Identity Center组数据库权限:

在Lake Formation控制台中,导航到数据目录,选择数据库。选择

订阅我们的时事通讯

获取更多更新