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.
Terhubung ke Redshift dengan sesi Identity-enhanced peran IAM
Anda dapat menggunakan Pusat Identitas IAM untuk menyediakan akses federasi ke cluster Amazon Redshift dan grup kerja tanpa server. Pendekatan ini memungkinkan pengguna untuk mengotentikasi menggunakan kredentif Pusat Identitas mereka.
Amazon Redshift menyediakan operasi GetIdentityCenterAuthToken API untuk menghasilkan token resmi yang berisi informasi identitas pengguna. API ini tersedia untuk cluster yang disediakan dan grup kerja tanpa server. Token memungkinkan akses masuk tunggal yang mulus ke database Amazon Redshift menggunakan pengaturan Pusat Identitas Anda yang ada.
Prasyarat
Sebelum menggunakan otentikasi Identity Center dengan Amazon Redshift, pastikan Anda memiliki yang berikut:
-
Pengaturan Pusat Identitas: Akun Anda harus memiliki Pusat Identitas IAM yang dikonfigurasi dengan identitas pengguna dan penugasan aplikasi yang sesuai. Untuk petunjuk penyiapan, lihat Menyiapkan Pusat Identitas IAM.
penting
Jika Anda ingin terhubung ke Redshift, Anda harus menggunakan redshift:connect scope.
-
Identity-enhanced kredenSIAL: Aplikasi Anda harus menggunakan kredenSIAL yang ditingkatkan identitas yang berisi informasi identitas pengguna yang disematkan. Untuk informasi selengkapnya, lihat Menggunakan sesi peran IAM yang ditingkatkan 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:GetIdentityCenterAuthTokenpada ARN cluster (format:)arn:aws:redshift:region:account:cluster:cluster-name -
Untuk kelompok kerja tanpa server:
redshift-serverless:GetIdentityCenterAuthTokenpada ARN grup kerja (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 Meng instal dan mengonfigurasi driver Amazon Redshift JDBC versi 2.x
-
Driver ODBC: Lihat Meng instal dan mengonfigurasi driver Amazon Redshift ODBC versi 2.0
-
-
Konfigurasi jaringan untuk perutean VPC yang disem purnakan: Jika routing VPC yang disempurnakan diaktifkan, VPC Anda harus dapat menjangkau layanan Pusat Identitas. Titik akhir antarmuka VPC adalah cara yang disarankan untuk menyediakan konektivitas ini. Siapkan konektivitas ini sebelum pengguna masuk. Untuk informasi selengkapnya tentang persyaratan routing VPC yang disempurnakan untuk Identity Center, lihatPenggunaan AWS Otentikasi Pusat Identitas IAM dengan routing VPC yang ditingkatkan.
Cara kerja otentikasi Identity Center
Otentikasi Pusat Identitas untuk Amazon Redshift menggunakan alur kerja berikut:
-
Aplikasi Anda memanggil
GetIdentityCenterAuthTokenAPI menggunakan kredensional yang ditingkatkan identitas yang berisi informasi identitas pengguna yang disematkan. -
Amazon Redshift memvalidasi identitas Pusat Identitas dan menghasilkan token resmi terenkripsi yang dicakup ke cluster atau kelompok kerja tertentu. Lihat contoh kebijakan IAM.
-
Aplikasi Anda menggunakan token ini untuk terhubung ke cluster atau grup kerja 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 kredenSIAL yang ditingkatkan dengan identitas. Untuk informasi selengkapnya, lihat Menggunakan sesi peran IAM yang ditingkatkan identitas.
Jika Anda memanggil API tanpa kredentif yang ditingkatkan identitas, Anda akan menerima kesalahanUnsupportedOperationFault.
GetIdentityCenterAuthToken Operasi API
Amazon Redshift menyediakan dua operasi GetIdentityCenterAuthToken API terpisah: satu untuk cluster yang disediakan dan satu untuk kelompok 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 cluster Amazon Redshift yang disediakan, gunakan GetIdentityCenterAuthToken API di layanan Amazon Redshift untuk menghasilkan token resmi.
Sintaksis Permintaan
{ "ClusterIds": [ "string" ] }
Permintaan parameter
- ClusterIds
-
Daftar pengidentifikasi cluster Amazon Redshift yang akan diotorisasi untuk diakses oleh token. Token hanya dapat digunakan untuk mengotentikasi dengan cluster yang ditentukan dalam daftar ini.
Tipe: Array string
Batasan 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 grup kerja Amazon Redshift Serverless, gunakan GetIdentityCenterAuthToken API di layanan Amazon Redshift Serverless untuk menghasilkan token resmi.
Sintaksis Permintaan
{ "WorkgroupNames": [ "string" ] }
Permintaan parameter
- WorkgroupNames
-
Daftar nama grup kerja Amazon Redshift Serverless yang akan diotorisasi untuk diakses oleh token. Token hanya dapat digunakan untuk mengotentikasi dengan kelompok kerja yang ditentukan dalam daftar ini.
Tipe: Array string
Batasan panjang: Minimal 1 item. Maksimal 20 item.
Wajib: Ya
Contoh-contoh CLI
Contoh: Dapatkan token resmi untuk satu kelompok kerja
aws redshift-serverless get-identity-center-auth-token \ --workgroup-names my-workgroup
Contoh: Dapatkan token resmi untuk beberapa kelompok kerja
aws redshift-serverless get-identity-center-auth-token \ --workgroup-names workgroup-1 workgroup-2
Sintaksis Respons
Kedua API 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, dalam UTC. Token berlaku selama 1 jam dari saat generasi.
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 tipe SUBJECT_TOKEN token.
Konfigurasi koneksi:
plugin_name = com.amazon.redshift.plugin.IdpTokenAuthPlugin token_type = SUBJECT_TOKEN token = {encrypted_token_from_api_response}
Untuk informasi terperinci tentang plugin otentikasi Identity Center dan konfigurasi driver, lihat Menghubungkan ke cluster Amazon Redshift.
Contoh kode Java
Contoh kode Java untuk terhubung menggunakan otentikasi Identity Center:
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 otentikasi Pusat Identitas dengan Amazon Redshift, izin IAM tertentu diperlukan di luar izin standar yang diperlukan untuk menghubungkan ke cluster dan grup kerja Amazon Redshift.
Izin API:
Untuk cluster yang disediakan, sesi peran IAM yang disempurnakan harus memiliki:
-
redshift:GetIdentityCenterAuthTokenpada cluster ARN (format:arn:aws:redshift:region:account:cluster:cluster-name)
Untuk kelompok kerja tanpa server, sesi peran IAM yang disempurnakan harus memiliki:
-
redshift-serverless:GetIdentityCenterAuthTokenpada ARN kelompok kerja (format:)arn:aws:redshift-serverless:region:account:workgroup/workgroup-name
Contoh kebijakan IAM
Contoh kebijakan untuk cluster 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 kelompok 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 di us-gov-east-1 dan us-gov-west-1
-
Wilayah China: Tersedia di cn-utara-1 dan cn-northwest-1
catatan
Ketersediaan fitur dapat bervariasi selama peluncuran awal.