让AWS Athena担任访问外部S3存储桶的角色

时间:2017-12-21 18:56:14

标签: amazon-s3 amazon-iam amazon-athena

我在我的帐户中通过Glue设置了一个Athena表,该帐户应该查询我朋友帐户中的数据。我的朋友创建了一个IAM角色,我可以假设它有权访问S3数据。

我的Athena查询错误,抱怨他们没有权限访问S3存储桶。有没有办法让Athena承担这个角色,以便它可以进入S3存储桶?

2 个答案:

答案 0 :(得分:1)

假设目前无法通过雅典娜担任角色。 AWS确实建议使用存储桶策略来访问跨帐户的s3存储桶。

“交叉帐户权限”部分中here描述了唯一当前可能的设置。

答案 1 :(得分:-1)

不需要跨帐户启用。

托管帐户(帐户A)

  1. 具有雅典娜政策/资源级别政策

  2. 创建一个角色(由另一个帐户B承担)并附加在步骤1中创建的策略。

  3. 更新可信实体:将IAM用户/角色包括在另一个帐户B中

     {
       "Version": "2012-10-17",
       "Statement": [
         {
           "Effect": "Allow",
           "Principal": {
             "AWS": [
               "arn:aws:iam::Account B:user/User A"
             ]
           },
           "Action": "sts:AssumeRole",
           "Condition": {}
         }
       ]
     }
    

消费应用程序

  1. 创建策略

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": "sts:AssumeRole",
                "Resource": [
                    "arn:aws:iam::Account A:role/Role Created in Step 2 as Hosting Account A"
                ]
            }
        ]
    }
    
  2. 将策略附加给用户