Membuat integrasi sumber data OpenSearch Layanan Amazon dengan Amazon S3 - OpenSearch Layanan Amazon

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Membuat integrasi sumber data OpenSearch Layanan Amazon dengan Amazon S3

Anda dapat membuat sumber data kueri langsung Amazon S3 baru untuk OpenSearch Layanan melalui atau file. AWS Management Console API Setiap sumber data baru menggunakan tabel AWS Glue Data Catalog untuk mengelola yang mewakili bucket Amazon S3.

Prasyarat

Sebelum Anda dapat membuat sumber data, Anda harus memiliki OpenSearch domain dengan versi 2.13 atau yang lebih baru. Untuk petunjuk tentang pengaturan ini, lihat Membuat domain OpenSearch Layanan.

Siapkan sumber data kueri langsung baru

Anda dapat mengatur sumber data kueri langsung pada domain dengan AWS Management Console atau Layanan. OpenSearch API

  1. Arahkan ke konsol OpenSearch Layanan Amazon dihttps://console.aws.amazon.com/aos/.

  2. Di panel navigasi kiri, pilih Domain.

  3. Pilih domain yang ingin Anda siapkan sumber data baru. Ini membuka halaman detail domain. Pilih tab Koneksi di bawah detail domain umum dan temukan bagian Kueri langsung.

  4. Pilih Buat.

  5. Pada halaman pembuatan sumber data, masukkan nama untuk sumber data baru Anda. Di bawah Jenis sumber data, pilih Amazon S3. Pilih IAM peran yang ada yang memiliki batasan untuk apa yang dapat diakses di AWS Glue Data Catalog dan Amazon S3.

  6. Pilih Buat. Ini membuka layar detail sumber data dengan OpenSearch DasborURL. Anda dapat menavigasi URL ke ini untuk menyelesaikan langkah selanjutnya.

Gunakan AddDataSourceAPIoperasi untuk membuat sumber data baru di domain Anda.

POST https://es.region.amazonaws.com/2021-01-01/opensearch/domain/domain-name/dataSource { "DataSourceType": { "s3GlueDataCatalog": { "RoleArn": "arn:aws:iam::account-id:role/Admin" } } "Description": "data-source-description", "Name": "my-data-source" }

Kebijakan contoh berikut menunjukkan izin hak istimewa terkecil yang diperlukan untuk membuat dan mengelola sumber data. Jika Anda memiliki izin yang lebih luas, seperti s3:* atau AdminstratorAccess kebijakan, izin ini mencakup izin hak istimewa terkecil dalam kebijakan sampel.

Integrasi membutuhkan akses untuk menulis ke Amazon S3 dan. AWS Glue Data Catalog Untuk Amazon S3, kita memerlukan akses tulis untuk mempertahankan lokasi pos pemeriksaan saat membuat akselerasi. Untuk AWS Glue Data Catalog, kita memerlukan akses tulis untuk mengelola database, tabel, dan partisi yang diperlukan untuk integrasi dari dalam OpenSearch Layanan.

{ "Version":"2012-10-17", "Statement":[ { "Sid":"HttpActionsForOpenSearchDomain", "Effect":"Allow", "Action":"es:ESHttp*", "Resource":"arn:aws:es:<region>:<account>:domain/<domain_name>/*" }, { "Sid":"AmazonOpenSearchS3GlueDirectQueryReadAllS3Buckets", "Effect":"Allow", "Action":[ "s3:GetObject", "s3:GetObjectVersion", "s3:ListBucket" ], "Condition":{ "StringEquals":{ "aws:ResourceAccount":"<account>" } }, "Resource":"*" }, { "Sid":"AmazonOpenSearchDirectQueryGlueCreateAccess", "Effect":"Allow", "Action":[ "glue:CreateDatabase", "glue:CreatePartition", "glue:CreateTable", "glue:BatchCreatePartition" ], "Resource":"*" }, { "Sid":"AmazonOpenSearchS3GlueDirectQueryModifyAllGlueResources", "Effect":"Allow", "Action":[ "glue:DeleteDatabase", "glue:DeletePartition", "glue:DeleteTable", "glue:GetDatabase", "glue:GetDatabases", "glue:GetPartition", "glue:GetPartitions", "glue:GetTable", "glue:GetTableVersions", "glue:GetTables", "glue:UpdateDatabase", "glue:UpdatePartition", "glue:UpdateTable", "glue:BatchGetPartition", "glue:BatchDeletePartition", "glue:BatchDeleteTable" ], "Resource":[ "arn:aws:glue:us-east-1:<account>:table/*", "arn:aws:glue:us-east-1:<account>:database/*", "arn:aws:glue:us-east-1:<account>catalog" ], "Condition":{ "StringEquals":{ "aws:ResourceAccount":"<account>" } } }, { "Sid":"ReadAndWriteActionsForS3CheckpointBucket", "Effect":"Allow", "Action":[ "s3:ListMultipartUploadParts", "s3:DeleteObject", "s3:GetObject", "s3:PutObject", "s3:GetBucketLocation", "s3:ListBucket" ], "Condition":{ "StringEquals":{ "aws:ResourceAccount":"<account>" } }, "Resource":[ "arn:aws:s3:::<checkpoint_bucket_name>", "arn:aws:s3:::<checkpoint_bucket_name>/*" ] } ] }

