将 Redshift 与 IAM Identity Center 连接,为用户提供单点登录体验 - Amazon Redshift
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

将 Redshift 与 IAM Identity Center 连接,为用户提供单点登录体验

您可以通过可信身份传播来管理用户和组对 Amazon Redshift 数据仓库的访问权限。此方法通过 Redshift 与 Amazon IAM Identity Center 之间的连接发挥作用,从而向您的用户提供单点登录体验。这样您就可以从目录中引入用户和组,并直接向其分配权限。以后,此连接会支持绑定其他工具和服务。以一个端到端案例来说明,您可以使用 Amazon QuickSight 控制面板或 Amazon Redshift 查询编辑器 v2 来访问 Redshift。在这种情况下,访问权限基于 IAM Identity Center 组。Redshift 可以确定用户的身份以及他们的组成员资格。IAM Identity Center 还允许通过 Okta 或 PingOne 等第三方身份提供者 (IdP) 连接和管理身份。

管理员设置 Redshift 与 IAM Identity Center 之间的连接后,他们可以根据身份提供者的组配置精细访问权限,以授权用户访问数据。

Redshift 与 Amazon IAM Identity Center 集成的好处

将 IAM Identity Center 与 Redshift 结合使用,可以在以下方面为企业带来益处:

  • Amazon QuickSight 中的控制面板作者无需重新输入密码,也无需要求管理员设置具有复杂权限的 IAM 角色,即可连接 Redshift 数据来源。

  • IAM Identity Center 为您在 Amazon 中的员工用户提供了一个中心位置。您可以直接在 IAM Identity Center 创建用户和群,也可以连接您在基于标准的身份提供者中管理的现有用户和组,例如 Okta、PingOne 或 Microsoft Entra ID (Azure AD)。IAM Identity Center 将身份验证定向到您为用户和组选择的信任源,并维护一个用户和组的目录以供 Redshift 访问。有关更多信息,请参阅《Amazon IAM Identity Center 用户指南》中的管理您的身份源支持的身份提供者

  • 通过简单的自动发现和连接功能,您便可与多个 Redshift 集群和工作组共享一个 IAM Identity Center 实例。这样可以快速添加集群,而无需额外地为每个集群配置 IAM Identity Center 连接,还可确保所有集群和工作组都能一致地查看用户、其属性和组。请注意,您企业的 IAM Identity Center 实例必须与要连接的任意 Redshift 数据共享位于同一区域。

  • 由于用户身份已知并与数据访问记录在一起,因此您可以通过在 Amazon CloudTrail 中审计用户的访问,更轻松地满足合规性监管要求。

设置 IAM Identity Center 与 Amazon Redshift 的集成

您的 Amazon Redshift 集群管理员或 Amazon Redshift Serverless 管理员必须执行多个步骤,以将 Redshift 配置为支持 IAM Identity Center 的应用程序。这样,Redshift 便可以自动发现并连接到 IAM Identity Center 来获取登录和用户目录服务。在此之后,当 Redshift 管理员创建集群或工作组时,他们可以允许新的数据仓库使用 IAM Identity Center 来管理数据库访问。

启用 Redshift 作为 IAM Identity Center 托管应用程序的意义在于,您可以从 IAM Identity Center 中或与之集成的第三方身份提供者控制用户和组的权限。当数据库用户(例如分析师或数据科学家)登录 Redshift 数据库时,服务会在 IAM Identity Center 中检查他们所属的组,这些组与 Redshift 中的角色名称相匹配。通过这种方式,举例而言,定义了 Redshift 数据库角色名称的组可以访问一组表以便进行销售分析。以下部分将介绍如何完成此设置。

先决条件

