Athena Federated Query を許可する IAM 許可ポリシーの例 - Amazon Athena

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Athena Federated Query を許可する IAM 許可ポリシーの例

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

IAM アイデンティティへのポリシーのアタッチに関する詳細については、「IAM ユーザーガイド」の「IAM ID のアクセス許可の追加および削除」を参照してください。

– IAM プリンシパルが Athena Federated Query を使用し、実行して結果を返すことを許可する

以下のアイデンティティベースの許可ポリシーは、ユーザーまたは他の IAM プリンシパルが Athena の横串検索を使用するために必要なアクションを許可します。これらのアクションの実行が許可されているプリンシパルは、フェデレーティッドデータソースに関連付けられた Athena カタログを指定するクエリを実行できます。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Athena", "Effect": "Allow", "Action": [ "athena:GetDataCatalog", "athena:GetQueryExecution", "athena:GetQueryResults", "athena:GetWorkGroup", "athena:StartQueryExecution", "athena:StopQueryExecution" ], "Resource": [ "arn:aws:athena:*:111122223333:workgroup/WorkgroupName", "arn:aws:athena:aws_region:111122223333:datacatalog/DataCatalogName" ] }, { "Sid": "ListAthenaWorkGroups", "Effect": "Allow", "Action": "athena:ListWorkGroups", "Resource": "*" }, { "Sid": "Lambda", "Effect": "Allow", "Action": "lambda:InvokeFunction", "Resource": [ "arn:aws:lambda:*:111122223333:function:OneAthenaLambdaFunction", "arn:aws:lambda:*:111122223333:function:AnotherAthenaLambdaFunction" ] }, { "Sid": "S3", "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListMultipartUploadParts", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::MyLambdaSpillBucket", "arn:aws:s3:::MyLambdaSpillBucket/*", "arn:aws:s3:::MyQueryResultsBucket", "arn:aws:s3:::MyQueryResultsBucket/*" ] } ] }
許可の説明
実行可能なアクション 説明
"athena:GetQueryExecution", "athena:GetQueryResults", "athena:GetWorkGroup", "athena:StartQueryExecution", "athena:StopQueryExecution"

横串検索の実行に必要な Athena の許可です。

"athena:GetDataCatalog", "athena:GetQueryExecution," "athena:GetQueryResults", "athena:GetWorkGroup", "athena:StartQueryExecution", "athena:StopQueryExecution"

フェデレーティッドビュークエリの実行に必要な Athena の権限です。GetDataCatalogビューにはアクションが必要です。

"lambda:InvokeFunction"
AWS Lambda AWS Lambda Resourceブロックで指定された関数の関数をクエリで呼び出すことができます。たとえばarn:aws:lambda:*:MyAWSAcctId:function:MyAthenaLambdaFunction、where は呼び出される Lambda MyAthenaLambdaFunction関数の名前を指定します。例に示すように、複数の関数を指定できます。
"s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListMultipartUploadParts", "s3:PutObject"

実行する IAM プリンシパルのクエリ出力バケットにアクセスするには、s3:ListBuckets3:GetBucketLocationおよびの権限が必要です。StartQueryExecution

