Izinkan akses ke Kueri Federasi Athena: 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 Kueri Federasi Athena: 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 melampirkannya ke IAM identitas.

Untuk informasi tentang melampirkan kebijakan ke IAM identitas, lihat Menambahkan dan menghapus izin IAM identitas di Panduan Pengguna. IAM

contoh
— Izinkan IAM kepala sekolah untuk menjalankan dan mengembalikan hasil menggunakan Athena Federated Query

Kebijakan izin berbasis identitas berikut memungkinkan tindakan yang diperlukan pengguna atau IAM prinsipal lainnya untuk menggunakan Kueri Federasi Athena. Utama yang diizinkan untuk melakukan tindakan ini dapat menjalankan kueri yang menentukan katalog Athena yang terkait dengan sumber data gabungan.

{ "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/*" ] } ] }
Penjelasan perizinan
Tindakan yang diizinkan Penjelasan
"athena:GetQueryExecution", "athena:GetQueryResults", "athena:GetWorkGroup", "athena:StartQueryExecution", "athena:StopQueryExecution"

Athena izin yang diperlukan untuk menjalankan kueri gabungan.

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

Izin Athena yang diperlukan untuk menjalankan kueri tampilan federasi. GetDataCatalogTindakan ini diperlukan untuk tampilan.

"lambda:InvokeFunction"
Memungkinkan kueri untuk memanggil AWS Lambda fungsi untuk AWS Lambda fungsi yang ditentukan dalam blok. Resource Misalnyaarn:aws:lambda:*:MyAWSAcctId:function:MyAthenaLambdaFunction, di mana MyAthenaLambdaFunction menentukan nama fungsi Lambda yang akan dipanggil. Seperti yang ditunjukkan pada contoh, beberapa fungsi dapat ditentukan.
"s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListMultipartUploadParts", "s3:PutObject"

s3:GetBucketLocationIzin s3:ListBucket dan diperlukan untuk mengakses bucket keluaran kueri untuk IAM prinsipal yang berjalan. StartQueryExecution

s3:PutObject,s3:ListMultipartUploadParts, dan 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.

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.

contoh
— Izinkan IAM kepala sekolah untuk membuat konektor sumber data
{ "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/*" }, { "Sid": "ECR", "Effect": "Allow", "Action": [ "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer" ], "Resource": "arn:aws:ecr:*:*:repository/*" } ] }
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 pengenal sumber dayaarn:aws:lambda:*:MyAWSAcctId:function:MyAthenaLambdaFunctionsPrefix*, di mana MyAthenaLambdaFunctionsPrefix awalan bersama digunakan dalam nama grup 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 bucket yang AWS Serverless Application Repository membutuhkan seperti yang ditentukan oleh pengenal arn:aws:s3:::awsserverlessrepo-changesets-1iiv3xa62ln3m/* sumber daya. Bucket ini mungkin spesifik untuk akun Anda.
"cloudformation:*"

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

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

Mengizinkan fungsi Lambda yang dibuat untuk mengakses gambar konektor ECR federasi.