将 IAM Identity Center 与 Amazon Redshift 集成的先决条件如下所示:

  • 账户配置 – 如果您计划使用跨账户用例,或者如果您在具有相同 IAM Identity Center 实例的不同账户中使用 Redshift 集群,则必须在 Amazon Organizations 管理账户中配置 IAM Identity Center。这包括配置您的身份源。有关更多信息,请参阅《Amazon IAM Identity Center 用户指南》中的入门员工身份支持的身份提供者。您必须确保已在 IAM Identity Center 中创建用户或组,或者已从您的身份源同步用户和组,然后才能在 Redshift 中将他们指定到 Redshift 中的数据。

    注意

    您可以选择使用 IAM Identity Center 的账户实例,前提是 Redshift 和 IAM Identity Center 位于同一个账户中。在创建和配置 Redshift 集群或工作组时,您可以使用小组件创建此实例。

  • 配置可信令牌发布者 – 在某些情况下,您可能需要使用可信令牌发布者,这是可以发布和验证信任令牌的实体。在执行此操作之前,需要先执行预备步骤,然后配置 IAM Identity Center 集成的 Redshift 管理员才能选择可信令牌发布者,并添加必要的属性以完成配置。这些步骤可能包括在 IAM Identity Center 控制台中,将外部身份提供者配置为可信令牌发布者并添加其属性。要完成这些步骤,请参阅设置可信令牌发布者

    注意

    并非所有外部连接都需要设置可信令牌发布者。使用 Amazon Redshift 查询编辑器 v2 连接到您的 Redshift 数据库时,不需要配置可信令牌发布者。但可能需要对第三方应用程序进行配置,例如通过您的身份提供者进行身份验证的控制面板或自定义应用程序。

  • 配置 IAM 角色 – 后面的部分提到了必须配置的权限。您必须按照 IAM 最佳实践添加权限。后面的步骤将会详细介绍具体权限。

有关更多信息,请参阅 Getting Started with IAM Identity Center

配置您的身份提供者以使用 IAM Identity Center

控制用户和组身份管理的第一步是连接到 IAM Identity Center 并配置您的身份提供者。您可以使用 IAM Identity Center 本身作为身份提供者,也可以连接第三方身份存储,例如 Okta。有关设置与身份提供者的连接和进行配置的更多信息,请参阅《IAM Identity Center 用户指南》中的连接到外部身份提供商。请确保在此过程结束时,您已将一小批用户和组添加到 IAM Identity Center 以用于测试目的。

管理权限

Redshift/IAM Identity Center 应用程序生命周期管理所需的权限

您必须创建一个 IAM 身份供 Redshift 管理员用来配置 Redshift,以便与 IAM Identity Center 结合使用。常见的做法是,创建一个具有相应权限的 IAM 角色,并根据需要将其分配给其他身份。该角色必须具有执行以下操作的权限。

创建 Redshift/IAM Identity Center 应用程序

  • sso:PutApplicationAssignmentConfiguration – 用于安全设置。

  • sso:CreateApplication – 用于创建 IAM Identity Center 应用程序。

  • sso:PutApplicationAuthenticationMethod – 授予 Redshift 身份验证访问权限。

  • sso:PutApplicationGrant – 用于更改可信令牌发布者信息。

  • sso:PutApplicationAccessScope – 用于 Redshift IAM Identity Center 应用程序设置。这包括用于 Amazon Lake Formation 和用于 Amazon S3 Access Grants

  • redshift:CreateRedshiftIdcApplication – 用于创建 Redshift IDC 应用程序。

描述 Redshift/IAM Identity Center 应用程序

  • sso:GetApplicationGrant – 用于列出可信令牌发布者信息。

  • sso:ListApplicationAccessScopes – 用于 Redshift IAM Identity Center 应用程序设置以列出下游集成,例如用于 Amazon Lake Formation 和 S3 Access Grants。

  • redshift:DescribeRedshiftIdcApplications – 用于描述现有 IAM Identity Center 应用程序。

更改 Redshift/IAM Identity Center 应用程序

  • redshift:ModifyRedshiftIdcApplication – 用于更改现有的 Redshift 应用程序。

  • sso:UpdateApplication – 用于更新 IAM Identity Center 应用程序。

  • sso:GetApplicationGrant – 获取可信令牌颁发者信息。

  • sso:ListApplicationAccessScopes – 用于 Redshift IAM Identity Center 应用程序设置。

  • sso:DeleteApplicationGrant – 删除可信令牌颁发者信息。

  • sso:PutApplicationGrant – 用于更改可信令牌发布者信息。

  • sso:PutApplicationAccessScope – 用于 Redshift IAM Identity Center 应用程序设置。这包括用于 Amazon Lake Formation 和用于 Amazon S3 Access Grants

  • sso:DeleteApplicationAccessScope – 用于删除 Redshift IAM Identity Center 应用程序设置。这包括用于 Amazon Lake Formation 和用于 Amazon S3 Access Grants

