允许访问适用于外部配置 Hive 元存储的 Athena 数据连接器 - Amazon Athena
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

允许访问适用于外部配置 Hive 元存储的 Athena 数据连接器

本主题中的权限策略示例演示了需要允许的操作以及允许执行这些操作的资源。在将类似的权限策略附加到 IAM 身份之前,请仔细检查这些策略并根据您的需求修改它们。

– 允许 IAM 委托人使用适用于外部 Hive 元存储的 Athena 数据连接器查询数据

除了对 Athena 操作授予完全访问权限的 Amazon 托管策略:AmazonAthenaFullAccess 之外,还将以下策略附加到 IAM 委托人。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor1", "Effect": "Allow", "Action": [ "lambda:GetFunction", "lambda:GetLayerVersion", "lambda:InvokeFunction" ], "Resource": [ "arn:aws:lambda:*:111122223333:function:MyAthenaLambdaFunction", "arn:aws:lambda:*:111122223333:function:AnotherAthenaLambdaFunction", "arn:aws:lambda:*:111122223333:layer:MyAthenaLambdaLayer:*" ] }, { "Sid": "VisualEditor2", "Effect": "Allow", "Action": [ "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:PutObject", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload" ], "Resource": "arn:aws:s3:::MyLambdaSpillBucket/MyLambdaSpillLocation" } ] }
权限说明
允许的操作 说明
"s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:PutObject", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload"

s3 操作允许从指定为 "arn:aws:s3:::MyLambdaSpillBucket/MyLambdaSpillLocation" 的资源读取和写入到该资源,其中 MyLambdaSpillLocation 标识在调用的一个或多个 Lambda 函数的配置中指定的溢出存储桶。仅当您使用 Lambda 层创建自定义运行时依赖关系以减少部署时函数构件大小时,才需要 arn:aws:lambda:*:MyAWSAcctId:layer:MyAthenaLambdaLayer:* 资源标识符。最后一个位置的 * 是图层版本的通配符。

"lambda:GetFunction", "lambda:GetLayerVersion", "lambda:InvokeFunction"
允许查询调用 Resource 块中指定的 Amazon Lambda 函数。例如 arn:aws:lambda:*:MyAWSAcctId:function:MyAthenaLambdaFunction,其中 MyAthenaLambdaFunction 指定要调用的 Lambda 函数的名称。如示例中所示,可以指定多个函数。
– 允许 IAM 委托人创建适用于外部 Hive 元存储的 Athena 数据连接器

除了对 Athena 操作授予完全访问权限的 Amazon 托管策略:AmazonAthenaFullAccess 之外,还将以下策略附加到 IAM 委托人。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "lambda:GetFunction", "lambda:ListFunctions", "lambda:GetLayerVersion", "lambda:InvokeFunction", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:PublishLayerVersion", "lambda:DeleteLayerVersion", "lambda:UpdateFunctionConfiguration", "lambda:PutFunctionConcurrency", "lambda:DeleteFunctionConcurrency" ], "Resource": "arn:aws:lambda:*:111122223333: function: MyAthenaLambdaFunctionsPrefix*" } ] }

权限说明

允许查询为 Resource 块中指定的 Amazon Lambda 函数调用 Amazon Lambda 函数。例如 arn:aws:lambda:*:MyAWSAcctId:function:MyAthenaLambdaFunction,其中 MyAthenaLambdaFunction 指定要调用的 Lambda 函数的名称。如示例中所示,可以指定多个函数。