Connect ke Redshift dengan sesi peran IAM yang disempurnakan Identitas - Amazon Redshift

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

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

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

Cara kerja otentikasi Pusat Identitas

Autentikasi Pusat Identitas untuk Amazon Redshift menggunakan alur kerja berikut:

  1. Aplikasi Anda memanggil GetIdentityCenterAuthToken API menggunakan kredensyal yang disempurnakan 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 grup kerja tertentu. Lihat contoh kebijakan IAM.

  3. Aplikasi Anda menggunakan token ini untuk terhubung ke cluster atau workgroup 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 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.