View a markdown version of this page

Izin untuk mengakses lainnya AWS Sumber daya - Amazon Redshift

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 yang diterbitkan pada 30 Juni 2025.

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

Izin untuk mengakses lainnya AWS Sumber daya

Untuk memindahkan data antara cluster Anda dan AWS sumber daya lain, seperti Amazon S3, Amazon DynamoDB, Amazon EMR, atau Amazon EC2, cluster Anda harus memiliki izin untuk mengakses sumber daya dan melakukan tindakan yang diperlukan. Misalnya, untuk memuat data dari Amazon S3, COPY harus memiliki akses LIST ke bucket dan akses GET untuk objek bucket. Untuk informasi tentang izin minimum, lihatIzin IAM untuk COPY, UNLOAD, dan CREATE LIBRARY.

Untuk mendapatkan otorisasi untuk mengakses sumber daya, cluster Anda harus diautentikasi. Anda dapat memilih salah satu metode otentikasi berikut:

  • Role-based kontrol aksesUntuk kontrol akses berbasis peran, Anda menentukan peran AWS Identity and Access Management (IAM) yang digunakan cluster Anda untuk otentikasi dan otorisasi. Untuk melindungi AWS kredensi dan data sensitif Anda, kami sangat menyarankan untuk menggunakan otentikasi berbasis peran.

  • Key-based kontrol akses— Untuk kontrol akses berbasis kunci, Anda memberikan kreden AWS SIAL akses (ID kunci akses dan kunci akses rahasia) untuk pengguna sebagai teks biasa.

Role-based kontrol akses

Dengan kontrol akses berbasis peran, cluster Anda sementara mengambil peran IAM atas nama Anda. Kemudian, berdasarkan otorisasi yang diberikan kepada peran, cluster Anda dapat mengakses AWS sumber daya yang diperlukan.

Membuat peran IAM mirip dengan memberikan izin kepada pengguna, karena itu adalah AWS identitas dengan kebijakan izin yang menentukan apa yang dapat dan tidak dapat dilakukan identitas. AWS Namun, alih-alih dikaitkan secara unik dengan satu pengguna, peran dapat diasumsikan oleh entitas mana pun yang membutuhkannya. Selain itu, peran tidak memiliki kredenSIAL (kata sandi atau kunci akses) yang terkait dengannya. Sebaliknya, jika peran dikaitkan dengan cluster, kunci akses dibuat secara dinamis dan diberikan ke cluster.

Sebaiknya gunakan kontrol akses berbasis peran karena memberikan kontrol akses yang lebih aman dan berbutir halus terhadap AWS sumber daya dan data pengguna yang sensitif, selain melindungi kredensibilitas Anda. AWS

Role-based otentikasi memberikan manfaat berikut:

  • Anda dapat menggunakan alat IAM AWS standar untuk menentukan peran IAM dan mengaitkan peran dengan beberapa cluster. Saat Anda mengubah kebijakan akses untuk peran, perubahan diterapkan secara otomatis ke semua cluster yang menggunakan peran tersebut.

  • Anda dapat menentukan kebijakan IAM berbutir halus yang memberikan izin untuk cluster tertentu dan pengguna database untuk mengakses AWS sumber daya dan tindakan tertentu.

  • Cluster Anda memperoleh kredentif sesi sementara pada waktu berjalan dan menyegarkan kredenSIAL sesuai kebutuhan hingga operasi selesai. Jika Anda menggunakan kredenSIAL sementara berbasis kunci, operasi gagal jika kredenSIAL sementara kedaluwarsa sebelum selesai.

  • ID kunci akses dan ID kunci akses rahasia Anda tidak disimpan atau ditransmisikan dalam kode SQL Anda.

Untuk menggunakan kontrol akses berbasis peran, Anda harus terlebih dahulu membuat peran IAM menggunakan jenis peran layanan Amazon Redshift, lalu melampirkan peran tersebut ke cluster Anda. Peran harus memiliki, minimal, izin yang tercantum diIzin IAM untuk COPY, UNLOAD, dan CREATE LIBRARY. Untuk langkah-langkah membuat peran IAM dan melampirkannya ke cluster Anda, lihat Mengotor isasi Amazon Redshift untuk Mengakses Layanan Lain A AWS tas Nama Anda di Panduan Manajemen Amazon Redshift.

Anda dapat menambahkan peran ke cluster atau melihat peran yang terkait dengan cluster menggunakan Amazon Redshift Management Console, CLI, atau API. Untuk informasi selengkapnya, lihat Mengaitkan Peran IAM Dengan Cluster di Panduan Manajemen Amazon Redshift.

