Amazon Redshift 与 Amazon S3 访问权限管控的集成 - Amazon Redshift
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

Amazon Redshift 与 Amazon S3 访问权限管控的集成

通过与 Amazon S3 访问权限管控集成,可以无缝传播 IAM Identity Center 身份,来控制对 Amazon S3 数据的访问权限。此集成支持您根据 IAM Identity Center 用户和组授权 Amazon S3 数据访问权限。

有关 Amazon S3 访问权限管控的信息,请参阅使用 S3 访问权限管控管理访问权限

使用 Amazon S3 访问权限管控可为应用程序带来以下优势:

  • 基于 IAM Identity Center 身份,对 Amazon S3 数据进行精细的访问控制。

  • 跨 Amazon Redshift 和 Amazon S3 集中管理 IAM Identity Center 身份。

  • 您可以避免为 Amazon S3 访问权限管理单独的 IAM 权限。

工作方式

要将应用程序与 Amazon S3 访问权限管控集成,请执行以下操作:

  • 首先,使用 Amazon Web Services Management Console或 Amazon CLI 将 Amazon Redshift 配置为与 Amazon S3 访问权限管控集成。

  • 接下来,具有 IdC 管理员权限的用户使用 Amazon S3 访问权限管控服务,向特定 IdC 用户/组授予对 Amazon S3 存储桶或前缀的访问权限。有关更多信息,请参阅在 S3 访问权限管控中处理授权

  • 当经过 Redshift 身份验证的 IdC 用户运行访问 S3 的查询(如 COPY、UNLOAD 或 Spectrum 操作)时,Amazon Redshift 会从 Amazon S3 访问权限管控服务中检索该 IdC 身份范围内的临时 S3 访问凭证。

  • 然后,Amazon Redshift 使用检索到的临时凭证,来访问该查询的经授权的 Amazon S3 位置。

设置与 Amazon S3 访问权限管控的集成

要为 Amazon Redshift 设置与 Amazon S3 访问权限管控的集成,请执行以下操作:

使用 Amazon Web Services Management Console设置与 Amazon S3 访问权限管控的集成

  1. 打开 Amazon Redshift 控制台。

  2. 集群窗格中选择您的集群。

  3. 在集群的详细信息页面的身份提供者集成部分,启用与 S3 访问权限管控服务的集成。

    注意

    如果您未配置 IAM Identity Center,则不会显示身份提供者集成部分。有关更多信息,请参阅 Enabling Amazon IAM Identity Center

使用 Amazon CLI 启用与 Amazon S3 访问权限管控的集成

  1. 要创建一个启用了 S3 集成的新 Amazon Redshift IdC 应用程序,请执行以下操作:

    aws redshift create-redshift-idc-application <other parameters> --service-integrations '[ {"S3AccessGrants": [{"ReadWriteAccess": {"Authorization": "Enabled"}}]} ]'
  2. 要修改现有应用程序以启用 S3 访问权限管控集成,请执行以下操作:

    aws redshift modify-redshift-idc-application <other parameters> --service-integrations '[ {"S3AccessGrants": [{"ReadWriteAccess": {"Authorization": "Enabled"}}]} ]'
  3. 要修改现有应用程序以禁用 S3 访问权限管控集成,请执行以下操作:

    aws redshift modify-redshift-idc-application <other parameters> --service-integrations '[ {"S3AccessGrants": [{"ReadWriteAccess": {"Authorization": "Disabled"}}]} ]'

使用与 S3 访问权限管控的集成

配置 S3 访问权限管控集成后,访问 S3 数据的查询(例如 COPYUNLOAD 或 Spectrum 查询)将使用 IdC 身份进行授权。未使用 IdC 进行身份验证的用户也可以运行这些查询,但是这些用户账户无法利用 IdC 提供的集中式管理。

以下示例显示了通过 S3 访问权限管控集成运行的查询:

COPY table FROM 's3://mybucket/data'; // -- Redshift uses IdC identity UNLOAD ('SELECT * FROM table') TO 's3://mybucket/unloaded/' // -- Redshift uses IdC identity