对计划查询进行身份验证 - Amazon Redshift

对计划查询进行身份验证

当您计划查询时,在 SQL 运行时使用下列身份验证方法之一。每种方法都需要查询编辑器 v2 上的不同输入组合。用于运行 SQL 语句的数据 API 支持这些身份验证方法。

用于运行查询的数据库用户或角色必须具有必要的数据库权限。例如,要授予对于表 mytableIAMR:MyRedshiftQEv2Scheduler 权限,请运行以下 SQL 命令。

GRANT all ON TABLE mytable TO "IAMR:MyRedshiftQEv2Scheduler";

要查看集群或工作组中的数据库用户列表,请查询系统视图 PG_USER_INFO

注意

您为其计划查询的任何 Redshift Serverless 工作组都必须使用键 RedshiftDataFullAccess 进行标记。有关更多信息,请参阅 授予对 Amazon Redshift 数据 API 的访问权限

作为标记工作组的替代方法,您可以向 IAM 角色(随计划指定)添加允许 redshift-serverless:GetCredentials 的内联策略。例如:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "UseTemporaryCredentialsForAllServerlessWorkgroups", "Effect": "Allow", "Action": "redshift-serverless:GetCredentials", "Resource": [ "arn:aws:redshift-serverless:*:*:workgroup/*" ] } ] }
AWS Secrets Manager

使用此方法,为存储在 AWS Secrets Manager 中的 secret-arn 提供一个密钥值。此密钥包含用于连接到数据库的凭证。在创建集群或工作组时,您可能已经使用适当的凭证创建了密钥。密钥必须使用键 RedshiftDataFullAccess 进行标记。如果标签键尚不存在,请使用 AWS Secrets Manager 控制台进行添加。有关创建密钥的信息,请参阅为数据库连接凭证创建密钥

有关最低权限的更多信息,请参阅《AWS Secrets Manager 用户指南》中的使用 AWS Secrets Manager 创建和管理密钥

临时凭证

使用此方法,在连接到集群中的数据库时,需提供您的数据库名称数据库用户值。在连接到工作组中的数据库时,只需提供您的数据库名称

连接到集群时,AmazonRedshiftDataFullAccess 策略允许名为 redshift_data_api_user 的数据库用户拥有对 redshift:GetClusterCredentials 的权限。如果要使用其他数据库用户运行 SQL 语句,请向附加到您集群的 IAM 角色添加策略以允许 redshift:GetClusterCredentials。以下示例策略允许数据库用户 awsusermyuser

{ "Version": "2012-10-17", "Statement": [ { "Sid": "UseTemporaryCredentialsForAllDbUsers", "Effect": "Allow", "Action": "redshift:GetClusterCredentials", "Resource": [ "arn:aws:redshift:*:*:dbuser:*/awsuser", "arn:aws:redshift:*:*:dbuser:*/myuser" ] } ] }