删除 Redshift/IAM Identity Center 应用程序

  • sso:DeleteApplication – 用于删除 IAM Identity Center 应用程序。

  • redshift:DeleteRedshiftIdcApplication – 允许删除现有 Redshift IDC 应用程序。

Redshift/查询编辑器 v2 应用程序生命周期管理所需的权限

您必须创建一个 IAM 身份供 Redshift 管理员用来配置 Redshift,以便与 IAM Identity Center 结合使用。常见的做法是,创建一个具有相应权限的 IAM 角色,并根据需要将其分配给其他身份。该角色必须具有执行以下操作的权限。

创建查询编辑器 v2 应用程序

  • redshift:CreateQev2IdcApplication – 用于创建 QEV2 应用程序。

  • sso:CreateApplication – 提供创建 IAM Identity Center 应用程序的功能。

  • sso:PutApplicationAuthenticationMethod – 授予 Redshift 身份验证访问权限。

  • sso:PutApplicationGrant – 用于更改可信令牌发布者信息。

  • sso:PutApplicationAccessScope – 用于 Redshift IAM Identity Center 应用程序设置。这包括查询编辑器 v2。

  • sso:PutApplicationAssignmentConfiguration – 用于安全设置。

描述查询编辑器 v2 应用程序

  • redshift:DescribeQev2IdcApplications – 用于描述 IAM Identity Center QEV2 应用程序。

更改查询编辑器 v2 应用程序

  • redshift:ModifyQev2IdcApplication – 用于更改 IAM Identity Center QEV2 应用程序。

  • sso:UpdateApplication – 用于更改 IAM Identity Center QEV2 应用程序。

删除查询编辑器 v2 应用程序

  • redshift:DeleteQev2IdcApplication – 用于删除 QEV2 应用程序。

  • sso:DeleteApplication – 用于删除 QEV2 应用程序。

注意

在 Amazon Redshift 开发工具包中,以下 API 不可用:

  • CreateQev2IdcApplication

  • DescribeQev2IdcApplications

  • ModifyQev2IdcApplication

  • DeleteQev2IdcApplication

这些操作专门用于在 Amazon 控制台中执行 IAM Identity Center 与 Redshift QEV2 的集成。有关更多信息,请参阅 Amazon Redshift 定义的操作

数据库管理员在控制台中连接新资源所需的权限

在创建过程中,需要这些权限才能连接新预置的集群或 Amazon Redshift Serverless 工作组。如果您具有这些权限,则控制台中会显示一个选项,供您选择连接到 IAM Identity Center 托管的 Redshift 应用程序。

  • redshift:DescribeRedshiftIdcApplications

  • sso:ListApplicationAccessScopes

  • sso:GetApplicationAccessScope

  • sso:GetApplicationGrant

作为最佳实践,我们建议将权限策略附加到 IAM 角色,然后根据需要将其分配给用户和组。有关更多信息,请参阅 Amazon Redshift 中的 Identity and Access Management

使用 IAM Identity Center 将 Redshift 设置为 Amazon 托管应用程序

Redshift 管理员必须完成以下步骤,使 Redshift 成为 IAM Identity Center 托管应用程序,然后 IAM Identity Center 才能管理 Amazon Redshift 预置集群或 Amazon Redshift Serverless 工作组的身份:

  1. 在 Amazon Redshift 或 Amazon Redshift Serverless 控制台菜单中选择 IAM Identity Center 集成,然后选择连接到 IAM Identity Center。在其中,您可以逐步完成一系列选择来填充 IAM Identity Center 集成的属性。

  2. 为 Redshift 的 IDC 托管应用程序选择显示名称和唯一名称。

  3. 为您的组织指定命名空间。这通常是组织名称的缩写。它已作为前缀添加到 Redshift 数据库中 IDC 管理的用户和角色上。

  4. 选择要使用的 IAM 角色。此 IAM 角色应与用于 Redshift 的其他角色分开,建议不要将该角色其用于其他目的。所需的特定策略权限如下所示:

    • sso:DescribeApplication – 需要在目录中创建身份提供者 (IdP) 条目。

    • sso:DescribeInstance – 用于手动创建 IdP 联合身份验证角色或用户。

  5. 配置客户端连接和可信令牌发布者。配置可信令牌发布者,通过设置与外部身份提供者的关系来协调可信身份的传播。例如,通过身份传播,用户可以登录一个应用程序并访问另一个应用程序中的特定数据。这样用户便可以更无缝地从不同位置收集数据。在此步骤中,您可以在控制台中为每个可信令牌发布者设置属性。这些属性包括名称和受众群体声明(简写为 aud claim),您可能需要从工具或服务的配置属性中获取这些信息。您可能还需要从第三方工具的 JSON Web 令牌 (JWT, JSON Web Token) 提供应用程序名称。

    注意

    每个第三方工具或服务要求的 aud claim 可能会有所不同,具体取决于令牌类型,这些可以是身份提供者发布的访问令牌,也可以是 ID 令牌等其他类型。每个供应商都可能不同。在实施可信身份传播并与 Redshift 集成时,您需要为第三方工具发送到 Amazon 的令牌类型提供正确的 aud 值。请查看您的工具或服务供应商的建议。

    有关可信身份传播的详细信息,请参阅可信身份传播的工作原理。另请参阅本文档附带的 IAM Identity Center 测试版文档。

