从 lambda 中使用 redshift COPY 命令的权限

Posted

技术标签:

【中文标题】从 lambda 中使用 redshift COPY 命令的权限【英文标题】:Permissions to use redshift COPY command from within lambda 【发布时间】:2019-10-07 11:21:30 【问题描述】:

我有一个用 .net 核心编写的 lambda。它将从 redshift 调用 COPY 命令。我的 lambda 在有权访问 redshift 和 s3 的角色下执行。

我的COPY 命令如下所示:

COPY my_table_name FROM 's3://my_bucket/my_file.csv' CREDENTIALS 'aws_access_key_id=x;aws_secret_access_key=y' DELIMITER ',' CSV;

这很好用。我的问题是我用于COPYCREDENTIALS 完全独立于运行lambda 的角色。

有没有办法使用 lambda 在其下执行的角色来执行 COPY 命令?

【问题讨论】:

【参考方案1】:

我绝对建议使用基于角色的身份验证而不是基于密钥的身份验证,但我相信您需要将角色直接分配给您的 Redshift 集群,而不是尝试传递分配给您的 Lambda 函数的角色。 COPY 命令从 Redshift 集群内部运行,您的 Lambda 函数只是告诉 Redshift 运行该命令,因此它不能真正使用 Lambda 函数的角色。

请参阅 Redshift Role-Based authentication 的详细文档。

【讨论】:

以上是关于从 lambda 中使用 redshift COPY 命令的权限的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 Kinesis 将数据从 Lambda (Python) 发送到 Redshift

无法从 lambda 中的 python 连接到 aws redshift

无法从 AWS lambda 连接 AWS redshift

S3/Redshift/Lambda 日志在哪里?

Lambda - 存储/传递 Redshift 连接

如何从 lambda 函数异步传递红移查询?