Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Tutorial: Introducción a la seguridad en Amazon OpenSearch Serverless (CLI)
En este tutorial se describen los pasos descritos en el tutorial de introducción a la consola en materia de seguridad, pero se utiliza la consola de servicio AWS CLI en lugar de la consola de OpenSearch servicio.
En este tutorial, complete los pasos siguientes:
-
Creación de una política de permisos de IAM
-
Adjunte la política de IAM a un rol de IAM
-
Crear una política de cifrado
-
Crear una política de red
-
Crear una recopilación
-
Configurar la política de acceso a datos
-
Recuperación del punto de conexión de la colección
-
Cargue datos a su colección
-
Búsqueda de datos en su colección
El objetivo de este tutorial es configurar una única colección OpenSearch sin servidor con una configuración bastante simple de cifrado, red y acceso a los datos. Por ejemplo, puede configurar el acceso a la red pública, el cifrado y una política de acceso a los datos simplificada que concede permisos mínimos a un solo usuario. Clave administrada de AWS
En un escenario de producción, considere implementar una configuración más robusta, incluyendo autenticación SAML, una clave de cifrado personalizada y acceso VPC.
Para empezar con las políticas de seguridad en OpenSearch Serverless
-
nota
Puede omitir este paso si ya utilizas una política más amplia basada en la identidad, como
Action":"aoss:*"oAction":"*". Sin embargo, en los entornos de producción, siga el principio de privilegios mínimos y asigne solo los permisos mínimos necesarios para completar una tarea.Para empezar, cree una AWS Identity and Access Management política con los permisos mínimos necesarios para realizar los pasos de este tutorial. Asigne un nombre a la política
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\": \"*\"}]}"Respuesta de ejemplo
{ "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" } } -
Asocie
TutorialPolicyal rol de IAM que indexará y buscará datos en la colección. En este ejemplo, el rol se denominaTutorialRole:aws iam attach-role-policy \ --role-nameTutorialRole\ --policy-arn arn:aws:iam::123456789012:policy/TutorialPolicy -
Antes de crear una colección, debe crear una política de cifrado que asigne una Clave propiedad de AWS a la colección de libros que cree en un paso posterior.
Envíe la siguiente solicitud para crear una política de cifrado para la colección de libros:
aws opensearchserverless create-security-policy \ --name books-policy \ --type encryption --policy "{\"Rules\":[{\"ResourceType\":\"collection\",\"Resource\":[\"collection\/books\"]}],\"AWSOwnedKey\":true}"Respuesta de ejemplo
{ "securityPolicyDetail": { "type": "encryption", "name": "books-policy", "policyVersion": "MTY2OTI0MDAwNTk5MF8x", "policy": { "Rules": [ { "Resource": [ "collection/books" ], "ResourceType": "collection" } ], "AWSOwnedKey": true }, "createdDate": 1669240005990, "lastModifiedDate": 1669240005990 } } -
Cree una política de red que proporcione acceso público a la colección de libros:
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}]"Respuesta de ejemplo
{ "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 } } -
Crea la colección de libros:
aws opensearchserverless create-collection --name books --type SEARCHRespuesta de ejemplo
{ "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 } } -
Cree una política de acceso a datos que proporcione los permisos mínimos para indexar y buscar datos en la colección de libros. Reemplace entidad principal de ARN por el ARN de
TutorialRoledel paso 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\"]}]"Respuesta de ejemplo
{ "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 } }TutorialRoleahora debería poder indexar y buscar documentos en la colección de libros. -
Para realizar llamadas a la OpenSearch API, necesitas el punto de conexión de la colección. Envíe la siguiente solicitud para recuperar el parámetro
collectionEndpoint:aws opensearchserverless batch-get-collection --names booksRespuesta de ejemplo
{ "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": [] }nota
El punto final de la recopilación no estará disponible hasta que el estado de la recopilación cambie a
ACTIVE. Es posible que tengas que realizar varias llamadas para comprobar el estado hasta que la colección se haya creado correctamente. -
Utilice una herramienta HTTP como Postman
o curl para indexar los datos de la colección de libros. En el siguiente ejemplo, se crea un índice denominado books-index y se agrega un único documento. Envíe la siguiente solicitud al punto de conexión de la colección que recuperó en el paso anterior, con las credenciales
TutorialRole.PUT https://8kw362bpwg4gx9b2f6e0.us-east-1.aoss.amazonaws.com/books-index/_doc/1 { "title": "The Shining", "author": "Stephen King", "year": 1977 }Respuesta de ejemplo
{ "_index" : "books-index", "_id" : "1", "_version" : 1, "result" : "created", "_shards" : { "total" : 0, "successful" : 0, "failed" : 0 }, "_seq_no" : 0, "_primary_term" : 0 } -
Para empezar a buscar datos en tu colección, utilice la API de búsqueda
. La siguiente consulta representa una búsqueda básica: GET https://8kw362bpwg4gx9b2f6e0.us-east-1.aoss.amazonaws.com/books-index/_searchRespuesta de ejemplo
{ "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 } } ] } }