

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

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 Kit Pengembangan Perangkat AWS Lunak (SDKs) atauAWS Command Line Interface, penandatanganan permintaan ditangani secara otomatis, dan Anda dapat melewati bagian ini. Untuk informasi selengkapnya tentang penggunaan AWSSDKs, lihat[Menggunakan antarmuka manajemen Amazon Redshift untuk kluster yang disediakan](using-aws-sdk.md). Untuk informasi selengkapnya tentang penggunaan 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 kredensi 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 membutuhkan akses terprogram jika mereka ingin berinteraksi dengan AWS luar. Konsol Manajemen AWS Cara untuk memberikan akses terprogram tergantung pada jenis pengguna yang mengaksesAWS.  
Untuk memberi pengguna akses programatis, pilih salah satu opsi berikut.  


****  

| Pengguna mana yang membutuhkan akses programatis? | Untuk | Oleh | 
| --- | --- | --- | 
| IAM | (Disarankan) Gunakan kredenal konsol sebagai kredensional sementara untuk menandatangani permintaan terprogram ke,, atau. AWS CLI AWS SDKs AWS APIs |  Mengikuti petunjuk untuk antarmuka yang ingin Anda gunakan. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/redshift/latest/mgmt/amazon-redshift-signing-requests.html)  | 
|  Identitas tenaga kerja (Pengguna yang dikelola di Pusat Identitas IAM)  | Gunakan kredensi sementara untuk menandatangani permintaan terprogram keAWS CLI,, AWS SDKs atau. AWS APIs |  Mengikuti petunjuk untuk antarmuka yang ingin Anda gunakan. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/redshift/latest/mgmt/amazon-redshift-signing-requests.html)  | 
| IAM | Gunakan kredensi sementara untuk menandatangani permintaan terprogram keAWS CLI,, AWS SDKs atau. AWS APIs | Mengikuti petunjuk dalam [Menggunakan kredensi 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 kredensi jangka panjang untuk menandatangani permintaan terprogram keAWS CLI,, AWS SDKs atau. AWS APIs |  Mengikuti petunjuk untuk antarmuka yang ingin Anda gunakan. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/redshift/latest/mgmt/amazon-redshift-signing-requests.html)  | 

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

Amazon Redshift mendukung otentikasi menggunakan versi [AWStanda tangan](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-signing.html) 4. 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 bentuk kanonik diperlukan karena Amazon Redshift menggunakan bentuk 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 *lingkup kredensi* itu sendiri adalah rangkaian informasi tanggal, wilayah, dan 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 turunan.* 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 pembuatan 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 akhirnya 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 Tangan](#SignatureCalculationTask3), 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 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 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
```