Saat Anda membuat peran IAM, IAM mengembalikan Nama Sumber Daya Amazon (ARN) untuk peran tersebut. Untuk menentukan peran IAM, berikan peran ARN dengan Menggunakan parameter IAM_ROLE parameter atau Menggunakan parameter CREDENTIALS parameter.

Misalnya, peran berikut dilampirkan ke cluster.

"IamRoleArn": "arn:aws:iam::0123456789012:role/MyRedshiftRole"

Contoh perintah COPY berikut menggunakan parameter IAM_ROLE dengan ARN pada contoh sebelumnya untuk otentikasi dan akses ke Amazon S3.

copy customer from 's3://amzn-s3-demo-bucket/mydata' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole';

Contoh perintah COPY berikut menggunakan parameter CREDENTIALS untuk menentukan peran IAM.

copy customer from 's3://amzn-s3-demo-bucket/mydata' credentials 'aws_iam_role=arn:aws:iam::0123456789012:role/MyRedshiftRole';

Selain itu, superuser dapat memberikan hak istimewa ASSUMEROLE kepada pengguna database dan grup untuk menyediakan akses ke peran untuk operasi COPY. Untuk informasi, lihat HIBAH.

Key-based kontrol akses

Dengan kontrol akses berbasis kunci, Anda memberikan ID kunci akses dan kunci akses rahasia untuk pengguna IAM yang berwenang mengakses AWS sumber daya yang berisi data. Anda dapat menggunakan Menggunakan parameter ACCESS_KEY_ID dan SECRET_ACCESS_KEY parameter bersama-sama atau Menggunakan parameter CREDENTIALS parameter.

catatan

Kami sangat menyarankan menggunakan peran IAM untuk otentikasi alih-alih memberikan ID kunci akses teks biasa dan kunci akses rahasia. Jika Anda memilih kontrol akses berbasis kunci, jangan pernah menggunakan kredentif AWS akun (root) Anda. Selalu buat pengguna IAM dan berikan ID kunci akses dan kunci akses rahasia pengguna tersebut. Untuk langkah-langkah membuat pengguna IAM, lihat Membuat Pengguna IAM di Akun Anda AWS .

Untuk mengotentikasi menggunakan ACCESS_KEY_ID dan SECRET_ACCESS_KEY, ganti <access-key-id> dan <secret-access-key> dengan ID kunci akses pengguna yang berwenang dan kunci akses rahasia lengkap seperti yang ditunjukkan berikut.

ACCESS_KEY_ID '<access-key-id>' SECRET_ACCESS_KEY '<secret-access-key>';

Untuk mengotentikasi menggunakan parameter CREDENTIALS, ganti <access-key-id> dan <secret-access-key> dengan ID kunci akses pengguna yang berwenang dan kunci akses rahasia lengkap seperti yang ditunjukkan berikut ini.

CREDENTIALS 'aws_access_key_id=<access-key-id>;aws_secret_access_key=<secret-access-key>';

Pengguna IAM harus memiliki, minimal, izin yang tercantum diIzin IAM untuk COPY, UNLOAD, dan CREATE LIBRARY.

Kredensial keamanan sementara

Jika Anda menggunakan kontrol akses berbasis kunci, Anda dapat membatasi lebih lanjut akses yang dimiliki pengguna ke data Anda dengan menggunakan kredentif keamanan sementara. Role-basedotentikasi secara otomatis menggunakan kredenSIAL sementara.

catatan

Kami sangat menyarankan menggunakan al role-based access control ih-alih membuat kredenSIAL sementara dan memberikan ID kunci akses dan kunci akses rahasia sebagai teks biasa. Role-based kontrol akses secara otomatis menggunakan kredenSIAL sementara.

KredenSIAL keamanan sementara memberikan keamanan yang ditingkatkan karena memiliki rentang hidup yang pendek dan tidak dapat digunakan kembali setelah kedaluwarsa. ID kunci akses dan kunci akses rahasia yang dihasilkan dengan token tidak dapat digunakan tanpa token, dan pengguna yang memiliki kredenSIAL keamanan sementara ini dapat mengakses sumber daya Anda hanya sampai kredenSIAL kedaluwarsa.

Untuk memberi pengguna akses sementara ke sumber daya Anda, Anda memang AWS Security Token Service gil operasi API (AWS STS). Operasi AWS STS API mengembalikan kredentif keamanan sementara yang terdiri dari token keamanan, ID kunci akses, dan kunci akses rahasia. Anda menerbitkan kredentif keamanan sementara kepada pengguna yang memerlukan akses sementara ke sumber daya Anda. Pengguna ini bisa menjadi pengguna IAM yang sudah ada, atau mereka bisa bukan AWS pengguna. Untuk informasi selengkapnya tentang membuat kredenSIAL keamanan sementara, lihat Menggunakan KredenSIAL Keamanan Sementara di Panduan Pengguna IAM.

