

 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 ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/) 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.

# Menandatangani permintaan HTTP
<a name="amazon-redshift-signing-requests"></a>

Amazon Redshift mengharuskan setiap permintaan yang Anda kirim ke API manajemen diautentikasi dengan tanda tangan. Topik ini menjelaskan cara menandatangani permintaan Anda. 

Jika Anda menggunakan salah satu AWS Perangkat Pengembangan Perangkat Lunak (SDK) atau AWS Command Line Interface, penandatanganan permintaan ditangani secara otomatis, dan Anda dapat melewati bagian ini. Untuk informasi selengkapnya tentang menggunakan AWS SDK, lihat[Menggunakan antarmuka manajemen Amazon Redshift untuk kluster yang disediakan](using-aws-sdk.md). Untuk informasi selengkapnya tentang menggunakan Antarmuka Baris Perintah Amazon Redshift, buka referensi [ baris perintah Amazon Redshift. ](https://docs.aws.amazon.com/cli/latest/reference/redshift/index.html)

Untuk menandatangani permintaan, Anda menghitung tanda tangan digital dengan menggunakan fungsi hash kriptografi. Hash kriptografi adalah fungsi yang mengembalikan nilai hash unik yang didasarkan pada input. Input ke fungsi hash mencakup teks permintaan Anda dan kunci akses rahasia Anda yang bisa Anda dapatkan dari kredenSIAL sementara. Fungsi hash mengembalikan nilai hash yang Anda sertakan dalam permintaan sebagai tanda tangan Anda. Tanda tangan adalah bagian header `Authorization` dari permintaan Anda.

**catatan**  
Pengguna memerlukan akses terprogram jika mereka ingin berinteraksi dengan AWS di luar. Konsol Manajemen AWS Cara untuk memberikan akses terprogram tergantung pada jenis pengguna yang mengakses AWS.  
Untuk memberi pengguna akses programatis, pilih salah satu opsi berikut.  



| Pengguna mana yang membutuhkan akses programatis? | Untuk | Oleh | 
| --- | --- | --- | 
| IAM | (Disarankan) Gunakan kredenSIAL konsol sebagai kredenSIAL sementara untuk menandatangani permintaan terprogram ke AWS CLI, AWS SDK, atau AWS API. | Mengikuti petunjuk untuk antarmuka yang ingin Anda gunakan.+  Untuk AWS CLI, lihat [ Login untuk pengembangan AWS lokal ](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sign-in.html) di Panduan *AWS Command Line Interface Pengguna*. <br />+  Untuk AWS SDK, lihat [ Login untuk pengembangan AWS lokal ](https://docs.aws.amazon.com/sdkref/latest/guide/access-login.html) di Panduan Refer *AWS ensi SDK dan Alat. *  | 
| Identitas tenaga kerja<br />(Pengguna yang dikelola di Pusat Identitas IAM) | Gunakan kredenSIAL sementara untuk menandatangani permintaan terprogram ke AWS CLI, AWS SDK, atau AWS API. | Mengikuti petunjuk untuk antarmuka yang ingin Anda gunakan.+  Untuk AWS CLI, lihat Meng [ onfigurasi AWS CLI untuk digunakan AWS IAM Identity Center](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html) di Panduan *AWS Command Line Interface Pengguna*. <br />+  Untuk AWS SDK, alat, dan AWS API, lihat otentikasi Pusat Identitas [ IAM ](https://docs.aws.amazon.com/sdkref/latest/guide/access-sso.html) di Panduan Refer *AWS ensi SDK dan Alat. *  | 
| IAM | Gunakan kredenSIAL sementara untuk menandatangani permintaan terprogram ke AWS CLI, AWS SDK, atau AWS API. | Mengikuti petunjuk dalam [ Menggunakan kredenSIAL sementara dengan AWS sumber daya ](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html) di Panduan   Pengguna IAM. | 
| IAM | (Tidak direkomendasikan)Gunakan kredentif jangka panjang untuk menandatangani permintaan terprogram ke AWS CLI, AWS SDK, atau AWS API. | Mengikuti petunjuk untuk antarmuka yang ingin Anda gunakan.+  Untuk itu AWS CLI, lihat Meng [ autentikasi menggunakan kredentif pengguna IAM ](https://docs.aws.amazon.com/cli/latest/userguide/cli-authentication-user.html) di Panduan *AWS Command Line Interface Pengguna. * <br />+  Untuk AWS SDK dan alat, lihat Meng [ autentikasi menggunakan kredentif jangka panjang ](https://docs.aws.amazon.com/sdkref/latest/guide/access-iam-users.html) di Panduan Refer *AWS ensi SDK dan Alat. * <br />+  Untuk AWS API, lihat M [ engelola kunci akses untuk pengguna IAM ](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html) di Panduan Pengguna * IAM. *  | 

Setelah Amazon Redshift menerima permintaan Anda, Amazon Redshift menghitung ulang tanda tangan dengan menggunakan fungsi hash dan input yang sama yang Anda gunakan untuk menandatangani permintaan. Jika tanda tangan yang dihasilkan cocok dengan tanda tangan dalam permintaan, Amazon Redshift memproses permintaan; jika tidak, permintaan ditolak. 

Amazon Redshift mendukung otentikasi menggunakan [AWS tanda tangan versi 4](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-signing.html). Proses untuk menghitung tanda tangan terdiri dari tiga tugas. Tugas-tugas ini diilustrasikan dalam contoh berikut.
+  [Tugas 1: Buat permintaan kanonik ](https://docs.aws.amazon.com/IAM/latest/UserGuide/create-signed-request.html#create-canonical-request)

  Atur ulang permintaan HTTP Anda ke dalam bentuk kanonik. Menggunakan formulir kanonik diperlukan karena Amazon Redshift menggunakan formulir kanonik yang sama untuk menghitung tanda tangan yang dibandingkan dengan yang Anda kirim. 
+  [Tugas 2: Buat string untuk ditandatangani ](https://docs.aws.amazon.com/IAM/latest/UserGuide/create-signed-request.html#create-string-to-sign)

  Buat string yang akan Anda gunakan sebagai salah satu nilai input untuk fungsi hash kriptografi Anda. String, yang disebut *string to sign*, adalah rangkaian dari nama algoritme hash, tanggal permintaan, string *cakupan kredensial*, dan permintaan kanonikalisasi dari tugas sebelumnya. *String * cakupan kredensi itu sendiri adalah penggabungan tanggal, wilayah, dan informasi layanan.
+  [Tugas 3: Hitung tanda tangan ](https://docs.aws.amazon.com/IAM/latest/UserGuide/create-signed-request.html#calculate-signature)

  Hitung tanda tangan untuk permintaan Anda dengan menggunakan fungsi hash kriptografi yang menerima dua string input, string Anda untuk ditandatangani dan kunci * tur * unan. Kunci turunan dihitung dengan memulai dengan kunci akses rahasia Anda dan menggunakan string cakupan kredensi untuk membuat serangkaian kode otentikasi pesan berbasis hash ()HMAC-SHA256. 

## Contoh perhitungan tanda tangan
<a name="example-signature-calculation"></a>

Contoh berikut memandu Anda melalui detail membuat tanda tangan untuk [ CreateCluster ](https://docs.aws.amazon.com/redshift/latest/APIReference/API_CreateCluster.html) permintaan. Anda dapat menggunakan contoh ini sebagai referensi untuk memeriksa metode perhitungan tanda tangan Anda sendiri. Perhitungan referensi lainnya disertakan dalam bagian [ Minta contoh tanda tangan ](https://docs.aws.amazon.com/IAM/latest/UserGuide/signature-v4-examples.html) pada Panduan Pengguna IAM.

Anda dapat menggunakan permintaan GET atau POST untuk mengirim permintaan ke Amazon Redshift. Perbedaan antara keduanya adalah bahwa untuk permintaan GET parameter Anda dikirim sebagai parameter string kueri. Untuk permintaan POST, mereka termasuk dalam badan permintaan. Contoh di bawah ini menunjukkan permintaan POST.

Contoh tersebut mengasumsikan sebagai berikut:
+ Stempel waktu permintaan adalah `Fri, 07 Dec 2012 00:00:00 GMT`.
+ Titik akhir adalah Wilayah AS Timur (Virginia Utara),`us-east-1`.

Sintaks permintaan umum adalah: 

```
https://redshift.us-east-1.amazonaws.com/
   ?Action=CreateCluster
   &ClusterIdentifier=examplecluster
   &MasterUsername=masteruser
   &MasterUserPassword=12345678Aa
   &NumberOfNode=2
   &NodeType=dc2.large
   &Version=2012-12-01
   &x-amz-algorithm=AWS4-HMAC-SHA256
   &x-amz-credential=AKIAIOSFODNN7EXAMPLE/20121207/us-east-1/redshift/aws4_request
   &x-amz-date=20121207T000000Z
   &x-amz-signedheaders=content-type;host;x-amz-date
```

Bentuk kanonik permintaan yang dihitung untuk [Tugas 1: Membuat Permintaan Kanonik](#SignatureCalculationTask1) adalah:

```
POST
/

content-type:application/x-www-form-urlencoded; charset=utf-8
host:redshift.us-east-1.amazonaws.com
x-amz-date:20121207T000000Z

content-type;host;x-amz-date
55141b5d2aff6042ccd9d2af808fdf95ac78255e25b823d2dbd720226de1625d
```

Baris terakhir dari permintaan kanonik adalah hash dari isi permintaan. Baris ketiga dalam permintaan kanonik kosong karena tidak ada parameter kueri untuk API ini. 

String yang akan ditandatangani untuk [ Tugas 2: Buat String untuk Ditandatangani ](#SignatureCalculationTask2) adalah:

```
AWS4-HMAC-SHA256
20121207T000000Z
20121207/us-east-1/redshift/aws4_request
06b6bef4f4f060a5558b60c627cc6c5b5b5a959b9902b5ac2187be80cbac0714
```

Baris pertama *string to sign* adalah algoritme, baris kedua adalah stempel waktu, baris ketiga adalah *cakupan kredensial*, dan baris terakhir adalah hash permintaan kanonik dari [Tugas 1: Membuat Permintaan Kanonik](#SignatureCalculationTask1). Nama layanan untuk digunakan dalam cakupan kredensial adalah `redshift`.

Untuk [ Tugas 3: Hitung Tanda ](#SignatureCalculationTask3) Tangan, kunci turunan dapat direpresentasikan sebagai:

```
derived key = HMAC(HMAC(HMAC(HMAC("AWS4" + YourSecretAccessKey,"20121207"),"us-east-1"),"redshift"),"aws4_request")
```

Kunci turunan dihitung sebagai rangkaian fungsi hash. Mulai dari pernyataan HMAC bagian dalam dalam rumus di atas, Anda menggabungkan frasa **AWS4** dengan kunci akses rahasia Anda dan menggunakan ini sebagai kunci untuk hash data “us-east-1". Hasil dari hash ini menjadi kunci untuk fungsi hash berikutnya. 

Setelah Anda menghitung kunci turunan, Anda menggunakannya dalam fungsi hash yang menerima dua string input, string Anda untuk ditandatangani dan kunci turunan. Misalnya, jika Anda menggunakan kunci akses rahasia `wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY` dan string untuk menandatangani yang diberikan sebelumnya, maka tanda tangan yang dihitung adalah sebagai berikut:

```
9a6b557aa9f38dea83d9215d8f0eae54100877f3e0735d38498d7ae489117920
```

Langkah terakhir adalah membangun header `Authorization`. Untuk access key demonstrasi `AKIAIOSFODNN7EXAMPLE`, header (dengan jeda baris yang ditambahkan untuk keterbacaan) adalah:

```
Authorization: AWS4-HMAC-SHA256 Credential=AKIAIOSFODNN7EXAMPLE/20121207/us-east-1/redshift/aws4_request, 
SignedHeaders=content-type;host;x-amz-date, 
Signature=9a6b557aa9f38dea83d9215d8f0eae54100877f3e0735d38498d7ae489117920
```