このトピックのアクセス許可ポリシーの例は、使用可能な必須アクションとそれらのアクションが許可されるリソースを示しています。同様のアクセス許可ポリシーを 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
"
}
]
}
実行可能なアクション | 説明 |
---|---|
|
|
|
クエリが Resource ブロックで指定された AWS Lambda 関数を呼び出すことを許可します。例えば、MyAthenaLambdaFunction が呼び出される Lambda 関数の名前を指定する arn:aws:lambda:*: などです。例に示すように、複数の関数を指定できます。 |
例 – 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