

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.

# Control de acceso a datos para Amazon OpenSearch Serverless
<a name="serverless-data-access"></a>

Con el control de acceso a los datos de Amazon OpenSearch Serverless, puede permitir que los usuarios accedan a colecciones e índices, independientemente de su mecanismo de acceso o fuente de red. Puede proporcionar acceso a roles de IAM e [identidades SAML](serverless-saml.md).

Los permisos de acceso se administran mediante las *políticas de acceso a los datos*, que se aplican a las colecciones y a los recursos de índice. Las políticas de acceso a datos le ayudan a administrar las colecciones a escala mediante la asignación automática de permisos de acceso a las colecciones e índices que coinciden con un patrón específico. Se pueden aplicar varias políticas de acceso a los datos a un solo recurso. Tenga en cuenta que debe tener una política de acceso a los datos para su colección para poder acceder a la URL de su OpenSearch panel de control.

**Topics**
+ [Políticas de acceso a datos frente a políticas de IAM](#serverless-data-access-vs-iam)
+ [Permisos de IAM necesarios para configurar las políticas de acceso a los datos](#serverless-data-access-permissions)
+ [Sintaxis de la política](#serverless-data-access-syntax)
+ [Permisos de política compatibles](#serverless-data-supported-permissions)
+ [Ejemplos de conjuntos de datos en paneles OpenSearch](#serverless-data-sample-index)
+ [Creación de políticas de acceso a los datos (consola)](#serverless-data-access-console)
+ [Creación de políticas de acceso a los datos (AWS CLI)](#serverless-data-access-cli)
+ [Visualización de políticas de acceso a los datos](#serverless-data-access-list)
+ [Actualización de las políticas de acceso a los datos](#serverless-data-access-update)
+ [Eliminación de políticas de acceso a los datos](#serverless-data-access-delete)
+ [Acceso a los datos entre cuentas](#serverless-data-access-cross)

## Políticas de acceso a datos frente a políticas de IAM
<a name="serverless-data-access-vs-iam"></a>

Las políticas de acceso a los datos son lógicamente independientes de las políticas AWS Identity and Access Management (de IAM). Los permisos de IAM controlan el acceso a las [operaciones de la API sin servidor](https://docs.aws.amazon.com/opensearch-service/latest/ServerlessAPIReference/Welcome.html), como `CreateCollection` y `ListAccessPolicies`. Las políticas de acceso a los datos controlan el acceso a las [OpenSearch operaciones](#serverless-data-supported-permissions) compatibles con OpenSearch Serverless, como o. `PUT <index>` `GET _cat/indices`

Los permisos de IAM que controlan el acceso a las operaciones de la API de la política de acceso a los datos, como `aoss:CreateAccessPolicy` y `aoss:GetAccessPolicy` (que se describen en la siguiente sección), no afectan al permiso especificado en una política de acceso a los datos.

Por ejemplo, supongamos que una política de IAM niega a un usuario crear políticas de acceso a los datos para `collection-a`, pero le permite crear políticas de acceso a datos para todas las colecciones (`*`):

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Deny",
            "Action": [
                "aoss:CreateAccessPolicy"
            ],
            "Resource": "*",
            "Condition": {
                "StringLike": {
                    "aoss:collection": "collection-a"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "aoss:CreateAccessPolicy"
            ],
            "Resource": "*"
        }
    ]
}
```

------

Si el usuario crea una política de acceso a los datos que permite ciertos permisos a *todas* las colecciones (`collection/*` o `index/*/*`), la política se aplicará a todas las colecciones, incluida la colección A.

**importante**  
Contar con permisos en el marco de una política de acceso a los datos no es suficiente para acceder a los datos de su colección OpenSearch Serverless. A una entidad principal *también* se le debe conceder acceso a los permisos de IAM `aoss:APIAccessAll` y `aoss:DashboardsAccessAll`. Ambos permisos otorgan acceso total a los recursos de la recopilación, mientras que el permiso de paneles también proporciona acceso a los OpenSearch paneles. Si una entidad principal no tiene estos dos permisos de IAM, recibirá errores 403 cuando intente enviar solicitudes a la colección. Para obtener más información, consulte [Uso de operaciones OpenSearch de API](security-iam-serverless.md#security_iam_id-based-policy-examples-data-plane).

## Permisos de IAM necesarios para configurar las políticas de acceso a los datos
<a name="serverless-data-access-permissions"></a>

El control de acceso a los datos para OpenSearch Serverless utiliza los siguientes permisos de IAM. Puede especificar las condiciones de IAM para restringir a los usuarios a nombres de políticas de acceso específicos.
+ `aoss:CreateAccessPolicy`: cree una política de acceso.
+ `aoss:ListAccessPolicies`: enumere todas las políticas de acceso.
+ `aoss:GetAccessPolicy`: consulte los detalles sobre una política de acceso específica.
+ `aoss:UpdateAccessPolicy`: modifique una política de acceso.
+ `aoss:DeleteAccessPolicy`: elimine una política de acceso.

La siguiente política de acceso basada en la identidad permite al usuario ver todas las políticas de acceso y actualizar las políticas que contienen el patrón de recursos `collection/logs`.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "aoss:ListAccessPolicies",
                "aoss:GetAccessPolicy"
            ],
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Action": [
                "aoss:UpdateAccessPolicy"
            ],
            "Effect": "Allow",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aoss:collection": [
                        "logs"
                    ]
                }
            }
        }
    ]
}
```

------

**nota**  
Además, OpenSearch Serverless requiere los `aoss:DashboardsAccessAll` permisos `aoss:APIAccessAll` y los permisos para los recursos de recopilación. Para obtener más información, consulte [Uso de operaciones OpenSearch de API](security-iam-serverless.md#security_iam_id-based-policy-examples-data-plane).

## Sintaxis de la política
<a name="serverless-data-access-syntax"></a>

Una política de acceso a datos incluye un conjunto de reglas, cada una con los siguientes elementos:


| Element | Description (Descripción) | 
| --- | --- | 
| ResourceType | El tipo de recurso (colección o índice) al que se le aplican los permisos. Los permisos de alias y plantillas se encuentran en el nivel de la colección, mientras que los permisos para crear, modificar y buscar datos están en el nivel del índice. Para más información, consulte [Permisos de políticas compatibles](#serverless-data-supported-permissions). | 
| Resource | Una lista de and/or patrones de nombres de recursos. Los patrones son prefijos seguidos de un comodín (\$1), que permiten que los permisos asociados se apliquen a varios recursos.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/opensearch-service/latest/developerguide/serverless-data-access.html) | 
| Permission | Una lista de permisos a otorgar para los recursos especificados. Para obtener una lista completa de las operaciones de la API y de los permisos que permiten, consulte [Operaciones y permisos de OpenSearch API compatibles](serverless-genref.md#serverless-operations). | 
| Principal | Una lista de una o más entidades principales a las que conceder acceso. Los principales pueden ser identidades de rol de IAM ARNs o de SAML. Estas entidades principales deben estar dentro de la Cuenta de AWS actual. Las políticas de acceso a los datos no admiten directamente el acceso entre cuentas, pero puedes incluir en tu política una función que un usuario de otra cuenta Cuenta de AWS pueda asumir en la cuenta propietaria de la colección. Para obtener más información, consulte [Acceso a los datos entre cuentas](#serverless-data-access-cross). | 

La siguiente política de ejemplo otorga permisos de alias y plantillas a la colección llamada `autopartsinventory`, así como a cualquier colección que comience por el prefijo `sales*`. También otorga permisos de lectura y escritura a todos los índices dentro de la colección `autopartsinventory` y a todos los índices de la colección `salesorders` que comiencen por el prefijo `orders*`.

```
[
   {
      "Description": "Rule 1",
      "Rules":[
         {
            "ResourceType":"collection",
            "Resource":[
               "collection/autopartsinventory",
               "collection/sales*"
            ],
            "Permission":[
               "aoss:CreateCollectionItems",
               "aoss:UpdateCollectionItems",
               "aoss:DescribeCollectionItems"
            ]
         },
         {
            "ResourceType":"index",
            "Resource":[
               "index/autopartsinventory/*",
               "index/salesorders/orders*"
            ],
            "Permission":[
               "aoss:*"
            ]
         }
      ],
      "Principal":[
         "arn:aws:iam::123456789012:user/Dale",
         "arn:aws:iam::123456789012:role/RegulatoryCompliance",
         "saml/123456789012/myprovider/user/Annie",
         "saml/123456789012/anotherprovider/group/Accounting"
      ]
   }
]
```

No se puede denegar el acceso de forma explícita dentro de una política. Por lo tanto, todos los permisos de la política son aditivos. Por ejemplo, si una política concede el permiso `aoss:ReadDocument` a un usuario y otra `aoss:WriteDocument`, el usuario tendrá *ambos* permisos. Si una tercera política concede al mismo usuario el permiso `aoss:*`, el usuario puede realizar *todas* las acciones del índice asociado; los permisos más restrictivos no anulan los menos restrictivos.

## Permisos de política compatibles
<a name="serverless-data-supported-permissions"></a>

Las políticas de acceso a los datos admiten los siguientes permisos. Para ver las operaciones OpenSearch de API que permite cada permiso, consulte. [Operaciones y permisos de OpenSearch API compatibles](serverless-genref.md#serverless-operations)

**Permisos de colección**
+ `aoss:CreateCollectionItems`
+ `aoss:DeleteCollectionItems`
+ `aoss:UpdateCollectionItems`
+ `aoss:DescribeCollectionItems`
+ `aoss:*`

**Permisos de índice**
+ `aoss:ReadDocument`
+ `aoss:WriteDocument`
+ `aoss:CreateIndex`
+ `aoss:DeleteIndex`
+ `aoss:UpdateIndex`
+ `aoss:DescribeIndex`
+ `aoss:*`

## Ejemplos de conjuntos de datos en paneles OpenSearch
<a name="serverless-data-sample-index"></a>

OpenSearch Los paneles proporcionan [conjuntos de datos de muestra](https://opensearch.org/docs/latest/dashboards/quickstart-dashboards/#adding-sample-data) que incluyen visualizaciones, paneles y otras herramientas para ayudarlo a explorar los paneles antes de agregar sus propios datos. Para crear índices a partir de estos datos de ejemplo, necesita una política de acceso a los datos que otorgue permisos al conjunto de datos con el que desee trabajar. La siguiente política usa un comodín (`*`) para proporcionar permisos a los tres conjuntos de datos de ejemplo.

```
[
  {
    "Rules": [
      {
        "Resource": [
          "index/<collection-name>/opensearch_dashboards_sample_data_*"
        ],
        "Permission": [
          "aoss:CreateIndex",
          "aoss:DescribeIndex",
          "aoss:ReadDocument"
        ],
        "ResourceType": "index"
      }
    ],
    "Principal": [
      "arn:aws:iam::<account-id>:user/<user>"
    ]
  }
]
```

## Creación de políticas de acceso a los datos (consola)
<a name="serverless-data-access-console"></a>

Puede crear una política de acceso a los datos con el editor visual o en el formato JSON. A cualquier colección nueva que coincida con uno de los patrones definidos en la política se le asignarán los permisos correspondientes al crear la colección.

**Para crear una política de acceso a los datos sin servidor OpenSearch**

1. Abre la consola OpenSearch de Amazon Service en [https://console.aws.amazon.com/aos/casa](https://console.aws.amazon.com/aos/home ).

1. En el panel de navegación izquierdo, expanda **sin servidor** y, en **Seguridad**, elija **Políticas de acceso a datos**.

1. Seleccione **Crear política de acceso**.

1. Escriba un nombre y una descripción para la política.

1. Proporcione un nombre para la primera regla de la política. Por ejemplo, “Acceso a la colección de registros”.

1. Seleccione **Agregar entidades principales**, y luego uno o varios roles de IAM o [usuarios y grupos de SAML](serverless-saml.md) para proporcionarles acceso a los datos.
**nota**  
Para seleccionar las entidades principales desde los menús desplegables, debe tener los permisos `iam:ListUsers` y `iam:ListRoles` (para las entidades principales de IAM) y el permiso `aoss:ListSecurityConfigs` (para las identidades de SAML). 

1. Seleccione **Otorgar** y seleccione los permisos de alias, plantillas e índices que desea conceder a las entidades principales asociadas. Para obtener una lista completa de los permisos y el acceso que permiten, consulte [Operaciones y permisos de OpenSearch API compatibles](serverless-genref.md#serverless-operations).

1. (Opcional) Configure reglas adicionales para la política.

1. Seleccione **Crear**. Puede transcurrir alrededor de un minuto de retardo entre el momento en que se crea la política y el momento en el que se aplican los permisos. Si tarda más de 5 minutos, póngase en contacto con [Soporte](https://console.aws.amazon.com/support/home).

**importante**  
Si la política solo incluye permisos de índices (y no permisos de colecciones), es posible que siga apareciendo un mensaje sobre las colecciones coincidentes que indique lo siguiente: `Collection cannot be accessed yet. Configure data access policies so that users can access the data within this collection`. Puede omitir esta advertencia. Las entidades principales autorizadas pueden seguir realizando las operaciones relacionadas con índices que tengan asignadas en la colección.

## Creación de políticas de acceso a los datos (AWS CLI)
<a name="serverless-data-access-cli"></a>

Para crear una política de acceso a los datos mediante la API OpenSearch sin servidor, utilice el `CreateAccessPolicy` comando. El comando acepta políticas insertadas y archivos .json. Las políticas insertadas deben codificarse como una [cadena de escape de JSON](https://www.freeformatter.com/json-escape.html).

La siguiente solicitud crea una política de acceso a los datos:

```
aws opensearchserverless create-access-policy \
    --name marketing \
    --type data \
    --policy "[{\"Rules\":[{\"ResourceType\":\"collection\",\"Resource\":[\"collection/autopartsinventory\",\"collection/sales*\"],\"Permission\":[\"aoss:UpdateCollectionItems\"]},{\"ResourceType\":\"index\",\"Resource\":[\"index/autopartsinventory/*\",\"index/salesorders/orders*\"],\"Permission\":[\"aoss:ReadDocument\",\"aoss:DescribeIndex\"]}],\"Principal\":[\"arn:aws:iam::123456789012:user/Shaheen\"]}]"
```

Para proporcionar la política dentro de un archivo .json, utilice el formato `--policy file://my-policy.json`.

Los principales incluidos en la política ahora pueden usar [OpenSearch las operaciones a las](#serverless-data-supported-permissions) que se les concedió acceso.

## Visualización de políticas de acceso a los datos
<a name="serverless-data-access-list"></a>

Antes de crear una colección, puede que desee obtener una vista previa de las políticas de acceso a los datos existentes en la cuenta para ver cuáles tienen un patrón de recursos que coincide con el nombre de su colección. En la siguiente [ListAccessPolicies](https://docs.aws.amazon.com/opensearch-service/latest/ServerlessAPIReference/API_ListAccessPolicies.html)solicitud, se enumeran todas las políticas de acceso a los datos de tu cuenta:

```
aws opensearchserverless list-access-policies --type data
```

La solicitud devuelve información sobre todas las políticas de acceso a los datos configuradas. Para ver las reglas de patrón definidas en una política específica, busque la información de la política en el contenido del elemento `accessPolicySummaries` en la respuesta. Tenga en cuenta el `name` `type` final de esta política y utilice estas propiedades en una [GetAccessPolicy](https://docs.aws.amazon.com/opensearch-service/latest/ServerlessAPIReference/API_GetAccessPolicy.html)solicitud para recibir una respuesta con los siguientes detalles de la política: 

```
{
    "accessPolicyDetails": [
        {
            "type": "data",
            "name": "my-policy",
            "policyVersion": "MTY2NDA1NDE4MDg1OF8x",
            "description": "My policy",
            "policy": "[{\"Rules\":[{\"ResourceType\":\"collection\",\"Resource\":[\"collection/autopartsinventory\",\"collection/sales*\"],\"Permission\":[\"aoss:UpdateCollectionItems\"]},{\"ResourceType\":\"index\",\"Resource\":[\"index/autopartsinventory/*\",\"index/salesorders/orders*\"],\"Permission\":[\"aoss:ReadDocument\",\"aoss:DescribeIndex\"]}],\"Principal\":[\"arn:aws:iam::123456789012:user/Shaheen\"]}]",
            "createdDate": 1664054180858,
            "lastModifiedDate": 1664054180858
        }
    ]
}
```

Puede incluir filtros de recursos para limitar los resultados a políticas que contengan colecciones o índices específicos:

```
aws opensearchserverless list-access-policies --type data --resource "index/autopartsinventory/*"
```

Para ver los detalles de una política específica, utilice el [GetAccessPolicy](https://docs.aws.amazon.com/opensearch-service/latest/ServerlessAPIReference/API_GetAccessPolicy.html)comando.

## Actualización de las políticas de acceso a los datos
<a name="serverless-data-access-update"></a>

Al actualizar una política de acceso a los datos, todas las colecciones asociadas se ven afectadas. Para actualizar una política de acceso a datos en la consola OpenSearch sin servidor, elija **Control de acceso a datos**, seleccione la política que desee modificar y elija **Editar**. Realice los cambios y elija **Guardar**.

Para actualizar una política de acceso a datos mediante la API OpenSearch sin servidor, envía una `UpdateAccessPolicy` solicitud. Debe incluir una versión de la política, que puede recuperar mediante los comandos `ListAccessPolicies` or `GetAccessPolicy`. Incluir la versión más reciente de la política garantiza que no se anule inadvertidamente un cambio realizado por otra persona.

La siguiente [UpdateAccessPolicy](https://docs.aws.amazon.com/opensearch-service/latest/ServerlessAPIReference/API_UpdateAccessPolicy.html)solicitud actualiza una política de acceso a datos con un nuevo documento JSON de política:

```
aws opensearchserverless update-access-policy \
    --name sales-inventory \
    --type data \
    --policy-version MTY2NDA1NDE4MDg1OF8x \
    --policy file://my-new-policy.json
```

Pueden transcurrir unos minutos de retardo entre el momento en que se actualiza la política y el momento en que se aplican los nuevos permisos.

## Eliminación de políticas de acceso a los datos
<a name="serverless-data-access-delete"></a>

Al eliminar una política de acceso a los datos, todas las colecciones asociadas pierden el acceso definido en la política. Asegúrese de que sus usuarios de IAM y SAML tengan el acceso adecuado a la colección antes de eliminar una política. Para eliminar una política en la consola OpenSearch sin servidor, selecciónela y elija **Eliminar**.

También puede usar el [DeleteAccessPolicy](https://docs.aws.amazon.com/opensearch-service/latest/ServerlessAPIReference/API_DeleteAccessPolicy.html)comando:

```
aws opensearchserverless delete-access-policy --name my-policy --type data
```

## Acceso a los datos entre cuentas
<a name="serverless-data-access-cross"></a>

Si bien no puede crear una política de acceso a los datos con identidades o colecciones entre cuentas, sí puede configurar el acceso entre cuentas con la opción de asumir un rol. Por ejemplo, si la `account-a` es propietaria de una colección a la que la `account-b` necesita acceso, el usuario de la `account-b` puede asumir un rol en la `account-a`. El rol debe tener los permisos de IAM `aoss:APIAccessAll` y `aoss:DashboardsAccessAll` y estar incluido en la política de acceso a los datos de la `account-a`.