配置您的 AWS 账户
可以执行这组任务,来将查询编辑器 v2 配置为查询 Amazon Redshift 数据库。使用适当的权限,您可以访问当前 AWS 区域中您的 AWS 账户拥有的 Amazon Redshift 集群或工作组中的数据。
管理员第一次为您的 AWS 账户配置查询编辑器 v2 时,他们会选择用于加密查询编辑器 v2 资源的 AWS KMS key。默认情况下,AWS 拥有的密钥用于加密资源。或者,管理员可在配置页面中为密钥选择 Amazon 资源名称(ARN)来使用客户托管密钥。
配置账户后,AWS KMS 无法更改加密设置。有关通过查询编辑器 v2 创建和使用客户托管式密钥的更多信息,请参阅创建用于查询编辑器 v2 的 AWS KMS 客户托管式密钥。(可选)管理员还可以选择用于某些功能(例如从文件加载数据)的 S3 桶和路径。有关更多信息,请参阅 从本地文件设置和工作流加载数据。
Amazon Redshift 查询编辑器 v2 支持身份验证、加密、隔离和合规性,以确保静态数据和传输中的数据安全。有关数据安全性和查询编辑器 v2 的更多信息,请参阅以下内容:
AWS CloudTrail 捕获由您的 AWS 账户 或代表该账户发出的 API 调用和相关事件,并将日志文件传输到您指定的 Amazon S3 桶。您可以标识哪些用户和账户调用了 AWS、发出调用的源 IP 地址以及调用的发生时间。要了解有关查询编辑器 v2 如何在 AWS CloudTrail 上运行的更多信息,请参阅使用 Cloudtrail 进行日志记录。有关 CloudTrail 的更多信息,请参阅《AWS CloudTrail 用户指南》。
查询编辑器 v2 对其部分资源具有可调配额。有关更多信息,请参阅Amazon Redshift 对象的配额。
使用查询编辑器 v2 创建的资源
在查询编辑器 v2 中,您可以创建资源,例如保存的查询和图表。查询编辑器 v2 中的所有资源都与 IAM 角色或用户关联。我们建议将策略附加到 IAM 角色并将该角色分配给用户。
在查询编辑器 v2 中,您可以添加和删除已保存查询和图表的标签。您可以在设置自定义 IAM 策略或搜索资源时使用这些标签。您还可以使用 AWS Resource Groups 标签编辑器来管理标签。
您可以使用 IAM 策略设置 IAM 角色,以便与 AWS 区域中相同 AWS 账户中的其他人共享查询。
创建用于查询编辑器 v2 的 AWS KMS 客户托管式密钥
创建对称加密客户托管式密钥:
使用 AWS KMS 控制台或 AWS KMS API 操作,您可以创建对称加密客户托管式密钥来加密查询编辑器 v2 资源。有关创建密钥的说明,请参阅《AWS Key Management Service 开发人员指南》中的创建对称加密 AWS KMS 密钥。
密钥策略
密钥策略控制对客户托管密钥的访问。每个客户托管式密钥必须只有一个密钥政策,其中包含确定谁可以使用密钥以及如何使用密钥的声明。创建客户托管式密钥时,可以指定密钥策略。有关更多信息,请参阅《AWS Key Management Service 开发人员指南》中的管理对 AWS KMS 密钥的访问。
要将您的客户托管式密钥与 Amazon Redshift 查询编辑器 v2 一起使用,密钥策略中必须允许以下 API 操作:
-
kms:GenerateDataKey
– 生成唯一的对称数据密钥以加密您的数据。 -
kms:Decrypt
– 解密客户托管式密钥加密的数据。 -
kms:DescribeKey
– 提供客户托管式密钥详细信息以允许验证密钥服务。
以下是 AWS 账户 111122223333
的示例 AWS KMS 策略。在第一部分中,kms:ViaService
限制对查询编辑器 v2 服务的密钥使用(在策略中名为 sqlworkbench.
)。使用密钥的 AWS 账户 必须为 region
.amazonaws.com111122223333
。在第二部分中,AWS 账户 111122223333
的根用户和主要管理员可以访问密钥。
当您创建 AWS 账户 时,最初使用的是一个对账户中所有 AWS 服务 和资源拥有完全访问权限的登录身份。此身份称为 AWS 账户 根用户,使用您创建账户时所用的电子邮件地址和密码登录,即可获得该身份。强烈建议您不要使用根用户执行日常任务。保护好根用户凭证,并使用这些凭证来执行仅根用户可以执行的任务。有关需要您以根用户身份登录的任务的完整列表,请参阅《IAM 用户指南》中的需要根用户凭证的任务。
{ "Version": "2012-10-17", "Id": "key-consolepolicy", "Statement": [ { "Sid": "Allow access to principals authorized to use Amazon Redshift Query Editor V2", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt", "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "sqlworkbench.
region
.amazonaws.com", "kms:CallerAccount": "111122223333
" } } }, { "Sid": "Allow access for key administrators", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333
:root" }, "Action": [ "kms:*" ], "Resource": "arn:aws:kms:region
:111122223333
:key/key_ID" } ] }
以下资源提供有关 AWS KMS 密钥的更多信息:
-
有关 AWS KMS 策略的更多信息,请参阅《AWS Key Management Service 开发人员指南》中的在策略中指定权限。
-
有关 AWS KMS 策略故障排除的信息,请参阅《AWS Key Management Service 开发人员指南》中的密钥访问故障排除。
-
有关密钥的更多信息,请参阅《AWS Key Management Service 开发人员指南》中的 AWS KMS 密钥。
访问查询编辑器 v2
如要访问查询编辑器 v2,您需要相应权限。管理员可以将下面的任何一种 AWS 托管式策略附加到该角色以授予权限。(我们建议将策略附加到 IAM 角色并将该角色分配给用户。) 这些 AWS 托管式策略使用不同的选项编写,可控制标记资源允许共享查询的方式。您可以使用 IAM 控制台 (https://console.aws.amazon.com/iam/
-
AmazonRedshiftQueryEditorV2FullAccess – 授予 Amazon Redshift 查询编辑器 v2 操作和资源的完全访问权限。此策略还授予访问其它所需服务的权限。
-
AmazonRedshiftQueryEditorV2NoSharing – 授予在不共享资源的情况下使用 Amazon Redshift 查询编辑器 v2 的权限。此策略还授予访问其它所需服务的权限。
-
AmazonRedshiftQueryEditorV2ReadSharing – 授予在共享有限制资源的情况下使用 Amazon Redshift 查询编辑器 v2 的权限。授予主体可以阅读与其团队共享的资源,但无法更新它们。此策略还授予访问其它所需服务的权限。
-
AmazonRedshiftQueryEditorV2ReadWriteSharing – 授予在共享资源的情况下使用 Amazon Redshift 查询编辑器 v2 的权限。授予主体可以读取和更新与其团队共享的资源。此策略还授予访问其它所需服务的权限。
您还可以根据提供的托管式策略中允许和拒绝的权限创建您自己的策略。如果您使用 IAM 控制台策略编辑器创建自己的策略,请选择 SQL Workbench 作为您在可视化编辑器中创建策略的服务。查询编辑器 v2 使用可视化编辑器和 IAM policy simulator 中的服务名称 AWS SQL Workbench。
要让主体(分配了 IAM 角色的用户)能够连接到 Amazon Redshift 集群,他们需要其中一个查询编辑器 v2 托管式策略中的权限。他们还需要对集群的 redshift:GetClusterCredentials
权限。要获得此权限,具有管理权限的人员可以使用临时凭证,将策略附加到用于连接到集群的 IAM 角色。您可以将策略范围限定为特定集群,也可以设为常规范围。有关使用临时证书权限的更多信息,请参阅创建有权调用 GetClusterCredentials 的 IAM 角色或用户。
要让主体(通常是分配了 IAM 角色的用户)能够在账户设置页面中为账户中的其他人开启导出结果集的功能,他们需要将 sqlworkbench:UpdateAccountExportSettings
权限附加到角色。此权限包含在 AmazonRedshiftQueryEditorV2FullAccess
AWS 托管式策略中。
随着新功能添加到查询编辑器 v2,AWS 托管式策略将根据需要更新。如果您根据提供的托管式策略中允许和拒绝的权限创建自己的策略,请编辑您的策略以使其与托管式策略的更改保持同步。有关 Amazon Redshift 托管式策略的更多信息,请参阅适用于 Amazon Redshift 的 AWS 托管式策略。
要提供访问权限,请为您的用户、组或角色添加权限:
-
AWS IAM Identity Center 中的用户和群组:
创建权限集合。按照《AWS IAM Identity Center 用户指南》中创建权限集的说明进行操作。
-
通过身份提供商在 IAM 中托管的用户:
创建适用于身份联合验证的角色。按照《IAM 用户指南》中为第三方身份提供商创建角色(联合身份验证)的说明进行操作。
-
IAM 用户:
-
创建您的用户可以担任的角色。按照《IAM 用户指南》中为 IAM 用户创建角色的说明进行操作。
-
(不推荐使用)将策略直接附加到用户或将用户添加到用户组。按照《IAM 用户指南》中向用户添加权限(控制台)中的说明进行操作。
-
注意
如果 AWS IAM Identity Center 管理员删除了整个账户中某个特定权限集的所有权限集关联,则最初与所删除权限集关联的所有查询编辑器资源都将无法再访问。如果以后重新创建了相同的权限,系统还会创建一个新的内部标识符。由于内部标识符已更改,因此以前用户拥有的对查询编辑器资源的访问权限将不再有效。在管理员删除权限集之前,建议权限集的用户应导出查询编辑器资源作为备份。
设置主体标签以从查询编辑器 v2 连接到集群或工作组
要使用联合用户选项连接到您的集群或工作组,请使用主体标签设置 IAM 角色或用户。或者,设置身份提供者 (IdP) 以传入 RedshiftDbUser
和(可选)RedshiftDbGroups
。有关使用 IAM 管理标签的更多信息,请参阅《IAM 用户指南》中的在 AWS Security Token Service 中传递会话标签。要使用 AWS Identity and Access Management 设置访问权限,管理员可以使用 IAM 控制台 (https://console.aws.amazon.com/iam/
将主体标签添加到 IAM 角色中
登录AWS Management Console,然后通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/
。 -
在导航窗格中选择 Roles。
-
使用联合用户选择需要访问查询编辑器 v2 的角色。
-
选择标签选项卡。
-
选择管理标签。
-
选择添加标签,然后在键中输入
RedshiftDbUser
,并输入联合用户名的值。 -
(可选)选择添加标签,然后在键中输入
RedshiftDbGroups
,并且输入要与用户关联的组名称的值。 -
选择保存更改以查看与您选择的 IAM 角色关联的标签列表。传播更改可能需要几秒时间。
-
要使用联合用户,请在传播更改后刷新查询编辑器 v2 页面。
设置身份提供者 (IdP) 以传递主体标签
使用身份提供者 (IdP) 设置标签的过程因 IdP 而异。有关如何将用户和组信息传递给 SAML 属性的说明,请参阅 IdP 文档。正确进行配置后,以下属性将显示在 SAML 响应中,AWS Security Token Service 使用此响应填充 RedshiftDbUser
和 RedshiftDbGroups
的主体标签。
<Attribute Name="https://aws.amazon.com/SAML/Attributes/PrincipalTag:RedshiftDbUser"> <AttributeValue>
db-user-name
</AttributeValue> </Attribute> <Attribute Name="https://aws.amazon.com/SAML/Attributes/PrincipalTag:RedshiftDbGroups"> <AttributeValue>db-groups
</AttributeValue> </Attribute>
可选的 db_groups
必须是以冒号分隔的列表,例如 group1:group2:group3
。
此外,您还可以设置 TransitiveTagKeys
属性以在角色链接过程中保留标签。
<Attribute Name="https://aws.amazon.com/SAML/Attributes/TransitiveTagKeys"> <AttributeValue>RedshiftDbUser</AttributeValue> <AttributeValue>RedshiftDbGroups</AttributeValue> </Attribute>
有关设置查询编辑器 v2 的更多信息,请参阅使用查询编辑器 v2 所需的权限 。
有关如何设置 Active Directory 联合身份验证服务 (AD FS) 的信息,请参阅博客文章:使用 Active Directory 联合身份验证服务 (AD FS) 进行 Amazon Redshift 查询编辑器 v2 联合访问
有关如何设置 Okta 的信息,请参阅博客文章:通过 Okta 对 Amazon Redshift 查询编辑器 v2 进行联合单点登录访问
注意
当您使用查询编辑器 v2 的联合用户连接选项连接到集群或工作组时,身份提供者 (IdP) 可以为 RedshiftDbUser
和 RedshiftDbGroups
提供自定义主体标签。目前,AWS IAM Identity Center 不支持将自定义主体标签直接传递给查询编辑器 v2。