Tutorial: Memulai keamanan di Amazon OpenSearch Tanpa Server (CLI) - OpenSearch Layanan Amazon

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

Tutorial: Memulai keamanan di Amazon OpenSearch Tanpa Server (CLI)

Tutorial ini memandu Anda melalui langkah-langkah yang dijelaskan dalam tutorial memulai konsol untuk keamanan, tetapi menggunakan AWS CLI bukan konsol OpenSearch Layanan.

Anda akan menyelesaikan langkah-langkah berikut dalam tutorial ini:

  1. Membuat kebijakan izin IAM

  2. Menyelesaikan kebijakan IAM ke peran IAM

  3. Buat kebijakan enkripsi

  4. Buat kebijakan jaringan

  5. Buat koleksi

  6. Konfigurasikan kebijakan akses data

  7. Ambil titik akhir koleksi

  8. Unggah data ke koneksi Anda

  9. Cari data dalam koleksi Anda

Tujuan dari tutorial ini adalah untuk mengatur koleksi OpenSearch Serverless tunggal dengan enkripsi, jaringan, dan pengaturan akses data yang cukup sederhana. Misalnya, kami akan mengonfigurasi akses jaringan publik, enkripsi Kunci yang dikelola AWS untuk, dan kebijakan akses data yang disederhanakan yang memberikan izin minimal kepada satu pengguna.

Dalam skenario produksi, pertimbangkan untuk menerapkan konfigurasi yang lebih kuat, termasuk otentikasi SAFL, kunci enkripsi khusus, dan akses VPC.

