Amazon Redshift tidak akan lagi mendukung penggunaan Python UDF setelah 30 Juni 2026. Kami akan mulai menegakkannya secara bertahap. Untuk informasi lebih lanjut tentang detail opsi akhir masa pakai dan migrasi Python, lihat posting blog
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengrantai peran IAM di Amazon Redshift
Saat Anda melampirkan peran ke cluster Anda, cluster Anda dapat mengambil peran itu untuk mengakses Amazon S3, Amazon Athena AWS Glue, dan AWS Lambda atas nama Anda. Jika peran yang dilampirkan ke cluster Anda tidak memiliki akses ke sumber daya yang diperlukan, Anda dapat mengrantai peran lain, mungkin milik akun lain. Cluster Anda kemudian untuk sementara mengambil peran rantai untuk mengakses data. Anda juga dapat memberikan akses lintas akun dengan mengrantai peran. Setiap peran dalam rantai mengambil peran berikutnya dalam rantai, sampai cluster mengambil peran di akhir rantai. Jumlah maksimum peran IAM yang dapat Anda kaitkan tunduk pada kuota. Untuk informasi selengkapnya, lihat kuota “Peran IAM Cluster untuk Amazon Redshift untuk mengakses AWS layanan lain” di. Kuota untuk objek Amazon Redshift
catatan
Anda harus menentukan peran IAM agar rantai berfungsi dengan benar.
Sebagai contoh, misalkan Perusahaan A ingin mengakses data dalam bucket Amazon S3 milik Perusahaan B. Perusahaan A membuat peran AWS layanan untuk Amazon Redshift bernama RoleA dan melampirkannya ke cluster mereka. Perusahaan B membuat peran bernama RoleB yang diberi wewenang untuk mengakses data dalam bucket Perusahaan B. Untuk mengakses data di bucket Perusahaan B, Perusahaan A menjalankan perintah COPY menggunakan iam_role parameter yang berrantai RoleA danRoleB. Selama operasi COPY, RoleA sementara mengasumsikan RoleB untuk mengakses bucket Amazon S3.
Untuk rantai peran, Anda membangun hubungan kepercayaan antara peran. Peran yang mengambil peran lain (misalnya,RoleA) harus memiliki kebijakan izin yang memungkinkannya untuk mengambil peran beraneka berikutnya (misalnya,RoleB). Pada gilirannya, peran yang melewati izin (RoleB) harus memiliki kebijakan kepercayaan yang memungkinkannya meneruskan izinnya ke role beranTAI sebelumnya (RoleA). Untuk informasi selengkapnya, lihat Menggunakan peran IAM di Panduan Pengguna IAM.
Peran pertama dalam rantai harus menjadi peran yang melekat pada cluster. Peran pertama, dan setiap peran berikutnya yang mengambil peran berikutnya dalam rantai, harus memiliki kebijakan yang mencakup pernyataan tertentu. Pernyataan ini memiliki Allow efek pada sts:AssumeRole tindakan dan Nama Sumber Daya Amazon (ARN) dari peran berikutnya dalam suatu Resource elemen. Dalam contoh kami, RoleA memiliki kebijakan izin berikut yang memungkinkannya untuk mengasumsikanRoleB, dimiliki oleh AWS
akun210987654321.
Peran yang diteruskan ke peran lain harus membangun hubungan kepercayaan dengan peran yang mengambil peran atau dengan AWS akun yang memiliki peran tersebut. Dalam contoh kami, RoleB memiliki kebijakan kepercayaan berikut untuk membangun hubungan kepercayaan denganRoleA.
Kebijakan kepercayaan berikut menetapkan hubungan kepercayaan dengan pemilik RoleA AWS akun123456789012.
catatan
Untuk membatasi otorisasi rantai peran untuk pengguna tertentu, tentukan kondisi. Untuk informasi selengkapnya, lihat Membatasi akses ke peran IAM.
Saat menjalankan perintah UNLOAD, COPY, CREATE EXTERNAL FUNCTION, atau CREATE EXTERNAL SCHEMA, Anda mengrantai peran dengan menyertakan daftar ARN peran yang dipisahkan koma dalam parameter. iam_role Berikut ini menunjukkan sintaks untuk rantai peran dalam iam_role parameter.
unload ('select * from venue limit 10') to 's3://acmedata/redshift/venue_pipe_' IAM_ROLE 'arn:aws:iam::<aws-account-id-1>:role/<role-name-1>[,arn:aws:iam::<aws-account-id-2>:role/<role-name-2>][,...]';
catatan
Seluruh rantai peran tertutup dalam tanda kutip tunggal dan tidak boleh mengandung spasi.
Dalam contoh berikut, RoleA dilampirkan ke cluster milik AWS akun123456789012. RoleB, yang milik akun210987654321, memiliki izin untuk mengakses bucket bernamas3://companyb/redshift/. Contoh berikut berrantai RoleA dan RoleB untuk MEMUNLOAD data ke bucket s3://companyb/redshift/.
unload ('select * from venue limit 10') to 's3://companyb/redshift/venue_pipe_' iam_role 'arn:aws:iam::123456789012:role/RoleA,arn:aws:iam::210987654321:role/RoleB';
Contoh berikut menggunakan perintah COPY untuk memuat data yang dibongkar dalam contoh sebelumnya.
copy venue from 's3://companyb/redshift/venue_pipe_' iam_role 'arn:aws:iam::123456789012:role/RoleA,arn:aws:iam::210987654321:role/RoleB';
Dalam contoh berikut, CREATE EXTERNAL SCHEMA menggunakan peran beranTAI untuk mengambil peranRoleB.
create external schema spectrumexample from data catalog database 'exampledb' region 'us-west-2' iam_role 'arn:aws:iam::123456789012:role/RoleA,arn:aws:iam::210987654321:role/RoleB';
Dalam contoh berikut, CREATE EXTERNAL FUNCTION menggunakan peran beranTAI untuk mengambil peranRoleB.
create external function lambda_example(varchar) returns varchar volatile lambda 'exampleLambdaFunction' iam_role 'arn:aws:iam::123456789012:role/RoleA,arn:aws:iam::210987654321:role/RoleB';