Amazon Redshift tidak akan lagi mendukung pembuatan Python UDFs baru mulai Patch 198. Python yang ada UDFs akan terus berfungsi hingga 30 Juni 2026. Untuk informasi lebih lanjut, lihat posting blog
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Connect ke Redshift dengan sesi peran IAM yang disempurnakan Identitas
Anda dapat menggunakan Pusat Identitas IAM untuk menyediakan akses gabungan ke klaster Amazon Redshift dan grup kerja tanpa server. Pendekatan ini memungkinkan pengguna untuk mengautentikasi menggunakan kredensil Pusat Identitas mereka.
Amazon Redshift menyediakan operasi GetIdentityCenterAuthToken API untuk menghasilkan token resmi yang berisi informasi identitas pengguna. Ini APIs tersedia untuk cluster yang disediakan dan grup kerja tanpa server. Token memungkinkan akses masuk tunggal yang mulus ke database Amazon Redshift menggunakan penyiapan Pusat Identitas yang ada.
Prasyarat
Sebelum menggunakan otentikasi Pusat Identitas dengan Amazon Redshift, pastikan Anda memiliki yang berikut:
-
Pengaturan Pusat Identitas: Akun Anda harus memiliki Pusat Identitas IAM yang dikonfigurasi dengan identitas pengguna dan tugas aplikasi yang sesuai. Untuk petunjuk penyiapan, lihat Menyiapkan Pusat Identitas IAM.
penting
Jika Anda ingin terhubung ke Redshift, Anda harus menggunakan redshift:connect scope.
-
Kredensyal yang disempurnakan identitas: Aplikasi Anda harus menggunakan kredensyal yang disempurnakan identitas yang berisi informasi identitas pengguna yang disematkan. Untuk informasi selengkapnya, lihat Menggunakan sesi peran IAM yang disempurnakan identitas.
-
Izin IAM: Peran atau pengguna IAM Anda harus memiliki izin untuk memanggil
GetIdentityCenterAuthTokenAPI dan mengakses cluster atau grup kerja yang ditentukan. Izin yang diperlukan:-
Untuk cluster yang disediakan:
redshift:GetIdentityCenterAuthTokendi cluster ARNs (format:)arn:aws:redshift:region:account:cluster:cluster-name -
Untuk grup kerja tanpa server:
redshift-serverless:GetIdentityCenterAuthTokenpada workgroup ARNs (format:)arn:aws:redshift-serverless:region:account:workgroup/workgroup-name
-
-
Driver yang kompatibel: Gunakan driver Amazon Redshift JDBC atau ODBC yang mendukung token resmi Identity Center:
-
Driver JDBC: Lihat Menginstal dan mengonfigurasi driver Amazon Redshift JDBC versi 2.0
-
Driver ODBC: Lihat Menginstal dan mengonfigurasi driver Amazon Redshift ODBC versi 2.0
-
Cara kerja otentikasi Pusat Identitas
Autentikasi Pusat Identitas untuk Amazon Redshift menggunakan alur kerja berikut:
-
Aplikasi Anda memanggil
GetIdentityCenterAuthTokenAPI menggunakan kredensyal yang disempurnakan identitas yang berisi informasi identitas pengguna yang disematkan. -
Amazon Redshift memvalidasi identitas Pusat Identitas dan menghasilkan token resmi terenkripsi yang dicakup ke cluster atau grup kerja tertentu. Lihat contoh kebijakan IAM.
-
Aplikasi Anda menggunakan token ini untuk terhubung ke cluster atau workgroup Amazon Redshift yang ditentukan.
-
Bidang data Amazon Redshift memvalidasi token dan memberikan akses berdasarkan izin pengguna Pusat Identitas dalam aplikasi Pusat Identitas.
penting
API ini membutuhkan kredensi yang ditingkatkan identitas. Untuk informasi selengkapnya, lihat Menggunakan sesi peran IAM yang disempurnakan identitas.
Jika Anda memanggil API tanpa kredensi yang disempurnakan identitas, Anda akan menerima kesalahan. UnsupportedOperationFault
GetIdentityCenterAuthToken Operasi API
Amazon Redshift menyediakan dua operasi GetIdentityCenterAuthToken API terpisah: satu untuk cluster yang disediakan dan satu untuk grup kerja tanpa server. Kedua operasi memiliki nama yang sama tetapi menerima parameter yang berbeda tergantung pada jenis sumber daya target.
GetIdentityCenterAuthToken untuk cluster yang disediakan
Untuk klaster Amazon Redshift yang disediakan, gunakan API GetIdentityCenterAuthToken di layanan Amazon Redshift untuk menghasilkan token resmi.
Sintaksis Permintaan
{ "ClusterIds": [ "string" ] }
Permintaan parameter
- ClusterIds
-
Daftar pengidentifikasi klaster Amazon Redshift yang token akan diizinkan untuk diakses. Token hanya dapat digunakan untuk mengautentikasi dengan cluster yang ditentukan dalam daftar ini.
Tipe: Array string
Kendala panjang: Minimal 1 item. Maksimal 20 item.
Wajib: Ya
Contoh-contoh CLI
Contoh: Dapatkan token resmi untuk satu cluster
aws redshift get-identity-center-auth-token \ --cluster-ids my-redshift-cluster
Contoh: Dapatkan token resmi untuk beberapa cluster
aws redshift get-identity-center-auth-token \ --cluster-ids my-cluster-1 my-cluster-2
GetIdentityCenterAuthToken untuk kelompok kerja tanpa server
Untuk workgroup Amazon Redshift Tanpa Server, gunakan API di GetIdentityCenterAuthToken layanan Amazon Redshift Serverless untuk menghasilkan token resmi.
Sintaksis Permintaan
{ "WorkgroupNames": [ "string" ] }
Permintaan parameter
- WorkgroupNames
-
Daftar nama workgroup Amazon Redshift Tanpa Server yang akan diizinkan untuk diakses oleh token. Token hanya dapat digunakan untuk mengautentikasi dengan kelompok kerja yang ditentukan dalam daftar ini.
Tipe: Array string
Kendala panjang: Minimal 1 item. Maksimal 20 item.
Wajib: Ya
Contoh-contoh CLI
Contoh: Dapatkan token resmi untuk satu grup kerja
aws redshift-serverless get-identity-center-auth-token \ --workgroup-names my-workgroup
Contoh: Dapatkan token resmi untuk beberapa grup kerja
aws redshift-serverless get-identity-center-auth-token \ --workgroup-names workgroup-1 workgroup-2
Sintaksis Respons
Keduanya APIs mengembalikan struktur respons yang sama:
{ "AuthorizedToken": "string", "ExpirationTime": "timestamp" }
Parameter respons
- AuthorizedToken
-
Token resmi terenkripsi yang berisi informasi identitas pengguna dan daftar cluster atau kelompok kerja resmi. Token ini harus diperlakukan sebagai data sensitif.
Tipe: String
- ExpirationTime
-
Tanggal dan waktu ketika token kedaluwarsa, di UTC. Token berlaku selama 1 jam dari waktu pembuatan.
Tipe: Timestamp
Contoh tanggapan
{ "AuthorizedToken": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyQGV4YW1wbGUuY29tIiwiaWF0IjoxNjQwOTk1MjAwLCJleHAiOjE2NDA5OTg4MDAsImNsdXN0ZXJzIjpbIm15LWNsdXN0ZXIiXX0...", "ExpirationTime": "2024-01-01T12:00:00Z" }
Integrasi driver
Driver Amazon Redshift mendukung otentikasi Pusat Identitas melalui penggunaan token langsung:
Penggunaan token langsung
Setelah memanggil GetIdentityCenterAuthToken API untuk mendapatkan token, gunakan IdpTokenAuthPlugin dengan jenis SUBJECT_TOKEN token.
Konfigurasi Koneksi:
plugin_name = com.amazon.redshift.plugin.IdpTokenAuthPlugin token_type = SUBJECT_TOKEN token = {encrypted_token_from_api_response}
Untuk informasi mendetail tentang plugin autentikasi Pusat Identitas dan konfigurasi driver, lihat Menyambung ke klaster Amazon Redshift.
Contoh kode Java
Contoh kode Java untuk terhubung menggunakan otentikasi Pusat Identitas:
import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.util.Properties; // Get token from GetIdentityCenterAuthToken API String token = "your_encrypted_token_from_api_response"; // Configure connection properties Properties props = new Properties(); props.setProperty("user", "your_username"); props.setProperty("plugin_name", "com.amazon.redshift.plugin.IdpTokenAuthPlugin"); props.setProperty("token_type", "SUBJECT_TOKEN"); props.setProperty("token", token); // Connect to Redshift String url = "jdbc:redshift://your-cluster.region.redshift.amazonaws.com:5439/your_database"; try (Connection conn = DriverManager.getConnection(url, props)) { // Use connection System.out.println("Connected successfully!"); } catch (SQLException e) { e.printStackTrace(); }
Persyaratan kebijakan IAM
Untuk menggunakan autentikasi Pusat Identitas dengan Amazon Redshift, izin IAM tertentu diperlukan di luar izin standar yang diperlukan untuk menghubungkan ke kluster dan grup kerja Amazon Redshift.
Izin API:
Untuk klaster yang disediakan, sesi peran IAM Anda yang disempurnakan harus memiliki:
-
redshift:GetIdentityCenterAuthTokenpada cluster ARNs (format:arn:aws:redshift:region:account:cluster:cluster-name)
Untuk grup kerja tanpa server, sesi peran IAM Anda yang disempurnakan harus memiliki:
-
redshift-serverless:GetIdentityCenterAuthTokenpada workgroup ARNs (format:arn:aws:redshift-serverless:region:account:workgroup/workgroup-name)
Contoh kebijakan IAM
Contoh kebijakan untuk klaster yang disediakan:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "redshift:GetIdentityCenterAuthToken" ], "Resource": [ "arn:aws:redshift:us-east-1:123456789012:cluster:my-cluster" ] } ] }
Contoh kebijakan untuk grup kerja tanpa server:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "redshift-serverless:GetIdentityCenterAuthToken" ], "Resource": [ "arn:aws:redshift-serverless:us-east-1:123456789012:workgroup/my-workgroup" ] } ] }
Contoh kebijakan untuk beberapa sumber daya:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "redshift:GetIdentityCenterAuthToken" ], "Resource": [ "arn:aws:redshift:*:123456789012:cluster/*" ] }, { "Effect": "Allow", "Action": [ "redshift-serverless:GetIdentityCenterAuthToken" ], "Resource": [ "arn:aws:redshift-serverless:*:123456789012:workgroup/*" ] } ] }
Ketersediaan wilayah
Otentikasi Pusat Identitas tersedia di AWS wilayah berikut:
-
Wilayah komersial: Semua wilayah Amazon Redshift yang didukung
-
AWS GovCloud: Tersedia dalam us-gov-east -1 dan us-gov-west -1
-
Wilayah Tiongkok: Tersedia dalam cn-north-1 dan cn-northwest-1
catatan
Ketersediaan fitur dapat bervariasi selama peluncuran awal.