Izinkan akses ke AthenaUDFs: Contoh kebijakan - Amazon Athena

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Izinkan akses ke AthenaUDFs: Contoh kebijakan

Contoh kebijakan izin dalam topik ini menunjukkan diperlukan tindakan diperbolehkan dan sumber daya yang mereka diizinkan. Periksa kebijakan ini dengan cermat dan modifikasi sesuai dengan kebutuhan Anda sebelum Anda melampirkan kebijakan izin serupa ke IAM identitas.

contoh
— Izinkan IAM kepala sekolah untuk menjalankan dan mengembalikan kueri yang berisi pernyataan Athena UDF

Kebijakan izin berbasis identitas berikut memungkinkan tindakan yang diperlukan pengguna atau IAM prinsipal lainnya untuk menjalankan kueri yang menggunakan pernyataan Athena. UDF

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "athena:StartQueryExecution", "lambda:InvokeFunction", "athena:GetQueryResults", "s3:ListMultipartUploadParts", "athena:GetWorkGroup", "s3:PutObject", "s3:GetObject", "s3:AbortMultipartUpload", "athena:StopQueryExecution", "athena:GetQueryExecution", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:athena:*:MyAWSAcctId:workgroup/MyAthenaWorkGroup", "arn:aws:s3:::MyQueryResultsBucket/*", "arn:aws:lambda:*:MyAWSAcctId:function:OneAthenaLambdaFunction", "arn:aws:lambda:*:MyAWSAcctId:function:AnotherAthenaLambdaFunction" ] }, { "Sid": "VisualEditor1", "Effect": "Allow", "Action": "athena:ListWorkGroups", "Resource": "*" } ] }
Penjelasan perizinan
Tindakan yang diizinkan Penjelasan
"athena:StartQueryExecution", "athena:GetQueryResults", "athena:GetWorkGroup", "athena:StopQueryExecution", "athena:GetQueryExecution",

Athena izin yang diperlukan untuk menjalankan kueri diMyAthenaWorkGroupkelompok kerja.

"s3:PutObject", "s3:GetObject", "s3:AbortMultipartUpload"

s3:PutObjectdan s3:AbortMultipartUpload izinkan penulisan hasil kueri ke semua sub-folder dari bucket hasil kueri seperti yang ditentukan oleh pengidentifikasi arn:aws:s3:::MyQueryResultsBucket/* sumber daya, di mana MyQueryResultsBucket adalah keranjang hasil kueri Athena. Untuk informasi selengkapnya, lihat Bekerja dengan hasil kueri dan kueri terbaru.

s3:GetObjectmemungkinkan membaca hasil kueri dan riwayat kueri untuk sumber daya yang ditentukan sebagaiarn:aws:s3:::MyQueryResultsBucket, di mana MyQueryResultsBucket adalah keranjang hasil kueri Athena. Untuk informasi selengkapnya, lihat Bekerja dengan hasil kueri dan kueri terbaru.

s3:GetObjectjuga memungkinkan membaca dari sumber daya yang ditentukan sebagai"arn:aws:s3:::MyLambdaSpillBucket/MyLambdaSpillPrefix*", di mana MyLambdaSpillPrefix ditentukan dalam konfigurasi fungsi Lambda atau fungsi yang dipanggil.

"lambda:InvokeFunction"
Memungkinkan kueri untuk memanggil AWS Lambda fungsi yang ditentukan dalam Resource blok. Misalnyaarn:aws:lambda:*:MyAWSAcctId:function:MyAthenaLambdaFunction, di mana MyAthenaLambdaFunction menentukan nama fungsi Lambda yang akan dipanggil. Beberapa fungsi dapat ditentukan seperti yang ditunjukkan pada contoh.
contoh
— Izinkan IAM kepala sekolah untuk membuat Athena UDF
{ "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/*" } ] }
Penjelasan perizinan
Tindakan yang diizinkan Penjelasan
"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",

Memungkinkan penciptaan dan pengelolaan fungsi Lambda terdaftar sebagai sumber daya. Dalam contoh, awalan nama digunakan dalam pengidentifikasi arn:aws:lambda:*:MyAWSAcctId:function:MyAthenaLambdaFunctionsPrefix* sumber daya, di mana MyAthenaLambdaFunctionsPrefix adalah awalan bersama yang digunakan dalam nama sekelompok fungsi Lambda sehingga tidak perlu ditentukan secara individual sebagai sumber daya. Anda dapat menentukan satu atau lebih sumber daya fungsi Lambda.

"s3:GetObject"
Memungkinkan membaca ember yang AWS Serverless Application Repository membutuhkan seperti yang ditentukan oleh pengidentifikasi arn:aws:s3:::awsserverlessrepo-changesets-1iiv3xa62ln3m/* sumber daya.
"cloudformation:*"

Memungkinkan pembuatan dan pengelolaan AWS CloudFormation tumpukan ditentukan oleh sumber daya MyCFStackPrefix. Tumpukan dan stackset ini adalah caranya AWS Serverless Application Repository menyebarkan konektor danUDFs.

"serverlessrepo:*"
Memungkinkan pencarian, melihat, menerbitkan, dan memperbarui aplikasi di AWS Serverless Application Repository, ditentukan oleh pengidentifikasi arn:aws:serverlessrepo:*:*:applications/* sumber daya.