对计划查询进行身份验证
当您计划查询时,在 SQL 运行时使用下列身份验证方法之一。每种方法都需要查询编辑器 v2 上的不同输入组合。用于运行 SQL 语句的数据 API 支持这些身份验证方法。
用于运行查询的数据库用户或角色必须具有必要的数据库权限。例如,要授予对于表 mytable
的 IAMR: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
。以下示例策略允许数据库用户awsuser
和myuser
。{ "Version": "2012-10-17", "Statement": [ { "Sid": "UseTemporaryCredentialsForAllDbUsers", "Effect": "Allow", "Action": "redshift:GetClusterCredentials", "Resource": [ "arn:aws:redshift:*:*:dbuser:*/awsuser", "arn:aws:redshift:*:*:dbuser:*/myuser" ] } ] }