Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
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, 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 kredensyal sementara untuk mengautentikasi ke kluster, konfirmasikan kebijakan tersebut mengizinkan penggunaan
redshift:GetClusterCredentials
tindakan ke nama pengguna databaseredshift_data_api_user
untuk database apa pun di klaster. Nama pengguna ini harus sudah dibuat di database Anda. -
Jika Anda menggunakan kredensyal 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.RedshiftDataFullAccess
Pengguna database dipetakan 1:1 ke identitas sumber AWS Identity and Access Management (IAM). Misalnya, pengguna sample_user dipetakan ke pengguna databaseIAM:sample_user
, dan peran IAM sample_role dipetakan ke.IAMR:sample_role
Untuk informasi selengkapnya tentang identitas IAM, lihat Identitas IAM (pengguna, grup pengguna, dan peran) di Panduan Pengguna IAM. -
Tindakan IAM
redshift-data:GetStatementResult
memungkinkan akses ke operasi keduanyaGetStatementResult
danGetStatementResultV2
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.
-
Untuk informasi tentang membuat kebijakan IAM, lihat Membuat kebijakan IAM.
-
Untuk informasi tentang menambahkan kebijakan IAM ke pengguna, lihat Menambahkan dan menghapus izin identitas IAM.
Jalankan kueri pada klaster yang dimiliki oleh akun lain
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:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::
accountID-of-account-A
:role/someRoleA" ] }, "Action": "sts:AssumeRole" } ] }
Akhirnya, peran Account A IAM harus dapat mengambil peran Account B IAM.
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::accountID-of-account-B:role/someRoleB" } }
Tentukan peran IAM yang membatasi sumber daya ke grup kerja Redshift Tanpa Server dan kluster Amazon Redshift di Akun AWS
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
{ "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:
arn-partition
:redshift-serverless:*:Akun AWS
:workgroup/*", "arn:arn-partition
:redshift:*:Akun AWS
:cluster:*" ] } ] }
Mengkonfigurasi kebijakan IAM yang membatasi akses ke informasi pernyataan SQL hanya untuk pemilik pernyataan
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.
{
"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
denganCancelStatement
,DescribeStatement
,GetStatementResult
, danListStatements
. Untuk informasi selengkapnya, lihat Tindakan yang ditentukan oleh Amazon Redshift Data API.
Konfigurasikan kebijakan IAM yang membatasi akses ke hasil SQL hanya untuk pemilik sesi
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 ditentukanuserid
.
{ "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
danBatchExecuteStatement
. Untuk informasi selengkapnya, lihat Tindakan yang ditentukan oleh Amazon Redshift Data API.