从 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;
这很好用。我的问题是我用于COPY
的CREDENTIALS
完全独立于运行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