Tutorial: Erste Schritte mit der Sicherheit in Amazon OpenSearch Serverless (CLI) - OpenSearch Amazon-Dienst

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Tutorial: Erste Schritte mit der Sicherheit in Amazon OpenSearch Serverless (CLI)

In diesem Tutorial werden Sie aus Sicherheitsgründen durch die Schritte geführt, die im Tutorial für die ersten Schritte der Konsole beschrieben sind. Es verwendet jedoch die AWS CLI anstelle der OpenSearch Servicekonsole.

In diesem Tutorial führen Sie die folgenden Schritte durch:

  1. Erstellen einer IAM-Berechtigungsrichtlinie

  2. Veranlassen der IAM-Richtlinie an eine IAM-Rolle

  3. Eine Verschlüsselungsrichtlinie erstellen

  4. Eine Netzwerkrichtlinie erstellen

  5. Eine Sammlung erstellen

  6. Konfigurieren einer Datenzugriffsrichtlinie

  7. Abrufen des Sammlungsendpunkts

  8. Hochladen von Daten in Ihre Verbindung

  9. Suchen von Daten in Ihrer Sammlung

Ziel dieses Tutorials ist es, eine einzelne OpenSearch Serverless-Sammlung mit relativ einfachen Einstellungen für Verschlüsselung, Netzwerk und Datenzugriff einzurichten. Beispielsweise konfigurieren wir den Zugriff auf ein öffentliches Netzwerk, ein Von AWS verwalteter Schlüssel für Verschlüsselung und eine vereinfachte Datenzugriffsrichtlinie, die einem einzelnen Benutzer minimale Berechtigungen gewährt.

Erwägen Sie in einem Produktionsumgebung die Implementierung einer robusteren Konfiguration, einschließlich SAML-Authentifizierung, eines benutzerdefinierten Verschlüsselungsschlüssels und VPC-Zugriff.

So beginnen Sie mit Sicherheitsrichtlinien in OpenSearch Serverless
  1. Anmerkung

    Sie können diesen Schritt überspringen, wenn Sie bereits eine umfassendere identitätsbasierte Richtlinie verwenden, z. B. Action":"aoss:*" oder Action":"*". In Produktionsumgebungen empfehlen wir jedoch, dem Prinzipal der geringsten Berechtigung zu folgen und nur die für die Ausführung einer Aufgabe erforderlichen Mindestberechtigungen zuzuweisen.

    Erstellen Sie zunächst eine Richtlinie AWS Identity and Access Management mit den Mindestberechtigungen, die für die Durchführung der Schritte in diesem Tutorial erforderlich sind. Wir werden die Richtlinie TutorialPolicy nennen:

    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\": \"*\"}]}"

    Beispielantwort

    { "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. Fügen Sie TutorialPolicy der IAM-Rolle an, die die Daten in der Sammlung indizieren und durchsuchen wird. Wir benennen den Benutzer TutorialRole:

    aws iam attach-role-policy \ --role-name TutorialRole \ --policy-arn arn:aws:iam::123456789012:policy/TutorialPolicy
  3. Bevor Sie eine Sammlung erstellen, müssen Sie eine Verschlüsselungsrichtlinie erstellen, die ein AWS-eigener Schlüssel der in einem späteren Schritt erstellten Bücher-Sammlung zuweist.

    Senden Sie die folgende Anfrage, um eine Verschlüsselungsrichtlinie für die Bücher-Sammlung zu erstellen:

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

    Beispielantwort

    { "securityPolicyDetail": { "type": "encryption", "name": "books-policy", "policyVersion": "MTY2OTI0MDAwNTk5MF8x", "policy": { "Rules": [ { "Resource": [ "collection/books" ], "ResourceType": "collection" } ], "AWSOwnedKey": true }, "createdDate": 1669240005990, "lastModifiedDate": 1669240005990 } }
  4. Erstellen Sie eine Netzwerkrichtlinie, die öffentlichen Zugriff auf die Bücher-Sammlung gewährt:

    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}]"

    Beispielantwort

    { "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. Erstellen Sie die Bücher-Sammlung:

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

    Beispielantwort

    { "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. Erstellen Sie eine Datenzugriffsrichtlinie, die Mindestberechtigungen zum Indizieren und Suchen von Daten in der Bücher-Sammlung bereitstellt. Ersetzen Sie den Prinzipal-ARN durch den ARN von TutorialRole aus Schritt 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\"]}]"

    Beispielantwort

    { "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 } }

    TutorialRole sollte nun in der Lage sein, Dokumente in der Bücher-Sammlung zu indizieren und zu durchsuchen.

  7. Um die OpenSearch API aufzurufen, benötigen Sie den Sammlungsendpunkt. Senden Sie die folgende Anfrage, um den collectionEndpoint-Parameter abzurufen:

    aws opensearchserverless batch-get-collection --names books

    Beispielantwort

    { "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": [] }
    Anmerkung

    Sie können den Sammlungsendpunkt erst sehen, wenn sich der Sammlungsstatus zu ACTIVE ändert. Möglicherweise müssen Sie mehrere Aufrufe durchführen, um den Status zu überprüfen, bis die Sammlung erfolgreich erstellt wurde.

  8. Verwenden Sie ein HTTP-Tool wie Postman oder curl, um Daten in der Bücher-Sammlung zu indizieren. Wir erstellen einen Index mit dem Namen books-index und fügen ein einzelnes Dokument hinzu.

    Senden Sie die folgende Anforderung mit den Anmeldeinformationen für TutorialRole an den Sammlungsendpunkt, den Sie im vorherigen Schritt abgerufen haben.

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

    Beispielantwort

    { "_index" : "books-index", "_id" : "1", "_version" : 1, "result" : "created", "_shards" : { "total" : 0, "successful" : 0, "failed" : 0 }, "_seq_no" : 0, "_primary_term" : 0 }
  9. Verwenden Sie die Such-API, um mit der Suche nach Daten in Ihrer Sammlung zu beginnen. Die folgende Abfrage führt eine einfache Suche durch:

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

    Beispielantwort

    { "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 } } ] } }