【问题标题】:Allow athena along with white-listed IP addresses to access data允许 athena 以及列入白名单的 IP 地址访问数据
【发布时间】:2020-12-23 19:02:28
【问题描述】:

我计划为名为“athenadata162”的存储桶设置此 S3 存储桶策略。 我只希望当前帐户中的 2 个办公室 IP 地址和 athena 用户可以访问此存储桶。 我想知道该政策是否正确编写以达到目的。 它基于博客文章:

https://aws.amazon.com/blogs/security/how-to-define-least-privileged-permissions-for-actions-called-by-aws-services/

我不确定如何正确设置这部分...

  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/BizMetricsQuery"
  },

这是我尝试过的:

{
    "Version": "2008-10-17",
    "Statement": [
        {
            "Sid": "",
            "Effect": "Deny",
            "Principal": {
                "AWS": "*"
            },
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::testme1623/*",
            "Condition": {
                "NotIpAddress": {
                    "aws:SourceIp": [
                        "1.2.3.4/32",
                        "5.6.7.8/32"
                    ], "aws:CalledVia": "athena.amazonaws.com"
                }
            }
        }
    ]
}

如果我不使用 NotIpAddress 的第二个 Condition 语句,则 IP 地址正确列入白名单,但 Athena 无权访问文件。

【问题讨论】:

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


【解决方案1】:

当您使用 Athena 运行查询时,访问 S3 的是 Athena 服务,S3/IAM 将看到其 IP 而不是客户端的 IP。您可以做的最好的事情可能是像您一样使用aws:CalledVia 限制对存储桶的访问,并在 Athena 级别应用 IP 限制,例如athena:StartQueryExecution——当然不会是一回事。

您还可以设置IP restriction on the assume role policy,然后将存储桶的访问权限限制为仅限该角色。用户在运行查询之前需要承担该角色,并且只能从指定的 IP 号码承担该角色。

【讨论】:

    猜你喜欢
    • 2021-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-18
    • 2012-08-03
    • 2012-01-16
    • 1970-01-01
    相关资源
    最近更新 更多