Menggunakan Athena dengan tombol konteks CalledVia - Amazon Athena

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

Menggunakan Athena dengan tombol konteks CalledVia

Ketika kepala sekolah membuat permintaan AWS, AWS mengumpulkan informasi permintaan ke dalam konteks permintaan yang mengevaluasi dan mengotorisasi permintaan. Anda dapat menggunakan elemen Condition dari kebijakan JSON untuk membandingkan kunci dalam konteks permintaan dengan nilai kunci yang Anda tentukan dalam kebijakan Anda. Kunci konteks syarat global adalah berbagai kunci syarat dengan prefiks aws:.

Kunci aws:CalledVia konteks

Anda dapat menggunakan aws:CalledVia kunci konteks syarat global untuk membandingkan layanan dalam kebijakan dengan layanan yang membuat permintaan atas nama utama IAM (pengguna atau peran). Ketika kepala sekolah membuat permintaan ke Layanan AWS, layanan itu mungkin menggunakan kredensi kepala sekolah untuk membuat permintaan berikutnya ke layanan lain. Kunci aws:CalledVia berisi daftar yang dipesan dari setiap layanan dalam rantai yang membuat permintaan atas nama utama.

Dengan menentukan nama utama layanan untuk kunci aws:CalledVia konteks, Anda dapat membuat kunci konteks Layanan AWS-spesifik. Misalnya, Anda dapat menggunakanaws:CalledViakondisi kunci untuk membatasi permintaan hanya yang dibuat dari Athena. Untuk menggunakanaws:CalledViakondisi kunci dalam kebijakan dengan Athena, Anda menentukan nama utama layanan Athenaathena.amazonaws.com, seperti pada contoh berikut.

... "Condition": { "ForAnyValue:StringEquals": { "aws:CalledVia": "athena.amazonaws.com" } } ...

Anda dapat menggunakanaws:CalledViauntuk memastikan pemanggil hanya memiliki akses ke sumber daya (seperti fungsi Lambda) jika mereka memanggil sumber daya dari Athena.

catatan

Kunci aws:CalledVia konteks tidak kompatibel dengan fitur propagasi identitas tepercaya.

Tambahkan kunci CalledVia konteks opsional untuk akses berbutir halus ke fungsi Lambda

Athena membutuhkan penelepon untuk memilikilambda:InvokeFunctionizin untuk memanggil fungsi Lambda terkait dengan kueri. Pernyataan berikut memungkinkan akses halus ke fungsi Lambda sehingga pengguna dapat menggunakan hanya Athena untuk memanggil fungsi Lambda.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor3", "Effect": "Allow", "Action": "lambda:InvokeFunction", "Resource": "arn:aws:lambda:us-east-1:111122223333:function:OneAthenaLambdaFunction", "Condition": { "ForAnyValue:StringEquals": { "aws:CalledVia": "athena.amazonaws.com" } } } ] }

Contoh berikut menunjukkan penambahan pernyataan sebelumnya ke kebijakan yang memungkinkan pengguna menjalankan dan membaca kueri gabungan. Utama yang diizinkan untuk melakukan tindakan ini dapat menjalankan kueri yang menentukan katalog Athena terkait dengan sumber data gabungan. Namun, utama tidak dapat mengakses fungsi Lambda terkait kecuali fungsi dipanggil melalui Athena.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "athena:GetWorkGroup", "s3:PutObject", "s3:GetObject", "athena:StartQueryExecution", "s3:AbortMultipartUpload", "athena:StopQueryExecution", "athena:GetQueryExecution", "athena:GetQueryResults", "s3:ListMultipartUploadParts" ], "Resource": [ "arn:aws:athena:*:111122223333:workgroup/WorkGroupName", "arn:aws:s3:::MyQueryResultsBucket/*", "arn:aws:s3:::MyLambdaSpillBucket/MyLambdaSpillPrefix*" ] }, { "Sid": "VisualEditor1", "Effect": "Allow", "Action": "athena:ListWorkGroups", "Resource": "*" }, { "Sid": "VisualEditor2", "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": "arn:aws:s3:::MyLambdaSpillBucket" }, { "Sid": "VisualEditor3", "Effect": "Allow", "Action": "lambda:InvokeFunction", "Resource": [ "arn:aws:lambda:*:111122223333:function:OneAthenaLambdaFunction", "arn:aws:lambda:*:111122223333:function:AnotherAthenaLambdaFunction" ], "Condition": { "ForAnyValue:StringEquals": { "aws:CalledVia": "athena.amazonaws.com" } } } ] }

Untuk informasi selengkapnya tentang kunci syarat CalledVia, lihat AWS kunci konteks syarat global dalam Panduan Pengguna IAM.