View a markdown version of this page

Terhubung ke Redshift dengan sesi Identity-enhanced peran IAM - 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.

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 GetIdentityCenterAuthToken API dan mengakses cluster atau grup kerja yang ditentukan. Izin yang diperlukan:

    • Untuk cluster yang disediakan: redshift:GetIdentityCenterAuthToken pada ARN cluster (format:) arn:aws:redshift:region:account:cluster:cluster-name

    • Untuk kelompok kerja tanpa server: redshift-serverless:GetIdentityCenterAuthToken pada 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:

  • 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:

  1. Aplikasi Anda memanggil GetIdentityCenterAuthToken API menggunakan kredensional yang ditingkatkan identitas yang berisi informasi identitas pengguna yang disematkan.

  2. Amazon Redshift memvalidasi identitas Pusat Identitas dan menghasilkan token resmi terenkripsi yang dicakup ke cluster atau kelompok kerja tertentu. Lihat contoh kebijakan IAM.

  3. Aplikasi Anda menggunakan token ini untuk terhubung ke cluster atau grup kerja Amazon Redshift yang ditentukan.

  4. 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.