Sesi interaktif dengan IAM - AWS Glue

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

Sesi interaktif dengan IAM

Bagian ini menjelaskan pertimbangan keamanan untuk sesi AWS Glue interaktif.

Prinsipal IAM digunakan dengan sesi interaktif

Anda menggunakan dua prinsip IAM yang digunakan dengan sesi interaktif. AWS Glue

  • Prinsipal klien: Prinsipal klien (baik pengguna atau peran) mengotorisasi operasi API untuk sesi interaktif dari AWS Glue klien yang dikonfigurasi dengan kredensyal berbasis identitas prinsipal. Misalnya, ini bisa menjadi peran IAM yang biasanya Anda gunakan untuk mengakses AWS Glue konsol. Ini juga bisa menjadi peran yang diberikan kepada pengguna di IAM yang kredensialnya digunakan untuk AWS Command Line Interface, atau AWS Glue klien yang digunakan oleh sesi interaktif kernel Jupyter.

  • Peran runtime: Peran runtime adalah peran IAM yang diteruskan oleh prinsipal klien ke operasi API sesi interaktif. AWS Gluemenggunakan peran ini untuk menjalankan pernyataan di sesi Anda. Misalnya, peran ini bisa menjadi yang digunakan untuk menjalankan pekerjaan AWS Glue ETL.

    Untuk informasi selengkapnya, lihat Menyiapkan peran runtime.

Menyiapkan prinsipal klien

Anda harus melampirkan kebijakan identitas ke kepala klien untuk memungkinkannya memanggil API sesi interaktif. Peran ini harus memiliki iam:PassRole akses ke peran eksekusi yang akan Anda teruskan ke API sesi interaktif, sepertiCreateSession. Misalnya, Anda dapat melampirkan kebijakan AWSGlueConsoleFullAccessterkelola ke peran IAM yang memungkinkan pengguna di akun Anda dengan kebijakan yang dilampirkan untuk mengakses semua sesi yang dibuat di akun Anda (seperti pernyataan waktu proses atau pernyataan pembatalan).

Jika Anda ingin melindungi sesi Anda dan menjadikannya pribadi hanya untuk peran IAM tertentu, seperti yang terkait dengan pengguna yang membuat sesi maka Anda dapat menggunakan Kontrol Otorisasi Berbasis Tag Sesi AWS Glue Interaktif yang disebut. TagOnCreate Untuk informasi selengkapnya, lihat Jadikan sesi Anda pribadi dengan TagOnCreate bagaimana kebijakan terkelola cakupan berbasis tag pemilik dapat membuat sesi Anda pribadi. TagOnCreate Untuk informasi selengkapnya tentang kebijakan berbasis identitas, lihat Kebijakan berbasis identitas untuk. AWS Glue

Menyiapkan peran runtime

Anda harus meneruskan peran IAM ke operasi CreateSession API agar memungkinkan AWS Glue untuk mengasumsikan dan menjalankan pernyataan dalam sesi interaktif. Peran harus memiliki izin IAM yang sama dengan yang diperlukan untuk menjalankan pekerjaan biasaAWS Glue. Misalnya, Anda dapat membuat peran layanan menggunakan AWSGlueServiceRolekebijakan yang memungkinkan AWS Glue untuk memanggil AWS layanan atas nama Anda. Jika Anda menggunakan AWS Glue konsol, itu akan secara otomatis membuat peran layanan atas nama Anda atau menggunakan yang sudah ada. Anda juga dapat membuat peran IAM Anda sendiri dan melampirkan kebijakan IAM Anda sendiri untuk mengizinkan izin serupa.

Jika Anda ingin melindungi sesi Anda dan menjadikannya pribadi hanya untuk pengguna yang membuat sesi maka Anda dapat menggunakan Kontrol Otorisasi Berbasis Tag Sesi AWS Glue Interaktif yang disebut TagOnCreate. Untuk informasi selengkapnya, lihat Jadikan sesi Anda pribadi dengan TagOnCreate bagaimana kebijakan terkelola cakupan berbasis tag pemilik dapat membuat sesi Anda pribadi. TagOnCreate Untuk informasi selengkapnya tentang kebijakan berbasis identitas, lihat. Kebijakan berbasis identitas untuk Glue AWS Jika Anda membuat peran eksekusi sendiri dari konsol IAM dan Anda ingin menjadikan layanan Anda pribadi dengan TagOnCreate fitur, ikuti langkah-langkah di bawah ini.

  1. Buat peran IAM dengan tipe peran yang disetel keGlue.

  2. Lampirkan kebijakan AWS Glue terkelola ini: AwsGlueSessionUserRestrictedServiceRole

  3. Awalan nama peran dengan nama AwsGlueSessionUserRestrictedServiceRolekebijakan. Misalnya, Anda dapat membuat peran dengan nama AwsGlueSessionUserRestrictedServiceRole-myrole dan melampirkan kebijakan AWS Glue terkelola. AwsGlueSessionUserRestrictedServiceRole

  4. Lampirkan kebijakan kepercayaan seperti berikut untuk memungkinkan AWS Glue untuk mengambil peran:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "glue.amazonaws.com" ] }, "Action": [ "sts:AssumeRole" ] } ] }

