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, AmazonEMR, atau EC2 Amazon, klaster Anda harus memiliki izin untuk mengakses sumber daya dan melakukan tindakan yang diperlukan. Misalnya, untuk memuat data dari Amazon S3, COPY harus memiliki LIST akses ke bucket dan GET akses untuk objek bucket. Untuk informasi tentang izin minimum, lihatIAMizin untukCOPY,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 kredensi 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 IAM peran atas nama Anda. Kemudian, berdasarkan otorisasi yang diberikan untuk peran tersebut, cluster Anda dapat mengakses AWS sumber daya yang diperlukan.
Membuat IAM peran 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 kredensi 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 IAM alat AWS standar untuk menentukan IAM peran 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 IAM kebijakan berbutir halus yang memberikan izin bagi kluster dan pengguna database tertentu untuk mengakses sumber daya dan tindakan tertentu. AWS
-
Cluster Anda memperoleh kredensyal sesi sementara pada waktu berjalan dan menyegarkan kredensyal sesuai kebutuhan hingga operasi selesai. Jika Anda menggunakan kredensil sementara berbasis kunci, operasi gagal jika kredensil sementara kedaluwarsa sebelum selesai.
-
ID kunci akses dan ID kunci akses rahasia Anda tidak disimpan atau dikirimkan dalam SQL kode Anda.
Untuk menggunakan kontrol akses berbasis peran, Anda harus terlebih dahulu membuat peran menggunakan jenis IAM peran layanan Amazon Redshift, lalu lampirkan peran tersebut ke klaster Anda. Peran harus memiliki, setidaknya, izin yang tercantum dalamIAMizin untukCOPY,UNLOAD, dan CREATE LIBRARY. Untuk langkah-langkah untuk membuat IAM peran 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 IAM Peran Dengan Cluster di Panduan Manajemen Pergeseran Merah Amazon.
Saat Anda membuat IAM peran, IAM mengembalikan Amazon Resource Name (ARN) untuk peran tersebut. Untuk menentukan IAM peran, berikan peran ARN dengan IAM_ROLE parameter atau CREDENTIALS parameter.
Sebagai contoh, misalkan peran berikut dilampirkan ke cluster.
"IamRoleArn": "arn:aws:iam::0123456789012:role/MyRedshiftRole"
Contoh COPY perintah berikut menggunakan ROLE parameter IAM _ dengan contoh sebelumnya untuk otentikasi dan akses ke Amazon S3. ARN
copy customer from 's3://amzn-s3-demo-bucket/mydata' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole';
Contoh COPY perintah berikut menggunakan CREDENTIALS parameter untuk menentukan IAM peran.
copy customer from 's3://amzn-s3-demo-bucket/mydata' credentials 'aws_iam_role=arn:aws:iam::0123456789012:role/MyRedshiftRole';
Selain itu, superuser dapat memberikan ASSUMEROLE hak istimewa kepada pengguna database dan grup untuk menyediakan akses ke peran untuk COPY operasi. Untuk informasi, lihat GRANT.
Kontrol akses berbasis kunci
Dengan kontrol akses berbasis kunci, Anda memberikan ID kunci akses dan kunci akses rahasia untuk IAM pengguna 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 IAM peran 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 IAM pengguna dan berikan ID kunci akses dan kunci akses rahasia pengguna tersebut. Untuk langkah-langkah membuat IAM pengguna, lihat Membuat IAM Pengguna di AWS Akun Anda.
Untuk mengautentikasi menggunakan ACCESS _ KEY _ID dan SECRET _ ACCESS _KEY, ganti <access-key-id>
and <secret-access-key>
dengan ID kunci akses pengguna resmi dan kunci akses rahasia lengkap seperti yang ditunjukkan berikut ini.
ACCESS_KEY_ID '
<access-key-id>
' SECRET_ACCESS_KEY '<secret-access-key>
';
Untuk mengautentikasi menggunakan CREDENTIALS parameter, ganti <access-key-id>
and <secret-access-key>
dengan ID kunci akses pengguna resmi 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>
';
IAMPengguna harus memiliki, setidaknya, izin yang tercantum dalamIAMizin untukCOPY,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 memberikan pengguna akses sementara ke sumber daya Anda, Anda memanggil API operasi AWS Security Token Service (AWS STS). AWS STS APIOperasi 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 IAM pengguna 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.
Untuk mengautentikasi menggunakan ACCESS _ KEY _ID, SECRET _ ACCESS _KEY, dan SESSION _TOKEN, ganti <temporary-access-key-id>
,
<temporary-secret-access-key>
, dan <temporary-token>
seperti yang ditunjukkan berikut.
ACCESS_KEY_ID '
<temporary-access-key-id>
' SECRET_ACCESS_KEY '<temporary-secret-access-key>
' SESSION_TOKEN '<temporary-token>
';
Untuk mengautentikasi menggunakanCREDENTIALS, sertakan session_token=
dalam string kredensial seperti yang ditunjukkan berikut. <temporary-token>
CREDENTIALS 'aws_access_key_id=
<temporary-access-key-id>
;aws_secret_access_key=<temporary-secret-access-key>
;session_token=<temporary-token>
';
Contoh berikut menunjukkan COPY perintah dengan kredensil 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 LISTING tabel dengan kredensi 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 LISTING tabel menggunakan CREDENTIALS parameter dengan kredensyal 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
Kredensi keamanan sementara harus valid untuk seluruh durasi operasi COPY atauUNLOAD. Jika kredensil keamanan sementara kedaluwarsa selama operasi, perintah gagal dan transaksi dibatalkan. Misalnya, jika kredensyal keamanan sementara kedaluwarsa setelah 15 menit dan COPY operasi membutuhkan satu jam, COPY operasi gagal sebelum selesai. Jika Anda menggunakan akses berbasis peran, kredenal keamanan sementara secara otomatis disegarkan hingga operasi selesai.
IAMizin untukCOPY,UNLOAD, dan CREATE LIBRARY
IAMPeran atau pengguna yang direferensikan oleh CREDENTIALS parameter harus memiliki, minimal, izin berikut:
-
Untuk COPY dari Amazon S3, izin ke LIST bucket Amazon S3 dan objek GET Amazon S3 yang sedang dimuat, dan file manifes, jika digunakan.
-
Untuk COPY dari Amazon S3EMR, Amazon, dan host jarak jauh (SSH) dengan data JSON yang diformat, izin ke LIST dan file GET di JSONPaths Amazon S3, jika digunakan.
-
Untuk COPY dari DynamoDB, izin untuk SCAN dan tabel DynamoDB DESCRIBE yang sedang dimuat.
-
Untuk COPY dari EMR cluster Amazon, izin untuk
ListInstances
tindakan di EMR cluster Amazon. -
UNLOADUntuk Amazon S3,, GETLIST, dan PUT izin untuk bucket Amazon S3 tempat file datanya dibongkar.
-
Untuk CREATE LIBRARY dari Amazon S3, izin ke bucket Amazon LIST S3 dan objek Amazon S3 GET sedang diimpor.
catatan
Jika Anda menerima pesan kesalahanS3ServiceException: Access
Denied
, saat menjalankan,COPY, atau CREATE LIBRARY perintahUNLOAD, klaster Anda tidak memiliki izin akses yang tepat untuk Amazon S3.
Anda dapat mengelola IAM izin dengan melampirkan IAM kebijakan ke IAM peran yang dilampirkan ke klaster, pengguna, atau grup tempat pengguna Anda berada. Misalnya, kebijakan AmazonS3ReadOnlyAccess
terkelola memberikan LIST dan GET izin ke sumber daya Amazon S3. Untuk informasi selengkapnya tentang IAM kebijakan, lihat Mengelola IAM Kebijakan di Panduan IAM Pengguna.