

 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.

# Mengotorisasi akses ke API Data Amazon Redshift
<a name="data-api-access"></a>

Untuk mengakses Data API, pengguna harus diberi wewenang. Anda dapat mengotorisasi pengguna untuk mengakses Data API dengan menambahkan kebijakan terkelola, yang merupakan kebijakan standar AWS Identity and Access Management (IAM), ke pengguna tersebut. Sebagai praktik terbaik, kami merekomendasikan untuk melampirkan kebijakan izin ke peran IAM dan kemudian menetapkannya ke pengguna dan grup sesuai kebutuhan. Untuk informasi selengkapnya, lihat [Identitas dan manajemen akses di Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-authentication-access-control.html). Untuk melihat izin yang diizinkan dan ditolak oleh kebijakan terkelola, lihat konsol IAM () [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/). 

# Mengonfigurasi izin IAM
<a name="data-api-iam"></a>

Amazon Redshift menyediakan kebijakan `AmazonRedshiftDataFullAccess` terkelola. Kebijakan ini menyediakan akses penuh ke operasi Amazon Redshift Data API. Kebijakan ini juga memungkinkan akses tercakup ke Amazon Redshift tertentu AWS Secrets Manager,, dan operasi IAM API yang diperlukan untuk mengautentikasi dan mengakses klaster Amazon Redshift atau grup kerja Tanpa Server Redshift. 

Anda juga dapat membuat kebijakan IAM Anda sendiri yang memungkinkan akses ke sumber daya tertentu. Untuk membuat kebijakan Anda, gunakan `AmazonRedshiftDataFullAccess` kebijakan sebagai templat awal Anda. Setelah membuat kebijakan, tambahkan ke setiap pengguna yang memerlukan akses ke API Data.

Pertimbangkan persyaratan berikut dari kebijakan IAM yang terkait dengan pengguna:
+ Jika Anda menggunakan AWS Secrets Manager untuk mengautentikasi, konfirmasikan kebijakan mengizinkan penggunaan `secretsmanager:GetSecretValue` tindakan untuk mengambil rahasia yang ditandai dengan kunci. `RedshiftDataFullAccess`
+ Jika Anda menggunakan kredensi sementara untuk mengautentikasi ke kluster, konfirmasikan kebijakan tersebut mengizinkan penggunaan `redshift:GetClusterCredentials` tindakan ke nama pengguna database `redshift_data_api_user` untuk database apa pun di klaster. Nama pengguna ini harus sudah dibuat di database Anda.
+ Jika Anda menggunakan kredensi sementara untuk mengautentikasi ke grup kerja tanpa server, konfirmasikan kebijakan tersebut mengizinkan penggunaan `redshift-serverless:GetCredentials` tindakan untuk mengambil grup kerja yang diberi tag dengan kunci tersebut. `RedshiftDataFullAccess` Pengguna database dipetakan 1:1 ke identitas sumber AWS Identity and Access Management (IAM). Misalnya, pengguna sample\$1user dipetakan ke pengguna database`IAM:sample_user`, dan peran IAM sample\$1role dipetakan ke. `IAMR:sample_role` Untuk informasi selengkapnya tentang identitas IAM, lihat [Identitas IAM (pengguna, grup pengguna, dan peran)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html) di Panduan Pengguna IAM.
+ Tindakan IAM `redshift-data:GetStatementResult` memungkinkan akses ke operasi keduanya `GetStatementResult` dan `GetStatementResultV2` API.

Tautan berikut memberikan informasi lebih lanjut tentang AWS Identity and Access Management *Panduan Pengguna IAM*.
+ Untuk informasi tentang membuat peran IAM, lihat [Membuat peran IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create.html). 
+ Untuk informasi tentang membuat kebijakan IAM, lihat [Membuat kebijakan IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html).
+ Untuk informasi tentang menambahkan kebijakan IAM ke pengguna, lihat [Menambahkan dan menghapus izin identitas IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html). 

## Jalankan kueri pada klaster yang dimiliki oleh akun lain
<a name="data-api-run-query-on-others-cluster"></a>