Untuk sesi interaktif Jupyter kernel, Anda dapat menentukan iam_role kunci di profil Anda AWS Command Line Interface . Untuk informasi selengkapnya, lihat Mengonfigurasi sesi dengan ~/.aws/config. Jika Anda berinteraksi dengan sesi interaktif menggunakan AWS Glue buku catatan, maka Anda dapat meneruskan peran eksekusi dalam %iam_role keajaiban di sel pertama yang Anda jalankan.

Jadikan sesi Anda pribadi dengan TagOnCreate

AWS Gluesesi interaktif mendukung penandaan dan Otorisasi Berbasis Tag (TBAC) untuk sesi interaktif sebagai sumber daya bernama. Selain penggunaan TBAC TagResource dan UntagResource API, sesi AWS Glue interaktif mendukung TagOnCreate fitur untuk 'menandai' sesi dengan tag yang diberikan hanya selama pembuatan sesi dengan CreateSession operasi. Ini juga berarti tag tersebut akan dihapus DeleteSession, alias UntagOnDelete.

TagOnCreate menawarkan mekanisme keamanan yang kuat untuk membuat sesi Anda pribadi bagi pembuat sesi. Misalnya, Anda dapat melampirkan kebijakan IAM dengan “pemilik” RequestTag dan nilai $ {AWS:userId} ke prinsipal klien (seperti pengguna) untuk mengizinkan pembuatan sesi hanya jika tag “pemilik” dengan nilai yang cocok dari userId penelepon disediakan sebagai tag userID dalam permintaan. CreateSession Kebijakan ini memungkinkan sesi AWS Glue interaktif untuk membuat sumber daya sesi dan menandai sesi dengan tag userID hanya selama waktu pembuatan sesi. Selain itu, Anda dapat mencakup akses (seperti pernyataan berjalan) ke sesi Anda hanya ke pembuat (alias tag pemilik dengan nilai $ {AWS:userId}) sesi dengan melampirkan kebijakan IAM dengan “pemilik” ResourceTag ke peran eksekusi yang Anda berikan selama. CreateSession

Untuk memudahkan Anda menggunakan TagOnCreate fitur untuk membuat sesi pribadi bagi pembuat sesi, AWS Glue berikan kebijakan terkelola khusus dan peran layanan.

Jika Anda ingin membuat Sesi AWS Glue Interaktif menggunakan AssumeRole prinsipal IAM (yaitu, menggunakan kredensi yang dijual dengan mengasumsikan peran IAM) dan Anda ingin membuat sesi pribadi bagi pembuatnya, maka gunakan kebijakan yang mirip dengan dan masing-masing. AWSGlueSessionUserRestrictedNotebookPolicyAWSGlueSessionUserRestrictedNotebookServiceRole Kebijakan ini memungkinkan AWS Glue untuk menggunakan $ {aws:PrincipalTag} untuk mengekstrak nilai tag pemilik. Ini mengharuskan Anda untuk meneruskan tag userId dengan nilai $ {aws:userId} seperti SessionTag pada kredensi peran asumsi. Lihat tag sesi ID. Jika Anda menggunakan instans Amazon EC2 dengan profil instans yang menjual kredensi dan Anda ingin membuat sesi atau berinteraksi dengan sesi dari dalam instans Amazon EC2, maka Anda harus meneruskan tag userID dengan nilai $ {AWS:userId} seperti pada kredensi peran asumsi. SessionTag

