Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Siapkan mesin kueri dan izin Anda untuk membuat basis pengetahuan dengan penyimpanan data terstruktur
Topik ini menjelaskan izin yang Anda perlukan saat menghubungkan basis pengetahuan Anda ke penyimpanan data terstruktur. Jika Anda berencana untuk menghubungkan basis pengetahuan Amazon Bedrock ke penyimpanan data terstruktur, Anda harus memenuhi prasyarat. Untuk persyaratan izin umum yang harus dipenuhi, lihatMenyiapkan izin untuk pengguna atau peran untuk membuat dan mengelola basis pengetahuan.
penting
Mengeksekusi kueri SQL sewenang-wenang dapat menjadi risiko keamanan untuk aplikasi apa pun. Text-to-SQL Sebaiknya Anda mengambil tindakan pencegahan sesuai kebutuhan, seperti menggunakan peran terbatas, basis data hanya-baca, dan kotak pasir.
Amazon Bedrock Knowledge Bases menggunakan Amazon Redshift sebagai mesin kueri untuk menanyakan penyimpanan data Anda. Mesin kueri mengakses metadata dari penyimpanan data terstruktur dan menggunakan metadata untuk membantu menghasilkan kueri SQL. Amazon Redshift adalah layanan gudang data yang menggunakan SQL untuk menganalisis data terstruktur di seluruh gudang data, database, dan data lake.
Buat mesin kueri Amazon Redshift
Anda dapat menggunakan Amazon Redshift Serverless atau Amazon Redshift Provisioned tergantung pada kasus penggunaan Anda, dan terhubung ke grup kerja atau cluster untuk gudang data Anda. Data dasar yang dapat ditanyakan oleh mesin Amazon Redshift dapat berupa data yang disimpan secara native di cluster Amazon Redshift, atau data yang terletak di bawah default ( AWS Glue Data Catalog seperti di Amazon S3 antara lain).
Jika Anda sudah membuat mesin kueri, Anda dapat melewati prasyarat ini. Jika tidak, lakukan langkah-langkah berikut untuk menyiapkan mesin kueri Amazon Redshift yang disediakan atau Amazon Redshift Serverless:
Untuk menyiapkan mesin kueri di Amazon Redshift disediakan
-
Ikuti prosedur di Langkah 1: Buat contoh cluster Amazon Redshift di Panduan Memulai Amazon Redshift.
-
Perhatikan ID cluster.
-
(Opsional) Untuk informasi selengkapnya tentang kluster yang disediakan Amazon Redshift, lihat klaster yang disediakan Amazon Redshift di Panduan Manajemen Pergeseran Merah Amazon.
Untuk menyiapkan mesin kueri di Amazon Redshift Tanpa Server
-
Ikuti hanya prosedur penyiapan di Membuat gudang data dengan Amazon Redshift Tanpa Server di Panduan Memulai Amazon Redshift dan konfigurasikan dengan pengaturan default.
-
Perhatikan ARN workgroup.
-
(Opsional) Untuk informasi selengkapnya tentang workgroup Amazon Redshift Tanpa Server, lihat Workgroups dan namespace di Panduan Manajemen Amazon Redshift.
Konfigurasikan izin mesin kueri Amazon Redshift
Bergantung pada mesin kueri Amazon Redshift yang Anda pilih, Anda dapat mengonfigurasi izin tertentu. Izin yang Anda konfigurasikan bergantung pada metode otentikasi. Tabel berikut menunjukkan metode otentikasi yang dapat digunakan untuk mesin query yang berbeda:
Metode otentikasi | Amazon Redshift Disediakan | Amazon Redshift Tanpa Server |
---|---|---|
IAM |
![]() |
![]() |
Nama pengguna basis data |
![]() |
![]() |
AWS Secrets Manager |
![]() |
![]() |
Pangkalan Pengetahuan Amazon Bedrock menggunakan peran layanan untuk menghubungkan basis pengetahuan ke penyimpanan data terstruktur, mengambil data dari penyimpanan data ini, dan menghasilkan kueri SQL berdasarkan kueri pengguna dan struktur penyimpanan data.
catatan
Jika Anda berencana untuk menggunakan AWS Management Console untuk membuat basis pengetahuan, Anda dapat melewati prasyarat ini. Konsol akan membuat peran layanan Amazon Bedrock Knowledge Bases dengan izin yang tepat.
Untuk membuat peran layanan IAM kustom dengan izin yang tepat, ikuti langkah-langkah di Buat peran untuk mendelegasikan izin ke Layanan AWS dan melampirkan hubungan kepercayaan yang ditentukan. Hubungan kepercayaan
Kemudian, tambahkan izin untuk basis pengetahuan Anda untuk mengakses mesin kueri dan database Amazon Redshift Anda. Perluas bagian yang berlaku untuk kasus penggunaan Anda:
Lampirkan kebijakan berikut ke peran layanan kustom Anda untuk memungkinkannya mengakses data Anda dan menghasilkan kueri yang menggunakannya:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "RedshiftDataAPIStatementPermissions", "Effect": "Allow", "Action": [ "redshift-data:GetStatementResult", "redshift-data:DescribeStatement", "redshift-data:CancelStatement" ], "Resource": [ "*" ], "Condition": { "StringEquals": { "redshift-data:statement-owner-iam-userid": "
${aws:userid}
" } } }, { "Sid": "RedshiftDataAPIExecutePermissions", "Effect": "Allow", "Action": [ "redshift-data:ExecuteStatement" ], "Resource": [ "arn:aws:redshift:${Region}
:${Account}
:cluster:${Cluster}
" ] }, { "Sid": "SqlWorkbenchAccess", "Effect": "Allow", "Action": [ "sqlworkbench:GetSqlRecommendations", "sqlworkbench:PutSqlGenerationContext", "sqlworkbench:GetSqlGenerationContext", "sqlworkbench:DeleteSqlGenerationContext" ], "Resource": "*" }, { "Sid": "GenerateQueryAccess", "Effect": "Allow", "Action": [ "bedrock:GenerateQuery" ], "Resource": "*" } ] }
Anda juga perlu menambahkan izin untuk memungkinkan peran layanan Anda mengautentikasi ke mesin kueri. Perluas bagian untuk melihat izin untuk metode itu.
Izin untuk melampirkan bergantung pada metode otentikasi Anda. Perluas bagian untuk melihat izin untuk suatu metode.
Izinkan peran layanan basis pengetahuan untuk mengakses penyimpanan data Anda
Pastikan data Anda disimpan di salah satu penyimpanan data terstruktur yang didukung berikut ini:
Amazon Redshift
AWS Glue Data Catalog (AWS Lake Formation)
Tabel berikut merangkum metode otentikasi yang tersedia untuk mesin kueri, tergantung pada penyimpanan data Anda:
Metode otentikasi | Amazon Redshift | AWS Glue Data Catalog (AWS Lake Formation) |
---|---|---|
IAM |
![]() |
![]() |
Nama pengguna basis data |
![]() |
![]() |
AWS Secrets Manager |
![]() |
![]() |
Untuk mempelajari cara menyiapkan izin untuk peran layanan Pangkalan Pengetahuan Amazon Bedrock Anda untuk mengakses penyimpanan data Anda dan menghasilkan kueri berdasarkan itu, perluas bagian yang sesuai dengan layanan tempat penyimpanan data Anda berada:
Untuk memberikan akses peran layanan Amazon Bedrock Knowledge Bases ke database Amazon Redshift, gunakan editor kueri Amazon Redshift v2 dan jalankan perintah SQL berikut:
-
(Jika Anda mengautentikasi dengan IAM dan pengguna belum dibuat untuk database Anda) Jalankan perintah berikut, yang menggunakan CREATE USER untuk membuat pengguna database dan memungkinkannya untuk mengautentikasi melalui IAM, ganti
${service-role}
dengan nama peran layanan Amazon Bedrock Knowledge Bases kustom yang Anda buat:CREATE USER "IAMR:
${service-role}
" WITH PASSWORD DISABLE;penting
Jika Anda menggunakan peran layanan Amazon Bedrock Knowledge Bases yang dibuat untuk Anda di konsol dan kemudian menyinkronkan penyimpanan data Anda sebelum Anda melakukan langkah ini, pengguna akan dibuat untuk Anda, tetapi sinkronisasi akan gagal karena pengguna belum diberikan izin untuk mengakses penyimpanan data Anda. Anda harus melakukan langkah berikut sebelum menyinkronkan.
-
Berikan izin identitas untuk mengambil informasi dari database Anda dengan menjalankan perintah GRANT.
penting
Jangan memberikan
CREATE
,UPDATE
, atauDELETE
akses. Pemberian tindakan ini dapat menyebabkan modifikasi data Anda yang tidak diinginkan.Untuk kontrol berbutir halus pada tabel yang dapat diakses, Anda dapat mengganti nama tabel
ALL TABLES
tertentu dengan notasi berikut:.${schemaName}
${tableName}
Untuk informasi selengkapnya tentang notasi ini, lihat bagian Query objects di Cross-database queries. -
Jika Anda membuat skema baru dalam database Redshift, jalankan perintah berikut untuk memberikan izin identitas terhadap skema baru.
GRANT USAGE ON SCHEMA ${schemaName} TO "IAMR:${serviceRole}";
Untuk memberikan akses peran layanan Amazon Bedrock Knowledge Bases ke penyimpanan AWS Glue Data Catalog data, gunakan editor kueri Amazon Redshift v2 dan jalankan perintah SQL berikut:
-
Jalankan perintah berikut, yang menggunakan CREATE USER untuk membuat pengguna database dan memungkinkannya untuk mengautentikasi melalui IAM, ganti
${service-role}
dengan nama peran layanan Amazon Bedrock Knowledge Bases kustom yang Anda buat:CREATE USER "IAMR:
${service-role}
" WITH PASSWORD DISABLE;penting
Jika Anda menggunakan peran layanan Amazon Bedrock Knowledge Bases yang dibuat untuk Anda di konsol dan kemudian menyinkronkan penyimpanan data Anda sebelum Anda melakukan langkah ini, pengguna akan dibuat untuk Anda, tetapi sinkronisasi akan gagal karena pengguna belum diberikan izin untuk mengakses penyimpanan data Anda. Anda harus melakukan langkah berikut sebelum menyinkronkan.
-
Berikan izin peran layanan untuk mengambil informasi dari database Anda dengan menjalankan perintah GRANT berikut:
GRANT USAGE ON DATABASE awsdatacatalog TO "IAMR:
${serviceRole}
";penting
Jangan memberikan
CREATE
,UPDATE
, atauDELETE
akses. Pemberian tindakan ini dapat menyebabkan modifikasi data Anda yang tidak diinginkan. -
Untuk mengizinkan akses ke AWS Glue Data Catalog database Anda, lampirkan izin berikut ke peran layanan:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "glue:GetDatabases", "glue:GetDatabase", "glue:GetTables", "glue:GetTable", "glue:GetPartitions", "glue:GetPartition", "glue:SearchTables" ], "Resource": [ "arn:aws:glue:
${Region}
:${Account}
:table/${DatabaseName}
/${TableName}
", "arn:aws:glue:${Region}
:${Account}
:database/${DatabaseName}
", "arn:aws:glue:${Region}
:${Account}
:catalog" ] } ] } -
Berikan izin ke peran layanan Anda melalui AWS Lake Formation (untuk mempelajari lebih lanjut tentang Lake Formation dan hubungannya dengan Amazon Redshift, lihat Sumber data untuk Redshift) dengan melakukan hal berikut:
-
Masuk ke AWS Management Console, dan buka konsol Lake Formation di https://console.aws.amazon.com/lakeformation/
. -
Pilih Izin data dari panel navigasi kiri.
-
Berikan izin ke peran layanan yang Anda gunakan untuk Pangkalan Pengetahuan Amazon Bedrock.
-
Berikan izin Jelaskan dan Pilih untuk database dan tabel Anda.
-
-
Bergantung pada sumber data yang Anda gunakan AWS Glue Data Catalog, Anda mungkin perlu menambahkan izin untuk mengakses sumber data tersebut (untuk informasi selengkapnya, lihat AWS Glue ketergantungan pada yang lain Layanan AWS). Misalnya, jika sumber data Anda berada di lokasi Amazon S3, Anda harus menambahkan pernyataan berikut ke kebijakan di atas.
{ "Sid": "Statement1", "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetObject" ], "Resource": [ "arn:aws:s3:::
${BucketName}
", "arn:aws:s3:::${BucketName}
/*" ] } -
(Opsional) Jika Anda menggunakan AWS KMS untuk mengenkripsi data di Amazon S3 AWS Glue Data Catalog atau, maka Anda perlu menambahkan izin ke peran untuk mendekripsi data pada kunci KMS.
{ "Action": [ "kms:Decrypt" ], "Resource": [ "arn:aws:kms:${Region}:${Account}:key/{KmsId}", "arn:aws:kms:${Region}:${Account}:key/{KmsId}" ], "Effect": "Allow" }