Redshift 管理员完成步骤并保存配置后,IAM Identity Center 属性将显示在 Redshift 控制台中。您也可以查询系统视图 SVV_IDENTITY_PROVIDERS 来验证应用程序的属性。这些属性包括应用程序名称和命名空间。您可以使用命名空间作为与应用程序关联的 Redshift 数据库对象的前缀。完成这些任务后,Redshift 便成为支持 IAM Identity Center 的应用程序。控制台中的属性包括集成状态。集成完成后,它会显示已启用。完成此流程后,可以在每个新集群上启用 IAM Identity Center 集成。

完成配置后,您可以在 Redshift 中使用 IAM Identity Center 的用户和组,方法是选择用户选项卡,然后选择分配

为 Amazon Redshift 集群或 Amazon Redshift Serverless 工作组启用 IAM Identity Center 集成

您的数据库管理员配置新的 Redshift 资源,使其与 IAM Identity Center 配合使用,从而简化登录和数据访问。此过程包括在创建预置集群或无服务器工作组的步骤中。任何有权创建 Redshift 资源的用户都可以执行这些 IAM Identity Center 集成任务。当您创建预置集群时,请首先在 Amazon Redshift 控制台中选择创建集群。以下步骤显示如何为数据库启用 IAM Identity Center 管理。(其中并未包括创建集群的所有步骤。)

  1. 在创建集群步骤中,在 IAM Identity Center 集成部分中,选择为 <您的集群名称> 启用

  2. 在启用集成时,流程中有一个步骤。您可以在控制台中选择启用 IAM Identity Center 集成来完成此步骤。

  3. 对于新的集群或工作组,使用 SQL 命令在 Redshift 中创建数据库角色。命令如下:

    CREATE ROLE <idcnamespace:rolename>;

    命名空间和角色名称如下:

    • IAM Identity Center 命名空间前缀 – 这是您在设置 IAM Identity Center 与 Redshift 之间的连接时,定义的命名空间。

    • 角色名称 – 此 Redshift 数据库角色必须与 IAM Identity Center 中的组名匹配。

    Redshift 连接到 IAM Identity Center,然后提取创建数据库角色并将其映射到 IAM Identity Center 组所需的信息。

请注意,创建新的数据仓库时,为 IDC 集成指定的 IAM 角色将自动附加到预置集群或 Amazon Redshift Serverless 工作组。完成所需集群元数据的输入和资源创建后,您可以在属性中查看 IAM Identity Center 集成的状态。如果您在 IAM Identity Center 中的组名有空格,则在创建匹配角色时需要在 SQL 中使用引号。

启用 Redshift 数据库并创建角色后,就可以使用 Amazon Redshift 查询编辑器 v2 或 Amazon QuickSight 连接到数据库。详细信息将在后面的部分中进一步说明。

使用 API 设置默认 RedshiftIdcApplication

