Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Gunakan tombol CalledVia konteks untuk Athena
Ketika seorang kepala sekolah membuat permintaan untuk AWS, AWS mengumpulkan informasi permintaan ke dalam konteks permintaan yang mengevaluasi dan mengotorisasi permintaan. Anda dapat menggunakan Condition
elemen JSON kebijakan 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:
.
Tentang aws:CalledVia kunci konteks
Anda dapat menggunakan aws:CalledViakunci konteks kondisi global untuk membandingkan layanan dalam kebijakan dengan layanan yang membuat permintaan atas nama IAM prinsipal (pengguna atau peran). Ketika seorang 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:CalledVia
kondisi kunci untuk membatasi permintaan hanya yang dibuat dari Athena. Untuk menggunakanaws:CalledVia
kondisi 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:CalledVia
untuk 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 untuk akses ke fungsi Lambda
Athena membutuhkan penelepon untuk memilikilambda:InvokeFunction
izin untuk memanggil fungsi Lambda terkait dengan kueri. Pernyataan berikut menentukan bahwa pengguna dapat memanggil fungsi Lambda hanya dari Athena.
{ "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 CalledVia
kondisi, lihat AWS kunci konteks kondisi global di Panduan IAM Pengguna.