首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从不同帐户的Python Lambda访问AWS Athena

从不同帐户的Python Lambda访问AWS Athena
EN

Stack Overflow用户
提问于 2020-03-03 19:17:20
回答 2查看 886关注 0票数 0

我有两个帐户A和B。S3 Buckets和雅典娜视图在帐户A中,Lambda在帐户B中。我想从我的Lambda中呼叫雅典娜。我还允许在S3存储桶策略中使用Lambda执行角色。当我试图从Lambda调用数据库时,它给我的错误是'Status': {'State': 'FAILED', 'StateChangeReason': 'SYNTAX_ERROR: line 1:15: Schema db_name does not exist'

下面是我的Lambda代码:

代码语言:javascript
复制
import boto3
import time

def lambda_handler(event, context):

    athena_client = boto3.client('athena')
    client_exc = athena_client.start_query_execution(
        QueryString='SELECT * FROM db_name.athena_view',
        ResultConfiguration={'OutputLocation': 's3://my-athena-out-bucket/'}
    )

    resp= athena_client.get_query_results(QueryExecutionId=client_exc['QueryExecutionId'])

请指点一下。

EN

回答 2

Stack Overflow用户

发布于 2020-03-03 20:08:20

执行以下操作-

Account(A)创建一个IAM-Role,它可以访问雅典娜和S3存储桶,还可以为account B中的角色添加权限,以在此角色上调用Assume。

帐户(B)创建一个IAM角色,并将其分配给Lambda,该角色将承担帐户A的角色,该帐户可以临时访问雅典娜和S3。

请参阅以下链接- https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html

票数 0
EN

Stack Overflow用户

发布于 2020-03-04 13:01:12

您必须:

Account-BAccount-A

  • AWS Lambda函数中的Account-A

  • Amazon雅典娜中的
  • 亚马逊S3存储桶

(这与您的previous question不同,您让Account-B中的雅典娜访问Account-A中的S3。在该场景中,Account-A中的存储桶策略足以授予在Account-B中运行的雅典娜访问S3的权限。)

Amazon Athena使用调用它的IAM用户或IAM角色的权限运行。因此,使用雅典娜的用户或角色需要拥有访问亚马逊S3中数据的权限。在您之前的问题中,这是通过一个Bucket Policy实现的,该bucket Policy为Lambda提供了访问不同帐户中的bucket的权限。

然而,在这个问题中,一个帐户中的Lambda想要在另一个帐户中使用亚马逊雅典娜。无法将Athena访问权限授予不同帐户中的用户。因此,您的Lambda函数将需要在雅典娜帐户中承担一个角色。

因此:

  • Account-A (具有雅典娜)中创建一个IAM角色,该角色授予使用雅典娜和相关的亚马逊S3存储桶的访问权限,并在Account-B中使用Lambda函数:
    • 应调用AssumeRole()以“成为”上述角色<代码>H229<代码>H130应使用返回的凭据创建新的D31,该凭据用于为Athena

创建boto3客户端

这将导致Lambda能够访问Account-A中的雅典娜,包括已经创建的任何表和视图。

如果不需要在雅典娜中定义的现有表和视图,那么可以在与Lambda相同的帐户中使用雅典娜,但是源S3存储桶需要根据您的previous question授予对Lambda的IAM角色的访问权限。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60506048

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档