Anda dapat menggunakan Menggunakan parameter ACCESS_KEY_ID dan SECRET_ACCESS_KEY parameter bersama dengan SESSION_TOKEN parameter atau Menggunakan parameter CREDENTIALS parameter. Anda juga harus memberikan ID kunci akses dan kunci akses rahasia yang disediakan dengan token.

Untuk mengotentikasi menggunakan ACCESS_KEY_ID, SECRET_ACCESS_KEY, dan SESSION_TOKEN, ganti,, dan seperti yang ditunjukkan berikut. <temporary-access-key-id> <temporary-secret-access-key> <temporary-token>

ACCESS_KEY_ID '<temporary-access-key-id>' SECRET_ACCESS_KEY '<temporary-secret-access-key>' SESSION_TOKEN '<temporary-token>';

Untuk mengotentikasi menggunakan CREDENTIALS, sertakan session_token=<temporary-token> dalam string kredenSIAL seperti yang ditunjukkan berikut.

CREDENTIALS 'aws_access_key_id=<temporary-access-key-id>;aws_secret_access_key=<temporary-secret-access-key>;session_token=<temporary-token>';

Contoh berikut menunjukkan perintah COPY dengan kredenSIAL keamanan sementara.

copy table-name from 's3://objectpath' access_key_id '<temporary-access-key-id>' secret_access_key '<temporary-secret-access-key>' session_token '<temporary-token>';

Contoh berikut memuat tabel LISTING dengan kredenSIAL sementara dan enkripsi file.

copy listing from 's3://amzn-s3-demo-bucket/data/listings_pipe.txt' access_key_id '<temporary-access-key-id>' secret_access_key '<temporary-secret-access-key>' session_token '<temporary-token>' master_symmetric_key '<root-key>' encrypted;

Contoh berikut memuat tabel LISTING menggunakan parameter CREDENTIALS dengan kredenSIAL sementara dan enkripsi file.

copy listing from 's3://amzn-s3-demo-bucket/data/listings_pipe.txt' credentials 'aws_access_key_id=<temporary-access-key-id>;aws_secret_access_key=<temporary-secret-access-key>;session_token=<temporary-token>;master_symmetric_key=<root-key>' encrypted;
penting

KredenSIAL keamanan sementara harus valid untuk seluruh durasi operasi COPY atau UNLOAD. Jika kredenSIAL keamanan sementara kedaluwarsa selama operasi, perintah gagal dan transaksi dibatalkan. Misalnya, jika kredentif keamanan sementara kedaluwarsa setelah 15 menit dan operasi COPY memerlukan satu jam, operasi COPY gagal sebelum selesai. Jika Anda menggunakan akses berbasis peran, kredentif keamanan sementara akan diperbarui secara otomatis hingga operasi selesai.

Izin IAM untuk COPY, UNLOAD, dan CREATE LIBRARY

Peran IAM atau pengguna yang direferensikan oleh parameter CREDENTIALS harus memiliki, minimal, izin berikut:

  • Untuk SALIN dari Amazon S3, izin untuk DAFTAR bucket Amazon S3 dan DAPATKAN objek Amazon S3 yang sedang dimuat, dan file manifes, jika digunakan.

  • Untuk COPY dari Amazon S3, Amazon EMR, dan host jarak jauh (SSH) dengan JSON-formatted data, izin untuk LIST dan GET file JSONPaths di Amazon S3, jika digunakan.

  • Untuk SALIN dari DynamoDB, izin untuk MEMINDAI dan MENDESKRIPSI tabel DynamoDB yang sedang dimuat.

  • Untuk COPY dari cluster Amazon EMR, izin untuk ListInstances tindakan pada cluster Amazon EMR.

  • Untuk UNLOAD ke Amazon S3, izin GET, LIST, dan PUT untuk bucket Amazon S3 tempat file data dibongkar.

  • Untuk MEMBUAT PERPUSTAKAAN dari Amazon S3, izin untuk DAFTAR bucket Amazon S3 dan DAPATKAN objek Amazon S3 yang diimpor.

catatan

Jika Anda menerima pesan galatS3ServiceException: Access Denied, saat menjalankan perintah COPY, UNLOAD, atau CREATE LIBRARY, cluster Anda tidak memiliki izin akses yang tepat untuk Amazon S3.

Anda dapat mengelola izin IAM dengan melampirkan kebijakan IAM ke peran IAM yang dilampirkan ke cluster Anda, ke pengguna, atau ke grup tempat pengguna Anda berada. Misalnya, kebijakan terkel AmazonS3ReadOnlyAccess ola memberikan izin LIST dan GET ke sumber daya Amazon S3. Untuk informasi selengkapnya tentang kebijakan IAM, lihat M engelola Kebijakan IAM di Panduan Pengguna IAM.