Untuk menjalankan kueri pada klaster yang dimiliki oleh akun lain, akun pemilik harus menyediakan peran IAM yang dapat diasumsikan oleh API Data di akun panggilan. Misalnya, Akun B memiliki klaster yang perlu diakses oleh Akun A. Akun B dapat melampirkan kebijakan AWS terkelola `AmazonRedshiftDataFullAccess` ke peran IAM Akun B. Kemudian Akun B mempercayai Akun A menggunakan kebijakan kepercayaan seperti berikut: ``

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::111122223333:role/someRoleA"
                ]
            },
            "Action": "sts:AssumeRole"
        }
    ]
}
```

------

Terakhir, peran IAM Akun A harus dapat mengambil peran Akun B IAM.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Action": "sts:AssumeRole",
        "Resource": "arn:aws:iam::111122223333:role/someRoleB"
    }
}
```

------

## Tentukan peran IAM yang membatasi sumber daya ke grup kerja Redshift Tanpa Server dan kluster Amazon Redshift di Akun AWS
<a name="data-api-restrict-to-account"></a>

Anda dapat menentukan sumber daya ARNs dalam kebijakan berbasis identitas untuk mengontrol akses ke grup kerja Redshift Tanpa Server dan klaster Amazon Redshift di file. Akun AWS Contoh ini menunjukkan cara Anda membuat kebijakan yang mengizinkan akses ke Data API hanya untuk workgroup dan cluster dalam yang ditentukan. Akun AWS

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "redshift-data:CancelStatement",
                "redshift-data:DescribeStatement",
                "redshift-data:GetStatementResult",
                "redshift-data:ListStatements"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "redshift-data:*",
            "Resource": [
                "arn:aws:redshift:us-east-1:111122223333:workgroup/*",
                "arn:aws:redshift:us-east-1:111122223333:cluster:*"
            ]
        }
    ]
}
```

------

## Mengkonfigurasi kebijakan IAM yang membatasi akses ke informasi pernyataan SQL hanya untuk pemilik pernyataan
<a name="data-api-restrict-to-statement-owner"></a>

Secara default, Amazon Redshift Data API memperlakukan peran IAM yang digunakan saat memanggil `ExecuteStatement` dan `BatchExecuteStatement` sebagai pemilik pernyataan SQL. Siapa pun yang diizinkan untuk mengambil peran dapat mengakses informasi tentang pernyataan SQL, termasuk hasilnya. Untuk membatasi akses informasi pernyataan SQL ke sesi peran IAM dengan pemilik tertentu, tambahkan kondisi. `redshift-data:statement-owner-iam-userid: "${aws:userid}"` Kebijakan IAM berikut membatasi akses.

------
#### [ JSON ]

****  

```
{
"Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "redshift-data:CancelStatement",
                "redshift-data:DescribeStatement",
                "redshift-data:GetStatementResult",
                "redshift-data:ListStatements"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "redshift-data:statement-owner-iam-userid": "${aws:userid}"
                }
            }
        }
    ]
}
```

------

Anda dapat menggunakan kondisi `statement-owner-iam-userid` dengan`CancelStatement`,`DescribeStatement`,`GetStatementResult`, dan`ListStatements`. Untuk informasi selengkapnya, lihat [Tindakan yang ditentukan oleh Amazon Redshift Data API](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonredshiftdataapi.html#amazonredshiftdataapi-redshift-data_statement-owner-iam-userid).

## Konfigurasikan kebijakan IAM yang membatasi akses ke hasil SQL hanya untuk pemilik sesi
<a name="data-api-restrict-session-owner"></a>

Secara default, Amazon Redshift Data API memperlakukan peran IAM yang digunakan saat memanggil `ExecuteStatement` dan `BatchExecuteStatement` sebagai pemilik sesi database yang menjalankan pernyataan SQL. Siapa pun yang diizinkan untuk mengambil peran dapat mengirimkan kueri ke sesi database. Untuk membatasi akses sesi ke sesi peran IAM dengan pemilik tertentu, tambahkan kondisi. ` redshift-data:session-owner-iam-userid: "${aws:userid}"` Kebijakan IAM berikut membatasi akses.

Kebijakan IAM berikut hanya memungkinkan pemilik sesi untuk mendapatkan hasil pernyataan. Kondisi `session-owner-iam-userid` ini digunakan untuk membatasi akses sumber daya ke yang ditentukan`userid`.

------
#### [ JSON ]

****  

```
{
"Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [ 
                "redshift-data:ExecuteStatement",
                "redshift-data:BatchExecuteStatement"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "redshift-data:session-owner-iam-userid": "${aws:userid}"
                }
            }
        }
    ]
}
```

------

Anda dapat menggunakan kondisi `session-owner-iam-userid` dengan `ExecuteStatement` dan`BatchExecuteStatement`. Untuk informasi selengkapnya, lihat [Tindakan yang ditentukan oleh Amazon Redshift Data API](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonredshiftdataapi.html#amazonredshiftdataapi-redshift-data_statement-owner-iam-userid).

# Menyimpan kredensi database di AWS Secrets Manager
<a name="data-api-secrets"></a>

Saat memanggil Data API, Anda dapat meneruskan kredensyal untuk klaster atau grup kerja tanpa server dengan menggunakan secret in. AWS Secrets Manager Untuk memberikan kredensial dengan cara ini, Anda menentukan nama rahasia atau Amazon Resource Name (ARN) rahasia tersebut. 

Untuk menyimpan kredensil dengan Secrets Manager, Anda memerlukan izin kebijakan `SecretManagerReadWrite` terkelola. Untuk informasi selengkapnya tentang izin minimum, lihat [Membuat dan Mengelola Rahasia dengan AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/managing-secrets.html) di *Panduan AWS Secrets Manager Pengguna*. 

**Untuk menyimpan kredensil Anda secara rahasia untuk cluster Amazon Redshift**

1. Gunakan AWS Secrets Manager konsol untuk membuat rahasia yang berisi kredensil untuk klaster Anda:
   + Saat Anda memilih **Simpan rahasia baru**, pilih **Credentials for Redshift cluster**. 
   + Simpan nilai Anda untuk **nama Pengguna** (pengguna basis data), **Kata Sandi**, dan **cluster DB** (pengidentifikasi cluster) dalam rahasia Anda. 
   + Tandai rahasia dengan kuncinya`RedshiftDataFullAccess`. Kebijakan AWS terkelola `AmazonRedshiftDataFullAccess` hanya mengizinkan tindakan `secretsmanager:GetSecretValue` untuk rahasia yang ditandai dengan kunci`RedshiftDataFullAccess`. 

   Untuk instruksi, lihat [Membuat Rahasia Basic](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_create-basic-secret.html) di *Panduan Pengguna AWS Secrets Manager *.

1. Gunakan AWS Secrets Manager konsol untuk melihat detail rahasia yang Anda buat, atau jalankan `aws secretsmanager describe-secret` AWS CLI perintah.

   Catat nama dan ARN rahasia. Anda dapat menggunakan ini dalam panggilan ke Data API.

**Untuk menyimpan kredensil Anda secara rahasia untuk grup kerja tanpa server**

1. Gunakan AWS Secrets Manager AWS CLI perintah untuk menyimpan rahasia yang berisi kredensil untuk workgroup tanpa server Anda:
   + Buat rahasia Anda dalam sebuah file, misalnya file JSON bernama`mycreds.json`. Berikan nilai untuk **nama Pengguna** (pengguna database) dan **Kata Sandi** dalam file.

     ```
     {
           "username": "myusername",
           "password": "mypassword"
     }
     ```
   + Simpan nilai-nilai Anda dalam rahasia Anda dan tandai rahasia dengan kuncinya`RedshiftDataFullAccess`.

     ```
     aws secretsmanager create-secret --name MyRedshiftSecret  --tags Key="RedshiftDataFullAccess",Value="serverless" --secret-string file://mycreds.json
     ```

     Berikut ini menunjukkan output.

     ```
     {
         "ARN": "arn:aws:secretsmanager:region:accountId:secret:MyRedshiftSecret-mvLHxf",
         "Name": "MyRedshiftSecret",
         "VersionId": "a1603925-e8ea-4739-9ae9-e509eEXAMPLE"
     }
     ```

   Untuk informasi selengkapnya, lihat [Membuat Rahasia Dasar dengan AWS CLI](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_create-basic-secret.html#proc-create-api) di *Panduan AWS Secrets Manager Pengguna*.

1. Gunakan AWS Secrets Manager konsol untuk melihat detail rahasia yang Anda buat, atau jalankan `aws secretsmanager describe-secret` AWS CLI perintah.

   Catat nama dan ARN rahasia. Anda dapat menggunakan ini dalam panggilan ke Data API.

# Membuat endpoint (AWS PrivateLink) Amazon VPC untuk API Data
<a name="data-api-vpc-endpoint"></a>

Amazon Virtual Private Cloud (Amazon VPC) memungkinkan Anda meluncurkan AWS sumber daya, seperti kluster dan aplikasi Amazon Redshift, ke cloud pribadi virtual (VPC). AWS PrivateLink menyediakan konektivitas pribadi antara virtual private cloud (VPCs) dan AWS layanan dengan aman di jaringan Amazon. Dengan menggunakan AWS PrivateLink, Anda dapat membuat titik akhir VPC, yang dapat Anda gunakan sambungkan ke layanan di berbagai akun dan VPCs berdasarkan Amazon VPC. Untuk informasi selengkapnya AWS PrivateLink, lihat [Layanan Titik Akhir VPC (AWS PrivateLink)](https://docs.aws.amazon.com/vpc/latest/userguide/endpoint-service.html) di Panduan Pengguna *Amazon Virtual Private Cloud*.

Anda dapat memanggil titik akhir API Data dengan titik akhir Amazon VPC. Dengan menggunakan titik akhir Amazon VPC, Anda akan menjaga lalu lintas antara aplikasi di Amazon VPC Anda dan API Data di jaringan AWS , tanpa menggunakan alamat IP publik. Titik akhir Amazon VPC dapat membantu Anda memenuhi persyaratan kepatuhan dan peraturan yang berkaitan dengan membatasi konektivitas internet publik. Misalnya, jika Anda menggunakan titik akhir Amazon VPC, Anda dapat mempertahankan lalu lintas antara aplikasi yang berjalan pada instans Amazon EC2 dan API Data di VPCs yang memuatnya.

Setelah membuat titik akhir Amazon VPC, Anda dapat mulai menggunakannya tanpa membuat kode atau perubahan konfigurasi apa pun di aplikasi Anda.

**Membuat titik akhir Amazon VPC untuk API Data**

1. Masuk ke Konsol Manajemen AWS dan buka konsol VPC Amazon di. [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)

1. Pilih **Titik Akhir**, lalu pilih **Buat Titik Akhir**.

1. Di halaman **Buat Titik Akhir**, untuk **Kategori layanan**, pilih **Layanan AWS **. Untuk **Nama Layanan**, pilih **redshift-data ()**. `com.amazonaws.region.redshift-data`

1. Untuk **VPC**, pilih VPC tempat membuat titik akhir.

   Pilih VPC yang berisi aplikasi yang membuat panggilan API Data.

1. Untuk **Subnet**, pilih subnet untuk setiap Availability Zone (AZ) yang digunakan oleh AWS layanan yang menjalankan aplikasi Anda.

   Untuk membuat titik akhir VPC Amazon, tentukan rentang alamat IP pribadi tempat titik akhir dapat diakses. Untuk melakukannya, pilih subnet untuk setiap Zona Ketersediaan. Hal tersebut membatasi titik akhir VPC ke rentang alamat IP pribadi khusus untuk setiap Zona Ketersediaan dan membuat titik akhir Amazon VPC di setiap Zona Ketersediaan.

1. Untuk **Aktifkan nama DNS**, pilih **Aktifkan untuk titik akhir ini**.

   DNS Pribadi menyelesaikan nama host DNS API Data standar (`https://redshift-data.region.amazonaws.com`) ke alamat IP pribadi yang dikaitkan dengan nama host DNS khusus untuk titik akhir Amazon VPC Anda. Akibatnya, Anda dapat mengakses titik akhir VPC API Data menggunakan AWS CLI atau AWS SDKs tanpa membuat perubahan kode atau konfigurasi apa pun untuk memperbarui URL titik akhir API Data.

