View a markdown version of this page

连接到 Amazon Redshift - AWS 应用程序工作室

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

连接到 Amazon Redshift

要将 App Studio 与 Amazon Redshift 连接以使构建者能够在应用程序中访问和使用 Amazon Redshift 资源,您必须执行以下步骤:

第 1 步:创建和配置 Amazon Redshift 资源

使用以下步骤创建和配置用于应用程序工作室的 Amazon Redshift 资源。

设置 Amazon Redshift 以在 App Studio 中使用
  1. 登录 AWS 管理控制台 并打开亚马逊 Redshift 控制台,网址为。 https://console.aws.amazon.com/redshiftv2/

    我们建议使用中创建的管理用户注册参加 AWS 账户

  2. 创建 Redshift 无服务器数据仓库或 provisiond 集群。有关更多信息,请参阅亚马逊 Redshift 用户指南中的 “使用 Redshift 无服务器创建数据仓库” 或 “创建集群”。

  3. 配置完成后,选择查询数据打开查询编辑器。连接到数据库。

  4. 更改以下设置:

    1. 将 “隔离会话” 开关设置为OFF。这是必需的,这样您才能看到其他用户对数据所做的更改,例如来自正在运行的 App Studio 应用程序所做的更改。

    2. 选择 “齿轮” 图标。选择 Account settings (账户设置)。将最大并发连接数增加10。这是对可以连接到 Amazon Redshift 数据库的查询编辑器会话数量的限制。它不适用于其他客户端,例如 App Studio 应用程序。

  5. public架构下创建您的数据表。INSERT这些表中的任何初始数据。

  6. 在查询编辑器中运行以下命令:

    以下命令创建数据库用户并将其与 App Studio AppBuilderDataAccessRole 使用的名为 IAM 的角色连接起来。您将在后续步骤中创建 IAM 角色,此处的名称必须与为该角色指定的名称相匹配。

    CREATE USER "IAMR:AppBuilderDataAccessRole" WITH PASSWORD DISABLE;

    以下命令向 App Studio 授予所有表的所有权限。

    注意

    为了获得最佳安全实践,您应将此处的权限范围缩小到相应表所需的最低权限。有关该GRANT命令的更多信息,请参阅 Amazon Redshift 数据库开发人员指南中的 GR AN T。

    GRANT ALL ON ALL TABLES IN SCHEMA public to "IAMR:AppBuilderDataAccessRole";

第 2 步:创建具有相应 Amazon Redshift 权限的 IAM 策略和角色

要在 App Studio 中使用 Amazon Redshift 资源,管理员必须创建 IAM 策略和角色以授予应用程序工作室访问资源的权限。IAM 策略控制构建者可以使用的数据范围以及可以对这些数据调用哪些操作,例如创建、读取、更新或删除。然后,IAM 策略将附加到 App Studio 使用的 IAM 角色。

我们建议为每项服务和策略创建至少一个 IAM 角色。例如,如果构建者在 Amazon Redshift 中创建两个由不同表支持的应用程序,则管理员应创建两个 IAM 策略和角色,分别为 Amazon Redshift 中的每个表创建一个。

第 2a 步:使用适当的 Amazon Redshift 权限创建 IAM 政策

您在 App Studio 中创建和使用的 IAM 策略应仅包含应用程序遵循最佳安全实践所需的相应资源的最低权限。