由您的身份管理员完成设置。使用 API,您可以创建并填充 RedshiftIdcApplication,它代表 IAM Identity Center 中的 Redshift 应用程序。

  1. 首先,您可以创建用户,并将这些用户添加到 IAM Identity Center 的组中。您可以在 IAM Identity Center (IDC) 的 Amazon 控制台中执行此操作。

  2. 调用 create-redshift-idc-application 以创建 IDC 应用程序,使其与 Redshift 的使用兼容。您可以通过填充所需的值来创建应用程序。显示名称是在 IDC 控制面板上显示的名称。IAM 角色 ARN 是拥有 IAM Identity Center 权限的 ARN,同样也可由 Redshift 代入。

    aws redshift create-redshift-idc-application ––idc-instance-arn 'arn:aws:sso:::instance/ssoins-1234a01a1b12345d' ––identity-namespace 'MyIdcIdentityNamespace' ––idc-display-name 'TEST-NEW-APPLICATION' ––iam-role-arn 'arn:aws:redshift:us-east-1:012345678901:role/TestRedshiftRole' ––redshift-idc-application-name 'myredshiftidcapplication'

    以下示例显示了对 create-redshift-idc-application 的调用返回的示例 RedshiftIdcApplication 响应。

    "RedshiftIdcApplication": { "IdcInstanceArn": "arn:aws:sso:::instance/ssoins-1234a01a1b12345d", "RedshiftIdcApplicationName": "test-application-1", "RedshiftIdcApplicationArn": "arn:aws:redshift:us-east-1:012345678901:redshiftidcapplication:12aaa111-3ab2-3ab1-8e90-b2d72aea588b", "IdentityNamespace": "AWSIDC", "IdcDisplayName": "Redshift-Idc-Application", "IamRoleArn": "arn:aws:redshift:us-east-1:012345678901:role/TestRedshiftRole", "IdcManagedApplicationArn": "arn:aws:sso::012345678901:application/ssoins-1234a01a1b12345d/apl-12345678910", "IdcOnboardStatus": "arn:aws:redshift:us-east-1:123461817589:redshiftidcapplication", "RedshiftIdcApplicationArn": "Completed", "AuthorizedTokenIssuerList": [ "TrustedTokenIssuerArn": ..., "AuthorizedAudiencesList": [...]... ]}
  3. 您可以使用 create-application-assignment,将特定组或个人用户分配给 IAM Identity Center 中的托管应用程序。采用这种做法,您可以指定通过 IAM Identity Center 管理的组。如果数据库管理员在 Redshift 中创建数据库角色,则 IAM Identity Center 中的组名会映射到 Redshift 中的角色名称。数据库中的角色控制权限。有关更多信息,请参阅在 IAM Identity Center 控制台中为用户分配应用程序的访问权限

  4. 启用应用程序后,调用 create-cluster 并附上 IAM Identity Center 中的 Redshift 托管应用程序 ARN。通过这样做,可以将集群与 IAM Identity Center 中的托管应用程序关联起来。

将 IAM Identity Center 应用程序与现有集群或工作组关联

如果您要为现有的集群或工作组启用 IAM Identity Center 集成,可以通过运行 SQL 命令来实现。您需要运行以下命令以启用集成。数据库管理员需要运行查询,并且已经设置了 Redshift 与 IAM Identity Center 之间的连接。在您设置 ENABLE 后,IAM Identity Center 可以为集群或工作组提供身份管理。

ALTER IDENTITY PROVIDER <idp_name> | NAMESPACE <namespace> | IAM_ROLE default | 'arn:aws:iam::<AWS account-id-1>:role/<role-name>' | [DISABLE | ENABLE]

您可以删除现有身份提供者。以下示例演示如何对附加到身份提供者的用户和角色执行级联删除。

DROP IDENTITY PROVIDER <provider_name> [ CASCADE ]

设置用户权限

管理员根据用户的身份属性和组成员资格,在其身份提供者内部或直接在 IAM Identity Center 中配置对各种资源的权限。例如,身份提供者管理员可以将数据库工程师添加到适合其角色的组中。此组名映射到 Redshift 数据库角色名称。该角色提供或限制对 Redshift 中特定表或视图的访问权限。

用于连接应用程序的管理员角色

在将分析应用程序连接到 IAM Identity Center 托管的 Redshift 应用程序的过程中,以下角色非常关键:

  • 应用程序管理员 – 创建应用程序并配置要与哪些服务启用身份令牌交换。此管理员还需要指定哪些用户或组有权访问应用程序。

  • 数据管理员 – 配置对数据的精细访问权限。IAM Identity Center 中的用户和组可以映射到特定权限。

使用 IAM Identity Center 通过 Amazon QuickSight 连接到 Amazon Redshift