Untuk memulai dengan kebijakan keamanan di Tanpa OpenSearch Server
  1. catatan

    Anda dapat melewati langkah ini jika Anda sudah menggunakan kebijakan berbasis identitas yang lebih luas, seperti atau. Action":"aoss:*" Action":"*" Namun, di lingkungan produksi, kami menyarankan Anda mengikuti prinsip hak istimewa paling sedikit dan hanya menetapkan izin minimum yang diperlukan untuk menyelesaikan tugas.

    Untuk memulai, buat AWS Identity and Access Management kebijakan dengan izin minimum yang diperlukan untuk melakukan langkah-langkah dalam tutorial ini. Kami akan memberi nama kebijakanTutorialPolicy:

    aws iam create-policy \ --policy-name TutorialPolicy \ --policy-document "{\"Version\": \"2012-10-17\",\"Statement\": [{\"Action\": [\"aoss:ListCollections\",\"aoss:BatchGetCollection\",\"aoss:CreateCollection\",\"aoss:CreateSecurityPolicy\",\"aoss:GetSecurityPolicy\",\"aoss:ListSecurityPolicies\",\"aoss:CreateAccessPolicy\",\"aoss:GetAccessPolicy\",\"aoss:ListAccessPolicies\"],\"Effect\": \"Allow\",\"Resource\": \"*\"}]}"

    Sampel respon

    { "Policy": { "PolicyName": "TutorialPolicy", "PolicyId": "ANPAW6WRAECKG6QJWUV7U", "Arn": "arn:aws:iam::123456789012:policy/TutorialPolicy", "Path": "/", "DefaultVersionId": "v1", "AttachmentCount": 0, "PermissionsBoundaryUsageCount": 0, "IsAttachable": true, "CreateDate": "2022-10-16T20:57:18+00:00", "UpdateDate": "2022-10-16T20:57:18+00:00" } }
  2. Lampirkan TutorialPolicy ke peran IAM yang akan mengindeks dan mencari data dalam koleksi. Kami akan memberi nama penggunaTutorialRole:

    aws iam attach-role-policy \ --role-name TutorialRole \ --policy-arn arn:aws:iam::123456789012:policy/TutorialPolicy
  3. Sebelum membuat koleksi, Anda perlu membuat kebijakan enkripsi yang Kunci milik AWS menetapkan koleksi buku yang akan Anda buat di langkah selanjutnya.

    Kirim permintaan berikut untuk membuat kebijakan enkripsi untuk koleksi buku:

    aws opensearchserverless create-security-policy \ --name books-policy \ --type encryption --policy "{\"Rules\":[{\"ResourceType\":\"collection\",\"Resource\":[\"collection\/books\"]}],\"AWSOwnedKey\":true}"

    Sampel respon

    { "securityPolicyDetail": { "type": "encryption", "name": "books-policy", "policyVersion": "MTY2OTI0MDAwNTk5MF8x", "policy": { "Rules": [ { "Resource": [ "collection/books" ], "ResourceType": "collection" } ], "AWSOwnedKey": true }, "createdDate": 1669240005990, "lastModifiedDate": 1669240005990 } }
  4. Buat kebijakan jaringan yang menyediakan akses publik ke koleksi buku:

    aws opensearchserverless create-security-policy --name books-policy --type network \ --policy "[{\"Description\":\"Public access for books collection\",\"Rules\":[{\"ResourceType\":\"dashboard\",\"Resource\":[\"collection\/books\"]},{\"ResourceType\":\"collection\",\"Resource\":[\"collection\/books\"]}],\"AllowFromPublic\":true}]"

    Sampel respon

    { "securityPolicyDetail": { "type": "network", "name": "books-policy", "policyVersion": "MTY2OTI0MDI1Njk1NV8x", "policy": [ { "Rules": [ { "Resource": [ "collection/books" ], "ResourceType": "dashboard" }, { "Resource": [ "collection/books" ], "ResourceType": "collection" } ], "AllowFromPublic": true, "Description": "Public access for books collection" } ], "createdDate": 1669240256955, "lastModifiedDate": 1669240256955 } }
  5. Buat koleksi buku:

    aws opensearchserverless create-collection --name books --type SEARCH

    Sampel respon

    { "createCollectionDetail": { "id": "8kw362bpwg4gx9b2f6e0", "name": "books", "status": "CREATING", "type": "SEARCH", "arn": "arn:aws:aoss:us-east-1:123456789012:collection/8kw362bpwg4gx9b2f6e0", "kmsKeyArn": "auto", "createdDate": 1669240325037, "lastModifiedDate": 1669240325037 } }
  6. Buat kebijakan akses data yang memberikan izin minimum untuk mengindeks dan mencari data dalam koleksi buku. Ganti ARN utama dengan ARN dari TutorialRole langkah 1:

    aws opensearchserverless create-access-policy \ --name books-policy \ --type data \ --policy "[{\"Rules\":[{\"ResourceType\":\"index\",\"Resource\":[\"index\/books\/books-index\"],\"Permission\":[\"aoss:CreateIndex\",\"aoss:DescribeIndex\",\"aoss:ReadDocument\",\"aoss:WriteDocument\",\"aoss:UpdateIndex\",\"aoss:DeleteIndex\"]}],\"Principal\":[\"arn:aws:iam::123456789012:role\/TutorialRole\"]}]"

    Sampel respon

    { "accessPolicyDetail": { "type": "data", "name": "books-policy", "policyVersion": "MTY2OTI0MDM5NDY1M18x", "policy": [ { "Rules": [ { "Resource": [ "index/books/books-index" ], "Permission": [ "aoss:CreateIndex", "aoss:DescribeIndex", "aoss:ReadDocument", "aoss:WriteDocument", "aoss:UpdateDocument", "aoss:DeleteDocument" ], "ResourceType": "index" } ], "Principal": [ "arn:aws:iam::123456789012:role/TutorialRole" ] } ], "createdDate": 1669240394653, "lastModifiedDate": 1669240394653 } }

    TutorialRolesekarang harus dapat mengindeks dan mencari dokumen dalam koleksi buku.

  7. Untuk melakukan panggilan ke OpenSearch API, Anda memerlukan titik akhir koleksi. Kirim permintaan berikut untuk mengambil collectionEndpoint parameter:

    aws opensearchserverless batch-get-collection --names books

    Sampel respon

    { "collectionDetails": [ { "id": "8kw362bpwg4gx9b2f6e0", "name": "books", "status": "ACTIVE", "type": "SEARCH", "description": "", "arn": "arn:aws:aoss:us-east-1:123456789012:collection/8kw362bpwg4gx9b2f6e0", "createdDate": 1665765327107, "collectionEndpoint": "https://8kw362bpwg4gx9b2f6e0.us-east-1.aoss.amazonaws.com", "dashboardEndpoint": "https://8kw362bpwg4gx9b2f6e0.us-east-1.aoss.amazonaws.com/_dashboards" } ], "collectionErrorDetails": [] }
    catatan

    Anda tidak akan dapat melihat titik akhir koleksi hingga status koleksi berubah menjadiACTIVE. Anda mungkin harus melakukan beberapa panggilan untuk memeriksa status hingga koleksi berhasil dibuat.

  8. Gunakan alat HTTP seperti Postman atau curl untuk mengindeks data ke dalam koleksi buku. Kita akan membuat indeks yang disebut books-index dan menambahkan satu dokumen.

    Kirim permintaan berikut ke titik akhir koleksi yang Anda ambil di langkah sebelumnya, menggunakan kredensialnya. TutorialRole

    PUT https://8kw362bpwg4gx9b2f6e0.us-east-1.aoss.amazonaws.com/books-index/_doc/1 { "title": "The Shining", "author": "Stephen King", "year": 1977 }

    Sampel respon

    { "_index" : "books-index", "_id" : "1", "_version" : 1, "result" : "created", "_shards" : { "total" : 0, "successful" : 0, "failed" : 0 }, "_seq_no" : 0, "_primary_term" : 0 }
  9. Untuk mulai mencari data dalam koleksi Anda, gunakan API pencarian. Kueri berikut melakukan pencarian dasar:

    GET https://8kw362bpwg4gx9b2f6e0.us-east-1.aoss.amazonaws.com/books-index/_search

    Sampel respon

    { "took": 405, "timed_out": false, "_shards": { "total": 6, "successful": 6, "skipped": 0, "failed": 0 }, "hits": { "total": { "value": 2, "relation": "eq" }, "max_score": 1.0, "hits": [ { "_index": "books-index:0::3xJq14MBUaOS0wL26UU9:0", "_id": "F_bt4oMBLle5pYmm5q4T", "_score": 1.0, "_source": { "title": "The Shining", "author": "Stephen King", "year": 1977 } } ] } }