Untuk mendukung bucket Amazon S3 di akun yang berbeda, Anda harus menyertakan ketentuan ke kebijakan Amazon S3 dan menambahkan akun yang sesuai.

"Condition": { "StringEquals": { "aws:ResourceAccount": "{{accountId}}" }

Peran juga harus memiliki kebijakan kepercayaan berikut, yang menentukan ID target.

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service": "directquery.opensearchservice.amazonaws.com" }, "Action":"sts:AssumeRole" } ] }

Untuk petunjuk cara membuat peran, lihat Membuat peran menggunakan kebijakan kepercayaan kustom.

Jika Anda mengaktifkan kontrol akses berbutir halus di OpenSearch Layanan, peran kontrol akses OpenSearch berbutir halus baru akan dibuat secara otomatis untuk sumber data Anda. Nama peran kontrol akses berbutir halus baru adalah. AWS OpenSearchDirectQuery <name of data source>

Secara default, peran memiliki akses ke indeks sumber data kueri langsung saja. Meskipun Anda dapat mengonfigurasi peran untuk membatasi atau memberikan akses ke sumber data Anda, sebaiknya Anda tidak menyesuaikan akses peran ini. Jika Anda menghapus sumber data, peran ini akan dihapus. Ini akan menghapus akses untuk pengguna lain jika mereka dipetakan ke peran tersebut.

Memetakan AWS Glue Data Catalog peran (jika kontrol akses halus diaktifkan setelah membuat sumber data)

Jika Anda telah mengaktifkan kontrol akses halus setelah membuat sumber data, Anda harus memetakan pengguna non-admin ke IAM peran dengan AWS Glue Data Catalog akses untuk menjalankan kueri langsung. Untuk membuat glue_access peran backend secara manual yang dapat Anda petakan ke IAM peran, lakukan langkah-langkah berikut:

catatan

Indeks digunakan untuk kueri apa pun terhadap sumber data. Pengguna dengan akses baca ke indeks permintaan untuk sumber data tertentu dapat membaca semua kueri terhadap sumber data tersebut. Pengguna dengan akses baca ke indeks hasil dapat membaca hasil untuk semua kueri terhadap sumber data tersebut.

  1. Dari menu utama di OpenSearch Dasbor, pilih Keamanan, Peran, dan Buat peran.

  2. Beri nama peran glue_access.

  3. Untuk izin Cluster, pilihindices:data/write/bulk*,indices:data/read/scroll,indices:data/read/scroll/clear.

  4. Untuk Indeks, masukkan indeks berikut yang ingin Anda berikan kepada pengguna akses peran:

    • .query_execution_request_<name of data source>

    • query_execution_result_<name of data source>

    • flint_*

  5. Untuk izin Indeks, pilihindices_all.

  6. Pilih Buat.

  7. Pilih Pengguna yang dipetakan, Kelola pemetaan.

  8. Di bawah peran Backend, tambahkan ARN AWS Glue peran yang memerlukan izin untuk memanggil domain Anda.

    arn:aws:iam::account-id:role/role-name
  9. Pilih Peta dan konfirmasikan, peran akan muncul pada Pengguna yang Dipetakan.

Untuk informasi selengkapnya tentang peran pemetaan, lihatMemetakan peran untuk pengguna.

Setelah Anda membuat sumber data, OpenSearch Layanan memberi Anda OpenSearch DasborURL. Anda menggunakan ini untuk mengonfigurasi kontrol akses, menentukan tabel, mengatur dasbor berbasis tipe log untuk jenis log populer, dan menanyakan data Anda.