1. Untuk **Grup keamanan**, pilih satu grup keamanan untuk dikaitkan dengan titik akhir Amazon VPC.

   Pilih grup keamanan yang memungkinkan akses ke AWS layanan yang menjalankan aplikasi Anda. Misalnya, jika instans Amazon EC2 menjalankan aplikasi Anda, pilih grup keamanan yang mengizinkan akses ke instans Amazon EC2. Grup keamanan memungkinkan Anda mengontrol lalu lintas ke titik akhir Amazon VPC dari sumber daya di VPC Anda.

1. Pilih **Buat titik akhir**.

Setelah titik akhir dibuat, pilih tautan di Konsol Manajemen AWS untuk melihat detail titik akhir.

Tab **Detail** titik akhir menunjukkan nama host DNS yang dibuat saat membuat titik akhir Amazon VPC.

Anda dapat menggunakan titik akhir standar (`redshift-data.region.amazonaws.com`) atau salah satu titik akhir khusus VPC untuk memanggil API Data dalam Amazon VPC. Titik akhir API Data standar secara otomatis merutekan ke titik akhir Amazon VPC. Perutean ini terjadi karena nama host DNS Pribadi diaktifkan saat titik akhir Amazon VPC dibuat.

Saat Anda menggunakan titik akhir VPC Amazon dalam panggilan API Data, semua lalu lintas antara aplikasi Anda dan API Data tetap berada di Amazon VPCs yang mengandungnya. Anda dapat menggunakan titik akhir Amazon VPC untuk semua jenis panggilan API Data. Lihat informasi selengkapnya tentang memanggil API Data di [Pertimbangan saat memanggil Amazon Redshift Data API](data-api.md#data-api-calling-considerations).

# Bergabung dengan grup basis data saat menghubungkan ke klaster
<a name="data-api-dbgroups"></a>

Grup database adalah kumpulan pengguna database. Hak istimewa database dapat diberikan kepada grup. Administrator dapat mengonfigurasi peran IAM sedemikian rupa sehingga grup database ini diperhitungkan saat SQL Anda berjalan dengan API Data. Untuk informasi selengkapnya tentang grup database, lihat [Grup](https://docs.aws.amazon.com/redshift/latest/dg/r_Groups.html) di Panduan *Pengembang Database Amazon Redshift*. 

Anda dapat mengonfigurasi peran IAM pemanggil API Data sehingga pengguna database yang ditentukan dalam panggilan bergabung dengan grup database saat API Data terhubung ke klaster. Kemampuan ini hanya didukung saat menghubungkan ke cluster yang disediakan. Itu tidak didukung saat menghubungkan ke grup kerja Redshift Serverless. Peran IAM dari pemanggil Data API juga harus memungkinkan tindakan. `redshift:JoinGroup`

Konfigurasikan ini dengan menambahkan tag ke peran IAM. Administrator peran IAM pemanggil menambahkan tag dengan kunci `RedshiftDbGroups` dan nilai kunci dari daftar grup database. Nilainya adalah daftar nama titik dua (:) dipisahkan dari kelompok database hingga total panjang 256 karakter. Grup database harus didefinisikan sebelumnya dalam database yang terhubung. Jika grup tertentu tidak ditemukan dalam database, itu diabaikan. Misalnya, untuk grup database `accounting` dan`retail`, nilai kunci adalah. `accounting:retail` Pasangan nilai kunci tag `{"Key":"RedshiftDbGroups","Value":"accounting:retail"}` digunakan oleh Data API untuk menentukan grup database mana yang terkait dengan pengguna database yang disediakan dalam panggilan ke Data API.

**Untuk bergabung dengan grup basis data**

1. Masuk ke Konsol Manajemen AWS dan buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Di panel navigasi konsol, pilih **Peran** lalu pilih nama peran yang ingin Anda edit.

1. Pilih tab **Tag**, lalu pilih **Kelola tag**.

1. Pilih **Tambah tag**, lalu tambahkan kunci **RedshiftDbGroups**dan nilai yang merupakan daftar*database-groups-colon-separated*.

1. Pilih **Simpan perubahan**.

   Sekarang ketika prinsipal IAM (dengan peran IAM ini terpasang) memanggil Data API, pengguna database yang ditentukan bergabung dengan grup database yang ditentukan dalam peran IAM.

*Untuk informasi selengkapnya tentang cara melampirkan tag ke prinsipal, termasuk peran IAM dan pengguna IAM, lihat [Menandai sumber daya IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) di Panduan Pengguna IAM.* 