Misalnya, Jika Anda membuat sesi menggunakan kredensi AssumeRole utama IAM dan Anda ingin menjadikan layanan Anda pribadi dengan TagOnCreate fitur, ikuti langkah-langkah di bawah ini.

  1. Buat peran runtime sendiri dari konsol IAM. Harap lampirkan kebijakan AWS Glue terkelola ini AwsGlueSessionUserRestrictedNotebookServiceRoledan awali nama peran dengan nama AwsGlueSessionUserRestrictedNotebookServiceRolekebijakan. Misalnya, Anda dapat membuat peran dengan nama AwsGlueSessionUserRestrictedNotebookServiceRole-myrole dan melampirkan kebijakan AWS Glue terkelola. AwsGlueSessionUserRestrictedNotebookServiceRole

  2. Lampirkan kebijakan kepercayaan seperti di bawah ini untuk memungkinkan AWS Glue untuk mengambil peran di atas.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "glue.amazonaws.com" ] }, "Action": [ "sts:AssumeRole" ] } ] }
  3. Buat peran lain bernama dengan awalan AwsGlueSessionUserRestrictedNotebookPolicydan lampirkan kebijakan AWS Glue terkelola AwsGlueSessionUserRestrictedNotebookPolicyuntuk membuat sesi menjadi pribadi. Selain kebijakan terkelola, lampirkan kebijakan inline berikut untuk mengizinkan iam: PassRole ke peran yang Anda buat di langkah 1.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::*:role/AwsGlueSessionUserRestrictedNotebookServiceRole*" ], "Condition": { "StringLike": { "iam:PassedToService": [ "glue.amazonaws.com" ] } } } ] }
  4. Lampirkan kebijakan kepercayaan seperti mengikuti IAM di atas AWS Glue untuk mengambil peran.

    { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Service": [ "glue.amazonaws.com" ] }, "Action": [ "sts:AssumeRole", "sts:TagSession" ] }] }
    catatan

    Secara opsional, Anda dapat menggunakan satu peran (misalnya, peran buku catatan) dan melampirkan kedua kebijakan terkelola di atas AwsGlueSessionUserRestrictedNotebookServiceRoledan AwsGlueSessionUserRestrictedNotebookPolicy. Juga lampirkan kebijakan inline tambahan untuk mengizinkan iam:passrole peran Anda. AWS Glue Dan akhirnya lampirkan kebijakan kepercayaan di atas untuk mengizinkan sts:AssumeRole dansts:TagSession.

AWSGlueSessionUserRestrictedNotebookPolicy

AWSGlueSessionUserRestrictedNotebookPolicy Menyediakan akses untuk membuat Sesi AWS Glue Interaktif dari buku catatan hanya jika kunci tag “pemilik” dan nilai yang cocok dengan id AWS pengguna prinsipal (pengguna atau Peran). Untuk informasi selengkapnya, lihat Di mana Anda dapat menggunakan variabel kebijakan. Kebijakan ini dilampirkan pada prinsipal (Pengguna atau peran) yang membuat buku catatan Sesi AWS Glue Interaktif dariAWS Glue Studio. Kebijakan ini juga mengizinkan akses yang cukup ke AWS Glue Studio buku catatan untuk berinteraksi dengan sumber daya Sesi AWS Glue Studio Interaktif yang dibuat dengan nilai tag “pemilik” yang cocok dengan ID AWS pengguna prinsipal. Kebijakan ini menolak izin untuk mengubah atau menghapus tag “pemilik” dari sumber daya AWS Glue sesi setelah sesi dibuat.

AWSGlueSessionUserRestrictedNotebookServiceRole

AWSGlueSessionUserRestrictedNotebookServiceRoleMemberikan akses yang cukup ke AWS Glue Studio buku catatan untuk berinteraksi dengan sumber daya Sesi AWS Glue Interaktif yang dibuat dengan nilai tag “pemilik” yang cocok dengan ID AWS pengguna utama (pengguna atau peran) pembuat buku catatan. Untuk informasi selengkapnya, lihat Di mana Anda dapat menggunakan variabel kebijakan. Kebijakan peran layanan ini dilampirkan pada peran yang diteruskan sebagai sihir ke buku catatan atau diteruskan sebagai peran eksekusi ke API. CreateSession Kebijakan ini juga mengizinkan untuk membuat Sesi AWS Glue Interaktif dari buku catatan hanya jika kunci tag “pemilik” dan nilai cocok dengan ID AWS pengguna prinsipal. Kebijakan ini menolak izin untuk mengubah atau menghapus tag “pemilik” dari sumber daya AWS Glue sesi setelah sesi dibuat. Kebijakan ini juga mencakup izin untuk menulis dan membaca dari bucket Amazon S3, CloudWatch menulis log, membuat dan menghapus tag untuk sumber daya Amazon EC2 yang digunakan oleh. AWS Glue

Jadikan sesi Anda pribadi dengan kebijakan pengguna

Anda dapat melampirkan peran IAM AWSGlueSessionUserRestrictedPolicyke yang dilampirkan ke masing-masing pengguna di akun Anda untuk membatasi mereka membuat sesi hanya dengan tag pemilik dengan nilai yang cocok dengan $ {AWS:userID} mereka sendiri. Alih-alih menggunakan AWSGlueSessionUserRestrictedNotebookPolicydan AWSGlueSessionUserRestrictedNotebookServiceRoleAnda perlu menggunakan kebijakan yang mirip dengan AWSGlueSessionUserRestrictedPolicydan AWSGlueSessionUserRestrictedServiceRolemasing-masing. Untuk informasi selengkapnya, lihat Kebijakan berbasis identitas. Kebijakan ini mencakup akses ke sesi hanya untuk pencipta, $ {AWS:userId} dari pengguna yang membuat sesi dengan tag pemilik yang memuat $ {aws:userId} mereka sendiri. Jika Anda telah membuat peran eksekusi sendiri menggunakan konsol IAM dengan mengikuti langkah-langkahnyaMenyiapkan peran runtime, selain melampirkan kebijakan AwsGlueSessionUserRestrictedPolicyterkelola, lampirkan juga kebijakan sebaris berikut ke setiap pengguna di akun Anda iam:PassRole untuk memungkinkan peran eksekusi yang Anda buat sebelumnya.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::*:role/AwsGlueSessionUserRestrictedServiceRole*" ], "Condition": { "StringLike": { "iam:PassedToService": [ "glue.amazonaws.com" ] } } }] }

AWSGlueSessionUserRestrictedPolicy

AWSGlueSessionUserRestrictedPolicyIni menyediakan akses untuk membuat Sesi AWS Glue Interaktif menggunakan CreateSession API hanya jika kunci tag “pemilik” dan nilai yang cocok dengan ID AWS pengguna mereka disediakan. Kebijakan identitas ini dilampirkan ke pengguna yang memanggil CreateSession API. Kebijakan ini juga memungkinkan untuk berinteraksi dengan sumber daya Sesi AWS Glue Interaktif yang dibuat dengan tag “pemilik” dan nilai yang cocok dengan id AWS pengguna mereka. Kebijakan ini menolak izin untuk mengubah atau menghapus tag “pemilik” dari sumber daya AWS Glue sesi setelah sesi dibuat.

AWSGlueSessionUserRestrictedServiceRole

AWSGlueSessionUserRestrictedServiceRoleIni menyediakan akses penuh ke semua AWS Glue sumber daya kecuali untuk sesi dan memungkinkan pengguna untuk membuat dan menggunakan hanya sesi interaktif yang terkait dengan pengguna. Kebijakan ini juga mencakup izin lain yang diperlukan AWS Glue untuk mengelola sumber daya Glue di AWS layanan lain. Kebijakan ini juga memungkinkan penambahan tag ke AWS Glue sumber daya di AWS layanan lain.

Pertimbangan kebijakan IAM

Sesi interaktif adalah sumber daya IAM diAWS Glue. Karena mereka adalah sumber daya IAM, akses dan interaksi ke sesi diatur oleh kebijakan IAM. Berdasarkan kebijakan IAM yang dilampirkan pada prinsipal klien atau peran eksekusi yang dikonfigurasi oleh admin, kepala klien (pengguna atau peran) akan dapat membuat sesi baru dan berinteraksi dengan sesi sendiri dan sesi lainnya.

Jika admin telah melampirkan kebijakan IAM seperti AWSGlueConsoleFullAccess atau AWSGlueServiceRole yang memungkinkan akses ke semua AWS Glue sumber daya di akun itu, prinsipal klien akan dapat berkolaborasi satu sama lain. Misalnya, satu pengguna akan dapat berinteraksi dengan sesi yang dibuat oleh pengguna lain jika kebijakan mengizinkan ini.

Jika Anda ingin mengonfigurasi kebijakan yang disesuaikan dengan kebutuhan spesifik Anda, lihat dokumentasi IAM tentang mengonfigurasi sumber daya untuk kebijakan. Misalnya, untuk mengisolasi sesi milik pengguna, Anda dapat menggunakan TagOnCreate fitur yang didukung oleh sesi AWS Glue Interaktif. Lihat Jadikan sesi Anda pribadi dengan TagOnCreate .

Sesi interaktif mendukung pembatasan pembuatan sesi berdasarkan kondisi VPC tertentu. Lihat Kebijakan kontrol yang mengontrol pengaturan menggunakan tombol kondisi.