Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon s3 允许雅典娜和白色列出的IP地址访问数据_Amazon S3_Amazon Iam_Amazon Athena - Fatal编程技术网

Amazon s3 允许雅典娜和白色列出的IP地址访问数据

Amazon s3 允许雅典娜和白色列出的IP地址访问数据,amazon-s3,amazon-iam,amazon-athena,Amazon S3,Amazon Iam,Amazon Athena,我计划为名为“Athenadata 162”的存储桶设置此S3存储桶策略。 我只希望2个office IP地址和当前帐户中的athena用户能够访问此bucket。 我想知道这项政策是否正确地用于此目的。 它基于以下博客文章: 我不知道如何正确设置此部件 "Principal": { "AWS": "arn:aws:iam::111122223333:role/BizMetricsQuery" }, 以下是我尝试过的

我计划为名为“Athenadata 162”的存储桶设置此S3存储桶策略。 我只希望2个office IP地址和当前帐户中的athena用户能够访问此bucket。 我想知道这项政策是否正确地用于此目的。 它基于以下博客文章:

我不知道如何正确设置此部件

  "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的第二个条件语句,则IP地址将正确列出,但Athena无法访问文件。

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


您还可以设置,然后将对bucket的访问限制为仅该角色。用户需要在运行查询之前担任该角色,并且只能从指定的IP号码担任该角色。

Athena不支持基于aws:SourceIp条件密钥限制或允许访问Amazon S3资源。参考