使用相应 Amazon Redshift 权限创建 IAM 政策
  1. 使用有权创建 IAM 策略的用户登录 IAM 控制台。我们建议使用中创建的管理用户注册参加 AWS 账户

  2. 在左侧导航栏中,选择策略

  3. 选择创建策略

  4. 策略编辑器部分,选择 JSON 选项。

  5. 键入或粘贴 JSON 策略文档。以下选项卡包含预置和无服务器 Amazon Redshift 的示例策略。

    注意

    以下政策适用于使用通配符 () * 的所有 Amazon Redshift 资源。为了实现最佳安全实践,您应将通配符替换为要在 App Studio 中使用的资源的亚马逊资源名称 (ARN)。

    Provisioned
    JSON
    JSON
    { "Version":"2012-10-17", "Statement": [ { "Sid": "ProvisionedRedshiftForAppStudio", "Effect": "Allow", "Action": [ "redshift:DescribeClusters", "redshift:GetClusterCredentialsWithIAM", "redshift-data:ListDatabases", "redshift-data:ListTables", "redshift-data:DescribeTable", "redshift-data:DescribeStatement", "redshift-data:ExecuteStatement", "redshift-data:GetStatementResult" ], "Resource": "*" } ] }
    Serverless
    JSON
    JSON
    { "Version":"2012-10-17", "Statement": [ { "Sid": "ServerlessRedshiftForAppStudio", "Effect": "Allow", "Action": [ "redshift-serverless:ListNamespaces", "redshift-serverless:GetCredentials", "redshift-serverless:ListWorkgroups", "redshift-data:ListDatabases", "redshift-data:ListTables", "redshift-data:DescribeTable", "redshift-data:DescribeStatement", "redshift-data:ExecuteStatement", "redshift-data:GetStatementResult" ], "Resource": "*" } ] }
  6. 选择下一步

  7. 在 “查看并创建” 页面上,提供策略名称,例如RedshiftServerlessForAppStudioRedshiftProvisionedForAppStudio,以及描述(可选)。

  8. 选择创建策略来创建策略。

第 2b 步:创建 IAM 角色以授予 App Studio 访问亚马逊 Redshift 资源的权限

现在,创建一个使用您之前创建的策略的 IAM 角色。应用工作室将使用此政策来访问已配置的亚马逊 Redshift 资源。

创建 IAM 角色以授予 App Studio 访问亚马逊 Redshift 资源的权限
  1. 使用有权创建 IAM 角色的用户登录 IAM 控制台。我们建议使用中创建的管理用户注册参加 AWS 账户

  2. 在左侧导航栏中,选择角色

  3. 选择创建角色

  4. 可信实体类型中,选择自定义信任策略

  5. 将默认策略替换为以下策略,以允许 App Studio 应用程序在您的账户中代入此角色。

    您必须在策略中替换以下占位符。要使用的值可以在 App Studio 的 “账户设置” 页面中找到。

    • 111122223333替换为 AWS 用于设置 App Studio 实例的账户的账号,该AWS 账户在 App Studio 实例的账户设置中列为账户 ID。

    • 11111111-2222-3333-4444-555555555555替换为您的 App Studio 实例 ID,在 App Studio 实例的账户设置中列为实例 ID。

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:PrincipalTag/IsAppStudioAccessRole": "true", "sts:ExternalId": "11111111-2222-3333-4444-555555555555" } } } ] }

    选择下一步

  6. 添加权限中,搜索并选择您在上一步中创建的策略(RedshiftServerlessForAppStudioRedshiftProvisionedForAppStudio)。选择策略旁边的 + 将展开策略以显示其授予的权限,选中复选框将选中该策略。

    选择下一步

  7. 名称、查看和创建页面上,提供角色名称描述

    重要

    此处的角色名称必须与 第 1 步:创建和配置 Amazon Redshift 资源 (AppBuilderDataAccessRole) GRANT 命令中使用的角色名称相匹配。

  8. 步骤 3:添加标签中,选择添加新标签以添加以下标签以提供 App Studio 访问权限:

    • 密钥:IsAppStudioDataAccessRole

    • 价值:true

  9. 选择创建角色并记下生成的亚马逊资源名称 (ARN),在 App Studio 中创建 Amazon Redshift 连接器时需要该名称。

第 3 步:创建 Amazon Redshift 连接器

现在您已经配置了亚马逊 Redshift 资源以及 IAM 策略和角色,使用该信息在 App Studio 中创建连接器,构建者可以使用该连接器将其应用程序连接到 Amazon Redshift。

注意

您必须在 App Studio 中拥有管理员角色才能创建连接器。

为亚马逊 Redshift 创建连接器
  1. 导航到 App Studio。

  2. 在左侧导航栏的管理区域,选择连接器。您将被带到一个显示现有连接器列表的页面,其中包含有关每个连接器的一些详细信息。

  3. 选择 + 创建连接器

  4. 选择亚马逊 Redshift 连接器。

  5. 通过填写以下字段来配置您的连接器:

  6. 选择下一步。查看连接信息,然后选择创建

  7. 新创建的连接器将出现在连接器列表中。