

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)
<a name="gsg-serverless-cli"></a>

Dieses Tutorial behandelt die Schritte, die im [Tutorial Erste Schritte zur Sicherheit in der Konsole](gsg-serverless.md) beschrieben wurden, verwendet jedoch die Servicekonsole AWS CLI und nicht die OpenSearch Service-Konsole. 

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

1. Erstellen Sie eine IAM-Berechtigungsrichtlinie

1. Ordnen Sie die IAM-Richtlinie einer IAM-Rolle zu

1. Eine Verschlüsselungsrichtlinie erstellen

1. Eine Netzwerkrichtlinie erstellen

1. Eine Sammlung erstellen

1. Konfigurieren einer Datenzugriffsrichtlinie

1. Rufen Sie den Sammlungsendpunkt ab

1. Laden Sie Daten in Ihre Sammlung hoch

1. Suchen Sie nach Daten in Ihrer Sammlung

Das Ziel dieses Tutorials besteht darin, eine einzelne OpenSearch serverlose Sammlung mit relativ einfachen Verschlüsselungs-, Netzwerk- und Datenzugriffseinstellungen einzurichten. Sie konfigurieren beispielsweise den öffentlichen Netzwerkzugriff, eine Von AWS verwalteter Schlüssel Datenverschlüsselung und eine vereinfachte Datenzugriffsrichtlinie, die einem einzelnen Benutzer nur 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.

**Um mit Sicherheitsrichtlinien in OpenSearch Serverless zu beginnen**

1. 
**Anmerkung**  
Sie können diesen Schritt überspringen, wenn Sie bereits eine umfassendere identitätsbasierte Richtlinie verwenden, z. B. `Action":"aoss:*"` oder `Action":"*"`. Halten Sie sich in Produktionsumgebungen jedoch an das Prinzip der geringsten Rechte und weisen Sie nur die Mindestberechtigungen zu, die für die Ausführung einer Aufgabe erforderlich sind.

   Erstellen Sie zunächst eine AWS Identity and Access Management Richtlinie mit den erforderlichen Mindestberechtigungen, um die Schritte in diesem Tutorial auszuführen. Benennen Sie die Richtlinie`TutorialPolicy`:

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

1. Fügen Sie `TutorialPolicy` der IAM-Rolle an, die die Daten in der Sammlung indizieren und durchsuchen wird. In diesem Beispiel wird die Rolle wie folgt benannt`TutorialRole`:

   ```
   aws iam attach-role-policy \
     --role-name {{TutorialRole}} \
     --policy-arn arn:aws:iam::{{123456789012}}:policy/TutorialPolicy
   ```

1. Bevor Sie eine Sammlung erstellen, müssen Sie eine [Verschlüsselungsrichtlinie](serverless-encryption.md) erstellen, die der *Büchersammlung*, AWS-eigener Schlüssel die Sie in einem späteren Schritt erstellen, eine 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
       }
   }
   ```

1. Erstellen Sie eine [Netzwerkrichtlinie](serverless-network.md), 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
       }
   }
   ```

1. 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
       }
   }
   ```

1. Erstellen Sie eine [Datenzugriffsrichtlinie](serverless-data-access.md), die 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. 

1. Um Aufrufe an die OpenSearch API zu tätigen, 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**  
Der Sammlungsendpunkt ist erst verfügbar, wenn sich der Erfassungsstatus auf ändert`ACTIVE`. Möglicherweise müssen Sie mehrere Aufrufe tätigen, um den Status zu überprüfen, bis die Sammlung erfolgreich erstellt wurde.

1. Verwenden Sie ein HTTP-Tool wie [Postman](https://www.getpostman.com/) oder curl, um Daten in der *Bücher*-Sammlung zu indizieren. Im folgenden Beispiel wird ein Index namens *books-index* erstellt und ein einzelnes Dokument hinzugefügt.

   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
   }
   ```

1. Verwenden Sie die [Such-API](https://opensearch.org/docs/latest/opensearch/rest-api/search/), 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
                   }
               }
           ]
       }
   }
   ```