s3:PutObjects3:ListMultipartUploadPartss3:AbortMultipartUploadarn:aws:s3:::MyQueryResultsBucket/*リソース識別子(は Athena クエリ結果バケット)で指定されているクエリ結果バケットのすべてのサブフォルダにクエリ結果を書き込むことができます。MyQueryResultsBucket詳細については、「クエリ結果、最近のクエリ、および出力ファイルの使用」を参照してください。

s3:GetObjectとして指定されたリソースのクエリ結果とクエリ履歴を読み取ることができます。ここでarn:aws:s3:::MyQueryResultsBucketMyQueryResultsBucketは Athena クエリ結果バケットです。

s3:GetObjectまた、Lambda 関数または呼び出される関数の設定で指定された場所"arn:aws:s3:::MyLambdaSpillBucket/MyLambdaSpillPrefix*"MyLambdaSpillPrefix、として指定されたリソースからの読み取りも許可されます。

– IAM プリンシパルにデータソースコネクタの作成を許可する
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "lambda:CreateFunction", "lambda:ListVersionsByFunction", "iam:CreateRole", "lambda:GetFunctionConfiguration", "iam:AttachRolePolicy", "iam:PutRolePolicy", "lambda:PutFunctionConcurrency", "iam:PassRole", "iam:DetachRolePolicy", "lambda:ListTags", "iam:ListAttachedRolePolicies", "iam:DeleteRolePolicy", "lambda:DeleteFunction", "lambda:GetAlias", "iam:ListRolePolicies", "iam:GetRole", "iam:GetPolicy", "lambda:InvokeFunction", "lambda:GetFunction", "lambda:ListAliases", "lambda:UpdateFunctionConfiguration", "iam:DeleteRole", "lambda:UpdateFunctionCode", "s3:GetObject", "lambda:AddPermission", "iam:UpdateRole", "lambda:DeleteFunctionConcurrency", "lambda:RemovePermission", "iam:GetRolePolicy", "lambda:GetPolicy" ], "Resource": [ "arn:aws:lambda:*:111122223333:function:MyAthenaLambdaFunctionsPrefix*", "arn:aws:s3:::awsserverlessrepo-changesets-1iiv3xa62ln3m/*", "arn:aws:iam::*:role/RoleName", "arn:aws:iam::111122223333:policy/*" ] }, { "Sid": "VisualEditor1", "Effect": "Allow", "Action": [ "cloudformation:CreateUploadBucket", "cloudformation:DescribeStackDriftDetectionStatus", "cloudformation:ListExports", "cloudformation:ListStacks", "cloudformation:ListImports", "lambda:ListFunctions", "iam:ListRoles", "lambda:GetAccountSettings", "ec2:DescribeSecurityGroups", "cloudformation:EstimateTemplateCost", "ec2:DescribeVpcs", "lambda:ListEventSourceMappings", "cloudformation:DescribeAccountLimits", "ec2:DescribeSubnets", "cloudformation:CreateStackSet", "cloudformation:ValidateTemplate" ], "Resource": "*" }, { "Sid": "VisualEditor2", "Effect": "Allow", "Action": "cloudformation:*", "Resource": [ "arn:aws:cloudformation:*:111122223333:stack/aws-serverless-repository-MyCFStackPrefix*/*", "arn:aws:cloudformation:*:111122223333:stack/serverlessrepo-MyCFStackPrefix*/*", "arn:aws:cloudformation:*:*:transform/Serverless-*", "arn:aws:cloudformation:*:111122223333:stackset/aws-serverless-repository-MyCFStackPrefix*:*", "arn:aws:cloudformation:*:111122223333:stackset/serverlessrepo-MyCFStackPrefix*:*" ] }, { "Sid": "VisualEditor3", "Effect": "Allow", "Action": "serverlessrepo:*", "Resource": "arn:aws:serverlessrepo:*:*:applications/*" } ] }
許可の説明
実行可能なアクション 説明
"lambda:CreateFunction", "lambda:ListVersionsByFunction", "lambda:GetFunctionConfiguration", "lambda:PutFunctionConcurrency", "lambda:ListTags", "lambda:DeleteFunction", "lambda:GetAlias", "lambda:InvokeFunction", "lambda:GetFunction", "lambda:ListAliases", "lambda:UpdateFunctionConfiguration", "lambda:UpdateFunctionCode", "lambda:AddPermission", "lambda:DeleteFunctionConcurrency", "lambda:RemovePermission", "lambda:GetPolicy" "lambda:GetAccountSettings", "lambda:ListFunctions", "lambda:ListEventSourceMappings",

リソースとしてリストされている Lambda 関数の作成と管理を許可します。この例では、リソース識別子に名前プレフィックスが使用されています。ここでarn:aws:lambda:*:MyAWSAcctId:function:MyAthenaLambdaFunctionsPrefix*MyAthenaLambdaFunctionsPrefix、Lambda 関数のグループの名前には共有プレフィックスが使用されているため、それらをリソースとして個別に指定する必要はありません。1 つ、または複数の Lambda 関数リソースを指定できます。

"s3:GetObject"
AWS Serverless Application Repository リソース識別子の指定どおりに必要なバケットの読み取りを許可します。arn:aws:s3:::awsserverlessrepo-changesets-1iiv3xa62ln3m/*このバケットは、アカウントに固有のものである場合があります。
"cloudformation:*"

リソース StackPrefixmyCF AWS CloudFormation で指定されたスタックの作成と管理を可能にします。これらのスタックとスタックセットは、コネクタと UDF AWS Serverless Application Repository をデプロイする方法です。

"serverlessrepo:*"
リソース ID で指定されたアプリケーションの検索、表示、公開 AWS Serverless Application Repository、更新を行うことができます。arn:aws:serverlessrepo:*:*:applications/*