

# Administración de identidades y accesos en S3 Vectors
<a name="s3-vectors-access-management"></a>

La administración de accesos en S3 Vectors sigue las prácticas recomendadas de seguridad de AWS y proporciona varias capas de control para garantizar que solo los usuarios y las aplicaciones con autorización puedan acceder a los datos vectoriales. El servicio se integra con IAM y admite políticas basadas en la identidad y en los recursos, lo que le ofrece flexibilidad a la hora de estructurar y administrar los permisos en toda la organización.

## Autenticación y autorización de solicitudes
<a name="s3-vectors-authenticating-authorizing"></a>

S3 Vectors utiliza mecanismos de autenticación y autorización estándar de AWS para proteger el acceso a los buckets vectoriales y el contenido. Todas las solicitudes a S3 Vectors deben autenticarse mediante credenciales de AWS válidas, y el servicio evalúa los permisos a partir de la combinación de políticas basadas en la identidad, políticas basadas en recursos y cualquier política de control de servicio aplicable.

El proceso de autenticación comienza cuando un cliente realiza una solicitud a S3 Vectors mediante credenciales de AWS (claves de acceso, credenciales temporales de AWS STS o roles de IAM). El servicio valida estas credenciales y, a continuación, evalúa los permisos asociados a la identidad autenticada con respecto a la acción solicitada y al recurso de destino. Este proceso de evaluación tiene en cuenta varios tipos de políticas y aplica el principio del privilegio mínimo para determinar si se debe permitir o denegar la solicitud.

La autorización en S3 Vectors opera en varios niveles de detalle. Puede controlar el acceso en el bucket vectorial, en el índice vectorial individual o incluso en operaciones específicas dentro de un índice. Este modelo de permisos jerárquico le permite implementar esquemas de control de acceso sofisticados que se ajustan a la estructura de la organización y a los requisitos de gobernanza de datos.

## Tipos de recursos definidos para buckets vectoriales
<a name="s3-vectors-resource-types"></a>

S3 Vectors define tipos de recursos específicos a los que se puede hacer referencia en políticas de IAM y en políticas basadas en recursos. Conocer estos tipos de recursos es esencial para crear políticas de control de acceso eficaces que proporcionen el nivel adecuado de acceso a los usuarios y aplicaciones correctos.

En la siguiente tabla se describen los tipos de recursos disponibles en S3 Vectors.


**Tipos de recursos disponibles en S3 Vectors**  

| Tipo de recurso | Formato de ARN | Descripción | 
| --- | --- | --- | 
| VectorBucket | arn:aws:s3vectors:región:123456789012:bucket/nombre-de-bucket | Representa un bucket vectorial y se utiliza para operaciones de bucket, como crear, eliminar o configurar el bucket | 
| Index | arn:aws:s3vectors:región:123456789012:bucket/nombre-de-bucket/index/nombre-de-índice | Representa un índice vectorial en un bucket y se utiliza para operaciones específicas del índice, como consultar vectores o administrar el contenido del índice | 

## Acciones de política para buckets vectoriales
<a name="s3-vectors-policy-actions"></a>

S3 Vectors proporciona un conjunto completo de acciones de política que se corresponden con las diversas operaciones que puede realizar en buckets e índices vectoriales. Estas acciones están diseñadas para proporcionar un control detallado sobre quién puede realizar operaciones específicas, lo que le permite implementar el principio de privilegio mínimo de forma eficaz.

En la siguiente tabla se enumeran todas las acciones de política disponibles para los recursos de S3 Vectors.


**Acciones de política para recursos de S3 Vectors**  