以下部分演示在连接到 Redshift 并通过 IAM Identity Center 管理访问权限时,如何使用 Amazon QuickSight 进行身份验证:授权从 Amazon QuickSight 连接到 Amazon Redshift 集群。这些步骤也适用于 Amazon Redshift Serverless。

使用 IAM Identity Center 通过 Amazon Redshift 查询编辑器 v2 连接到 Amazon Redshift

完成设置 IAM Identity Center 与 Redshift 连接的步骤后,用户可以通过基于 IAM Identity Center 且以命名空间为前缀的身份,访问数据库以及数据库中的相应对象。有关使用查询编辑器 v2 登录身份连接到 Redshift 数据库的更多信息,请参阅使用查询编辑器 v2

通过 Amazon Lake Formation 查询数据

使用 Amazon Lake Formation 可以更轻松地集中管理和保护您的数据湖,并可用于提供数据访问。通过对 IAM Identity Center 和 Redshift 进行配置,将身份传播到 Lake Formation,这样管理员就可以根据组织的身份提供者 (IdP) 组,实现对 Amazon S3 数据湖精细的访问控制。这些组通过 IAM Identity Center 进行管理。此部分介绍如何配置几个使用案例,用于从数据湖中进行查询和从数据共享中进行查询,以演示如何将 IAM Identity Center 与 Redshift 结合使用来连接到由 Lake Formation 管理的资源。

使用 IAM Identity Center 和 Redshift 连接来查询数据湖

这些步骤涵盖的使用案例是,您使用 IAM Identity Center 连接到 Redshift,以便查询 Lake Formation 管理的数据湖。

先决条件

此过程有多个先决条件步骤:

  1. IAM Identity Center 必须设置为支持 Redshift 的身份验证和身份管理。您可以从控制台启用 IAM Identity Center 并选择身份提供者 (IdP) 来源。之后,将您的一组 IdP 用户与 IAM Identity Center 同步。您还必须按照本文档前面详述的步骤,在 IAM Identity Center 与 Redshift 之间建立连接。

  2. 创建新的 Amazon Redshift 集群,并在配置步骤中启用通过 IAM Identity Center 进行身份管理。

  3. 为 Lake Formation 创建托管 IAM Identity Center 应用程序并对其进行配置。此配置应在设置了 IAM Identity Center 与 Redshift 之间的连接之后进行。步骤如下:

    1. 在 Amazon CLI 中,使用 modify-redshift-idc-application 命令启用 Lake Formation 服务与 IAM Identity Center 托管的 Redshift 应用程序的集成。此调用包括 service-integrations 参数,该参数设置为启用对 Lake Formation 进行授权的配置字符串值。

    2. 使用 create-lake-formation-identity-center-configuration 命令配置 Lake Formation。这将创建一个适用于 Lake Formation 的 IAM Identity Center 应用程序,该应用程序在 IAM Identity Center 门户中可见。管理员必须设置 ––cli-input-json 参数,其值是 JSON 文件的路径,该文件使用所有 Amazon CLI API 调用的标准格式。您必须包括以下各项的值:

      • CatalogId – Lake Formation 目录 ID。

      • InstanceArn – IAM Identity Center 实例 ARN 值。

管理员完成先决条件配置后,数据库管理员可以创建用于查询数据湖的外部架构。

  1. 管理员创建外部架构 – Redshift 数据库管理员使用以下 SQL 语句连接到数据库并创建外部架构:

    CREATE EXTERNAL SCHEMA if not exists my_external_schema from DATA CATALOG database 'my_lf_integrated_db' catalog_id '12345678901234';

    请注意,在这种情况下不需要指定 IAM 角色,因为访问权限是通过 IAM Identity Center 管理的。

  2. 管理员授予权限 – 管理员向 IAM Identity Center 组授予使用权限,这会授予对 Redshift 资源的权限。此步骤通过运行如下所示的 SQL 语句完成:

    GRANT USAGE ON SCHEMA "my_external_schema" to "IDCCO:sales";

    随后,管理员根据组织的要求,使用 Amazon CLI 授予 Lake Formation 在对象上的权限:

    aws lakeformation grant-permissions ...
  3. 用户运行查询 – 举例说明,此时销售人员组中的 IAM Identity Center 用户,可以通过查询编辑器 v2 登录到 Redshift 数据库。然后,他们可以运行访问外部架构中的表的查询,如以下示例:

    SELECT * from my_external_schema.table1;

