Izin untuk mengakses Sumber Daya lainnya AWS - Amazon Redshift

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

Izin untuk mengakses Sumber Daya lainnya AWS

Untuk memindahkan data antara cluster Anda dan AWS sumber daya lain, seperti Amazon S3, Amazon DynamoDB, Amazon EMR, atau Amazon EC2, klaster 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 GET access 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 dari metode otentikasi berikut:

  • Kontrol akses berbasis peran— Untuk kontrol akses berbasis peran, Anda menentukan peran AWS Identity and Access Management (IAM) yang digunakan klaster Anda untuk otentikasi dan otorisasi. Untuk melindungi AWS kredensyal dan data sensitif Anda, kami sangat menyarankan untuk menggunakan otentikasi berbasis peran.

  • Kontrol akses berbasis kunci— Untuk kontrol akses berbasis kunci, Anda memberikan kredensyal AWS akses (ID kunci akses dan kunci akses rahasia) untuk pengguna sebagai teks biasa.

Kontrol akses berbasis peran

Dengan kontrol akses berbasis peran, klaster Anda untuk sementara mengambil peran IAM atas nama Anda. Kemudian, berdasarkan otorisasi yang diberikan untuk peran tersebut, 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 kredensyal apa pun (kata sandi atau kunci akses) yang terkait dengannya. Sebaliknya, jika peran dikaitkan dengan cluster, kunci akses dibuat secara dinamis dan disediakan untuk cluster.

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

Otentikasi berbasis peran 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 akan diterapkan secara otomatis ke semua cluster yang menggunakan peran tersebut.

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

  • Cluster Anda memperoleh kredensi sesi sementara pada waktu berjalan dan menyegarkan kredensialnya sesuai kebutuhan hingga operasi selesai. Jika Anda menggunakan kredensyal sementara berbasis kunci, operasi gagal jika kredensyal 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 lampirkan peran tersebut ke cluster Anda. Peran harus memiliki, setidaknya, izin yang tercantum dalamIzin IAM untuk COPY, UNLOAD, dan CREATE LIBRARY. Untuk langkah-langkah untuk membuat peran IAM dan melampirkannya ke klaster Anda, lihat Mengotorisasi Amazon Redshift untuk Mengakses Layanan AWS Lain Atas Nama Anda di Panduan Manajemen Amazon Redshift.

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

Saat Anda membuat peran IAM, IAM mengembalikan Amazon Resource Name (ARN) untuk peran tersebut. Untuk menentukan peran IAM, berikan peran ARN dengan parameter atau CREDENTIALS parameter. IAM_ROLE

Sebagai contoh, misalkan peran berikut melekat pada 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://mybucket/mydata' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole';

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

copy customer from 's3://mybucket/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.

Kontrol akses berbasis kunci

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

catatan

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

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

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

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

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

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

Kredensial keamanan sementara

Jika Anda menggunakan kontrol akses berbasis kunci, Anda dapat membatasi akses yang dimiliki pengguna ke data Anda dengan menggunakan kredensil keamanan sementara. Otentikasi berbasis peran secara otomatis menggunakan kredensil sementara.

catatan

Kami sangat menyarankan menggunakan role-based access control alih-alih membuat kredensil sementara dan memberikan ID kunci akses dan kunci akses rahasia sebagai teks biasa. Kontrol akses berbasis peran secara otomatis menggunakan kredensil sementara.

Kredensyal keamanan sementara memberikan keamanan yang ditingkatkan karena mereka 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 kredensil keamanan sementara ini dapat mengakses sumber daya Anda hanya sampai kredensialnya kedaluwarsa.

Untuk memberi pengguna akses sementara ke sumber daya Anda, Anda memanggil operasi API AWS Security Token Service (AWS STS). Operasi AWS STS API mengembalikan kredensil keamanan sementara yang terdiri dari token keamanan, ID kunci akses, dan kunci akses rahasia. Anda mengeluarkan kredensi keamanan sementara kepada pengguna yang membutuhkan 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 kredensil keamanan sementara, lihat Menggunakan Kredensil Keamanan Sementara di Panduan Pengguna IAM.

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

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

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

Untuk mengautentikasi 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 kredensyal 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 kredensi sementara dan enkripsi file.

copy listing from 's3://mybucket/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 kredensyal sementara dan enkripsi file.

copy listing from 's3://mybucket/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

Kredensyal keamanan sementara harus valid selama seluruh durasi operasi COPY atau UNLOAD. Jika kredensyal keamanan sementara kedaluwarsa selama operasi, perintah gagal dan transaksi dibatalkan. Misalnya, jika kredensyal keamanan sementara kedaluwarsa setelah 15 menit dan operasi COPY membutuhkan satu jam, operasi COPY gagal sebelum selesai. Jika Anda menggunakan akses berbasis peran, kredensyal keamanan sementara secara otomatis disegarkan 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 COPY dari Amazon S3, izin untuk MENCANTUMKAN 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 data berformat JSON, izin untuk LIST dan DAPATKAN file JSONPaths di Amazon S3, jika digunakan.

  • Untuk COPY dari DynamoDB, izin untuk SCAN dan DESKRIPSIKAN tabel DynamoDB yang sedang dimuat.

  • Untuk COPY dari kluster EMR Amazon, izin untuk ListInstances tindakan di klaster EMR Amazon.

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

  • Untuk CREATE LIBRARY dari Amazon S3, izin untuk DAFTAR bucket Amazon S3 dan DAPATKAN objek Amazon S3 yang sedang diimpor.

catatan

Jika Anda menerima pesan galatS3ServiceException: Access Denied, saat menjalankan perintah COPY, UNLOAD, atau CREATE LIBRARY, klaster 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 kluster Anda, ke pengguna, atau ke grup tempat pengguna Anda berada. Misalnya, kebijakan AmazonS3ReadOnlyAccess terkelola memberikan izin LIST dan GET ke resource Amazon S3. Untuk informasi selengkapnya tentang kebijakan IAM, lihat Mengelola Kebijakan IAM di Panduan Pengguna IAM.