| Tipo de recurso | Operaciones de la API | Acciones de políticas | Descripción de las acciones de política | Nivel de acceso | Claves de condición | 
| --- | --- | --- | --- | --- | --- | 
| Cuenta | [ListVectorBuckets](https://docs.aws.amazon.com/AmazonS3/latest/API/API_S3VectorBuckets_ListVectorBuckets.html) | s3vectors:ListVectorBuckets | Concede permiso para enumerar todos los buckets vectoriales de la cuenta y la región | Enumeración |  | 
| VectorBucket | [CreateVectorBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_S3VectorBuckets_CreateVectorBucket.html) | s3vectors:CreateVectorBucket | Concede permiso para crear un nuevo bucket vectorial con la configuración especificada | Escritura | s3vectors:sseType, s3vectors:kmsKeyArn | 
| VectorBucket | [GetVectorBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_S3VectorBuckets_GetVectorBucket.html) | s3vectors:GetVectorBucket | Concede permiso para recuperar los atributos y la configuración del bucket vectorial | Lectura |  | 
| VectorBucket | [DeleteVectorBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_S3VectorBuckets_DeleteVectorBucket.html) | s3vectors:DeleteVectorBucket | Concede permiso para eliminar un bucket vectorial vacío | Escritura |  | 
| VectorBucket | [ListIndexes](https://docs.aws.amazon.com/AmazonS3/latest/API/API_S3VectorBuckets_ListIndexes.html) | s3vectors:ListIndexes | Concede permiso para enumerar todos los índices de un bucket vectorial | Enumeración |  | 
| VectorBucket | [PutVectorBucketPolicy](https://docs.aws.amazon.com/AmazonS3/latest/API/API_S3VectorBuckets_PutVectorBucketPolicy.html) | s3vectors:PutVectorBucketPolicy | Concede permiso para aplicar o actualizar una política basada en recursos en un bucket vectorial | Administración de permisos |  | 
| VectorBucket | [GetVectorBucketPolicy](https://docs.aws.amazon.com/AmazonS3/latest/API/API_S3VectorBuckets_GetVectorBucketPolicy.html) | s3vectors:GetVectorBucketPolicy | Concede permiso para recuperar la política basada en recursos asociada a un bucket vectorial | Lectura |  | 
| VectorBucket | [DeleteVectorBucketPolicy](https://docs.aws.amazon.com/AmazonS3/latest/API/API_S3VectorBuckets_DeleteVectorBucketPolicy.html) | s3vectors:DeleteVectorBucketPolicy | Concede permiso para eliminar la política basada en recursos de un bucket vectorial | Administración de permisos |  | 
| Index | [CreateIndex](https://docs.aws.amazon.com/AmazonS3/latest/API/API_S3VectorBuckets_CreateIndex.html) | s3vectors:CreateIndex | Concede permiso para crear un nuevo índice vectorial con las dimensiones y la configuración de metadatos especificadas | Escritura |  | 
| Index | [GetIndex](https://docs.aws.amazon.com/AmazonS3/latest/API/API_S3VectorBuckets_GetIndex.html) | s3vectors:GetIndex | Concede permiso para recuperar los atributos y la configuración del índice vectorial | Lectura |  | 
| Index | [DeleteIndex](https://docs.aws.amazon.com/AmazonS3/latest/API/API_S3VectorBuckets_DeleteIndex.html) | s3vectors:DeleteIndex | Concede permiso para eliminar un índice vectorial y todo el contenido | Escritura |  | 
| Index | [QueryVectors](https://docs.aws.amazon.com/AmazonS3/latest/API/API_S3VectorBuckets_QueryVectors.html) | (Obligatorio) s3vectors:QueryVectors | Concede permiso para realizar consultas de similitud en vectores de un índice.  **Solo con `s3vectors:QueryVectors`**, puede recuperar claves de vectores de los vecinos más cercanos aproximados y las distancias calculadas desde el vector de consulta. Este permiso solo es suficiente cuando no se establece ningún filtro de metadatos y no se solicitan metadatos (al mantener el parámetro `returnMetadata` establecido en false o sin especificar). | Lectura |  | 
|  |  | (Condicionalmente obligatorio): s3vectors:GetVectors | Obligatorio si establece filtros de metadatos, establezca `returnMetadata` en true en la solicitud.  **Con `s3vectors:QueryVectors` y `s3vectors:GetVectors`**, puede filtrar los resultados mediante criterios de metadatos y recuperar claves vectoriales junto con los datos, metadatos y distancias calculadas asociados desde el vector de consulta. | Lectura |  | 
| Index | [PutVectors](https://docs.aws.amazon.com/AmazonS3/latest/API/API_S3VectorBuckets_PutVectors.html) | s3vectors:PutVectors | Concede permiso para agregar o actualizar vectores en un índice. | Escritura |  | 
| Index | [GetVectors](https://docs.aws.amazon.com/AmazonS3/latest/API/API_S3VectorBuckets_GetVectors.html) | s3vectors:GetVectors | Concede permiso para recuperar vectores específicos y los metadatos por clave vectorial. | Lectura |  | 
| Index | [ListVectors](https://docs.aws.amazon.com/AmazonS3/latest/API/API_S3VectorBuckets_ListVectors.html) | (Obligatorio) s3vectors:ListVectors | Concede permiso para enumerar claves vectoriales en un índice.  **Solo con `s3vectors:ListVectors`**, puede enumerar claves vectoriales cuando los parámetros `returnData` y `returnMetadata` son false o no se especifican. | Lectura |  | 
|  |  | (Condicionalmente obligatorio): s3vectors:GetVectors | Obligatorio si establece el parámetro `returnData` o `returnMetadata` en true en la solicitud.  **Con `s3vectors:ListVectors` y `s3vectors:GetVectors`**, puede recuperar claves vectoriales junto con los datos y metadatos asociados si establece `returnData` y `returnMetadata` en true. | Lectura |  | 
| Index | [DeleteVectors](https://docs.aws.amazon.com/AmazonS3/latest/API/API_S3VectorBuckets_DeleteVectors.html) | s3vectors:DeleteVectors | Concede permiso para eliminar vectores específicos de un índice. | Escritura |  | 

Estas acciones se pueden combinar de varias formas para crear políticas que coincidan con los requisitos de acceso específicos. Por ejemplo, puede crear una política de solo lectura que incluya las acciones `s3vectors:GetVectorBucket`, `s3vectors:ListIndexes`, `s3vectors:QueryVectors` y `s3vectors:GetVectors`, o una política que incluya permisos de consulta y recuperación de vectores, pero excluya acciones administrativas como la creación o la eliminación de índices.

## Claves de condición para buckets vectoriales
<a name="s3-vectors-condition-keys"></a>


**Claves de condición para buckets vectoriales**  

|  | Claves de condición | Descripción | Tipo | 
| --- | --- | --- | --- | 
| 1 | s3vectors:sseType | Filtra el acceso por tipo de cifrado del servidor. Valores válidos: AES256 \$1 aws:kms | Cadena | 
| 2 | s3vectors:kmsKeyArn | Filtra el acceso por el ARN de clave de AWS AWS KMS utilizada para cifrar un bucket vectorial | ARN | 

# Ejemplos de políticas basadas en identidad de S3 Vectors
<a name="s3-vectors-iam-policies"></a>

Las políticas basadas en identidad de IAM son documentos JSON que usted asocia a usuarios, grupos o roles de IAM para definir las acciones que pueden realizar en los recursos de S3 Vectors. Estas políticas se evalúan en el contexto de la identidad que realiza la solicitud y proporcionan una forma centralizada de administrar los permisos en todo el entorno de AWS. Las políticas basadas en identidad proporcionan un registro de auditoría claro sobre qué permisos tiene cada usuario y se pueden modificar fácilmente a medida que evolucionan los requisitos de acceso.

Al diseñar políticas basadas en la identidad para S3 Vectors, tenga en cuenta los diferentes tipos de usuarios y aplicaciones que interactuarán con los datos vectoriales. Entre los patrones más comunes se incluyen los científicos de datos que necesitan consultar vectores, los ingenieros de datos que necesitan cargar y administrar datos vectoriales, los administradores que necesitan un control total sobre la configuración de los buckets y las aplicaciones que necesitan acceso específico de lectura o escritura a índices vectoriales concretos.

## Ejemplos de políticas
<a name="s3-vectors-iam-policies-examples"></a>

### Política de acceso administrativo
<a name="s3-vectors-iam-policies-admin"></a>

Esta política proporciona acceso administrativo completo a los recursos de S3 Vectors, adecuado para administradores de plataformas o equipos de DevOps:

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowAdministrativeAccess",
            "Effect": "Allow",
            "Action": [
                "s3vectors:CreateVectorBucket",
                "s3vectors:PutVectorBucketPolicy",
                "s3vectors:DeleteVectorBucket",
                "s3vectors:DeleteVectorBucketPolicy",
                "s3vectors:GetVectorBucket",
                "s3vectors:GetVectorBucketPolicy",
                "s3vectors:ListVectorBuckets",
                "s3vectors:CreateIndex",
                "s3vectors:DeleteIndex",
                "s3vectors:GetIndex",
                "s3vectors:ListIndexes",
                "s3vectors:DeleteVectors",
                "s3vectors:GetVectors",
                "s3vectors:ListVectors",
                "s3vectors:PutVectors",
                "s3vectors:QueryVectors"
            ],
            "Resource": "*"
        }
    ]
}
```

### Política de acceso específica para cada aplicación
<a name="s3-vectors-iam-policies-app"></a>

Esta política se ha diseñado para aplicaciones que necesitan realizar operaciones específicas en índices vectoriales designados:

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowApplicationVectorAccess",
            "Effect": "Allow",
            "Action": [
                "s3vectors:QueryVectors",
                "s3vectors:GetVectors",
                "s3vectors:PutVectors",
                "s3vectors:ListVectors"
            ],
            "Resource": [
                "arn:aws:s3vectors:aws-region:123456789012:bucket/amzn-s3-demo-vector-bucket/index/product-recommendations",
                "arn:aws:s3vectors:aws-region:123456789012:bucket/amzn-s3-demo-vector-bucket/index/content-similarity"
            ]
        },
        {
            "Sid": "AllowGetIndex",
            "Effect": "Allow",
            "Action": "s3vectors:GetIndex",
            "Resource": "arn:aws:s3vectors:aws-region:123456789012:bucket/amzn-s3-demo-vector-bucket/index/*"
        },
        {
            "Sid": "AllowIndexInspection",
            "Effect": "Allow",
            "Action": "s3vectors:ListIndexes",
            "Resource": "arn:aws:s3vectors:aws-region:123456789012:bucket/amzn-s3-demo-vector-bucket"
        }  
    ]
}
```

# Ejemplos de políticas basadas en recursos de S3 Vectors
<a name="s3-vectors-resource-based-policies"></a>

Las políticas basadas en recursos se asocian a un recurso. Puede crear políticas basadas en recursos para buckets vectoriales. Las políticas basadas en recursos para S3 Vectors utilizan el formato de política de AWS estándar en JSON que se asocia directamente a los buckets vectoriales para controlar el acceso al bucket y al contenido. 

A diferencia de las políticas basadas en identidad que se asocian a usuarios, grupos o roles, las políticas basadas en recursos se asocian al propio recurso (el bucket vectorial) y pueden conceder permisos a entidades principales de otras cuentas de AWS. Esto las convierte en ideales para situaciones en las que es necesario compartir datos vectoriales fuera de los límites de la organización o implementar controles de acceso precisos basados en el recurso específico al que se accede.

Las políticas basadas en recursos se evalúan en combinación con políticas basadas en identidad y los permisos efectivos vienen determinados por la unión de todas las políticas aplicables. Esto significa que una entidad principal necesita permiso tanto de la política basada en identidades (asociada al usuario o al rol) como de la política basada en recursos (asociada al bucket) para realizar una acción, a menos que la política basada en recursos conceda explícitamente el permiso.

## Ejemplo 1: política de acceso entre cuentas
<a name="s3-vectors-resource-based-policies-example1"></a>

Esta política demuestra cómo conceder permisos específicos a usuarios de diferentes cuentas de AWS:

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CrossAccountBucketAccess",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam:123456789012:role/Admin"
            },
            "Action": [
                "s3vectors:CreateIndex",
                "s3vectors:ListIndexes",
                "s3vectors:QueryVectors",
                "s3vectors:PutVectors",
                "s3vectors:DeleteIndex"
            ],
            "Resource": [
                "arn:aws:s3vectors:aws-region:111122223333:bucket/amzn-s3-demo-vector-bucket/*",
                "arn:aws:s3vectors:aws-region:111122223333:bucket/amzn-s3-demo-vector-bucket"
            ]
        }
    ]
}
```

## Ejemplo 2: denegación de acciones de índice vectorial
<a name="s3-vectors-resource-based-policies-example2"></a>

Esta política demuestra cómo denegar acciones específicas de índice vectorial a un rol de IAM:

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "DenyIndexLevelActions",
            "Effect": "Deny",
            "Principal": {
                "AWS": "arn:aws:iam:123456789012:role/External-Role-Name"
            },
            "Action": [
                "s3vectors:QueryVectors",
                "s3vectors:PutVectors",
                "s3vectors:DeleteIndex",
                "s3vectors:GetVectors",
                "s3vectors:GetIndex",
                "s3vectors:DeleteVectors",
                "s3vectors:CreateIndex",
                "s3vectors:ListVectors"
            ],
            "Resource": "arn:aws:s3vectors:aws-region:111122223333:bucket/amzn-s3-demo-vector-bucket/*"
        }
    ]
}
```

## Ejemplo 3: denegación de las operaciones de modificación tanto de índice vectorial como de bucket
<a name="s3-vectors-resource-based-policies-example3"></a>

Esta política demuestra cómo denegar solicitudes de modificación para acciones de índice vectorial y de bucket mediante la especificación de varios recursos:

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "DenyModificationActionsAtBucketandIndexLevels",
            "Effect": "Deny",
            "Principal": {
                "AWS": "arn:aws:iam:123456789012:role/External-Role-Name"
            },
            "Action": [
                "s3vectors:CreateVectorBucket",
                "s3vectors:DeleteVectorBucket",
                "s3vectors:PutVectorBucketPolicy",
                "s3vectors:DeleteVectorBucketPolicy",                
                "s3vectors:CreateIndex",
                "s3vectors:DeleteIndex",
                "s3vectors:PutVectors",
                "s3vectors:DeleteVectors"
            ],
            "Resource": [
                "arn:aws:s3vectors:aws-region:111122223333:bucket/amzn-s3-demo-vector-bucket/*",
                "arn:aws:s3vectors:aws-region:111122223333:bucket/amzn-s3-demo-vector-bucket"
            ]
        }
    ]
}
```