使用 IAM Identity Center 和 Redshift 连接来连接到数据共享

通过 IAM Identity Center 管理访问权限时,您可以从不同的 Redshift 数据仓库访问数据共享。为此,您需要运行查询来设置外部数据库。完成这些步骤的要求是,假定您已在 Redshift 和 IAM Identity Center 之间建立连接,并且您已经创建了 Amazon Lake Formation 应用程序,如前面的过程所述。

  1. 创建外部数据库 – 管理员创建外部数据库用于数据共享,并通过其 ARN 进行引用。以下是演示如何操作的示例:

    CREATE DATABASE "redshift_external_db" FROM ARN 'arn:aws:glue:us-east-1:123456789012:database/redshift_external_db-iad' WITH NO DATA CATALOG SCHEMA;

    在本使用场景中,您将 IAM Identity Center 与 Redshift 用于身份管理,但不包括 IAM 角色。

  2. 管理员设置权限 – 创建数据库后,管理员向 IAM Identity Center 组授予使用权限。这将授予对 Redshift 资源的权限:

    GRANT USAGE ON DATABASE "my_external_db" to "IDCCO:sales";

    管理员还使用 Amazon CLI 授予 Lake Formation 在对象上的权限:

    aws lakeformation grant-permissions ...
  3. 用户运行查询 – 销售组中的用户可以基于分配的权限查询数据库中的表:

    select * from redshift_external_db.public.employees;

有关授予数据湖权限和授予数据共享权限的更多信息,请参阅 Granting permissions to users and groups。有关向架构或数据库授予使用权限的更多信息,请参阅 GRANT

使用可信令牌发布者将应用程序或工具与 OAuth 集成

如果您是工具供应商,则可以添加通过 IAM Identity Center 连接来连接到 Redshift 的功能。

将 Redshift 与 IAM Identity Center 结合使用的插件

此插件用于通过 IAM Identity Center 进行身份验证,它提供了额外的连接属性来简化身份验证:

插件名称 描述

IdpTokenAuthPlugin

身份验证插件,可接受 IAM Identity Center (IDC) 令牌,或者来自与 IDC 关联的任何网络身份提供商的 OIDC JWT。

com.amazon.redshift.plugin.IdpTokenAuthPlugin

适用于 ODBC 和 Python 的插件名称为 IdpTokenAuthPlugin。此外,ODBC 和 Python 不为插件使用完全限定类名。只有 JDBC 使用完全限定类名。在您的工具中,使用属性 plugin_name 输入名称值。在基于 Python 的工具中,此属性被称为 credentials_provider

该插件具有以下关联的连接选项:

  • IDC_Region – IAM Identity Center (IDC) 实例所在的 Amazon 区域。

  • Identity_Namespace – 使用 IdpTokenAuthPlugin 进行身份验证时要使用的身份命名空间。它有助于 Redshift 确定要使用哪个 IAM Identity Center 实例。

在您开发用于连接的工具中,您可在连接属性中输这些值。有关 JDBC 选项的更多信息,请参阅 JDBC 驱动程序版本 2.1 配置的选项。有关 ODBC 选项的更多信息,请参阅配置 ODBC 驱动程序选项

限制

以下限制适用:

  • 对于连接到 IAM Identity Center 的 Redshift,不支持基于 JDBC、ODBC 和 Python 的工具的身份验证。您必须自定义工具的驱动程序。它仅支持来自 Amazon QuickSight 和查询编辑器 v2 的连接。

  • 您的互联网浏览器的安全和隐私设置,尤其是那些控制安全 Cookie 设置的设置(例如 Firefox 的全面 Cookie 保护功能)可能导致从查询编辑器 v2 到 Redshift 数据库的连接尝试被阻止。要修复此问题,您可以将查询编辑器 v2 控制台站点 URL 添加到浏览器的跟踪保护例外列表中。要在 Firefox 中执行此操作,请单击浏览器地址栏中的盾牌,然后切换开关以关闭针对查询编辑器 v2 的跟踪保护。在 Chrome 中,如果您使用的是隐身模式,请单击地址栏中的眼睛图标以允许查询编辑器 v2 使用第三方 Cookie。