外部 Hive メタストア用の Athena データコネクタへのアクセスを許可する - Amazon Athena

外部 Hive メタストア用の Athena データコネクタへのアクセスを許可する

このトピックのアクセス許可ポリシーの例は、使用可能な必須アクションとそれらのアクションが許可されるリソースを示しています。同様のアクセス許可ポリシーを IAM ID にアタッチする前に、これらのポリシーを慎重に検討し、要件に従って変更してください。

– IAM プリンシパルが、外部 Hive メタストア用の Athena データコネクタを使用してデータをクエリすることを許可する

以下のポリシーは、IAM プリンシパルに、Athena アクションへの完全なアクセス権を付与する AWS 管理ポリシー: AmazonAthenaFullAccess に加えてアタッチされるポリシーです。

{ "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 関数の設定で指定されているスピルバケットを示します。arn:aws:lambda:*:MyAWSAcctId:layer:MyAthenaLambdaLayer:* リソース識別子は、デプロイ時の関数アーティファクトのサイズを削減するために、Lambda レイヤーを使用してカスタムランタイムの依存関係を作成する場合にのみ必要です。最後の位置にある * は、レイヤーバージョンのワイルドカードです。

"lambda:GetFunction", "lambda:GetLayerVersion", "lambda:InvokeFunction"
クエリが Resource ブロックで指定された AWS Lambda 関数を呼び出すことを許可します。例えば、MyAthenaLambdaFunction が呼び出される Lambda 関数の名前を指定する arn:aws:lambda:*:MyAWSAcctId:function:MyAthenaLambdaFunction などです。例に示すように、複数の関数を指定できます。
– IAM プリンシパルが外部 Hive メタストア用の Athena データコネクタを作成することを許可する

以下のポリシーは、IAM プリンシパルに、Athena アクションへの完全なアクセス権を付与する AWS 管理ポリシー: AmazonAthenaFullAccess に加えてアタッチされるポリシーです。

{ "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 ブロックで指定された AWS Lambda 関数の AWS Lambda 関数を呼び出すことを許可します。例えば、MyAthenaLambdaFunction が呼び出される Lambda 関数の名前を指定する arn:aws:lambda:*:MyAWSAcctId:function:MyAthenaLambdaFunction などです。例に示すように、複数の関数を指定できます。