

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.

# Seguridad en Amazon VPC Lattice
<a name="security"></a>

La seguridad en la nube AWS es la máxima prioridad. Como AWS cliente, usted se beneficia de los centros de datos y las arquitecturas de red diseñados para cumplir con los requisitos de las organizaciones más sensibles a la seguridad.

Eres responsable de mantener el control sobre el contenido alojado en esta infraestructura. El [modelo de responsabilidad compartida](https://aws.amazon.com/compliance/shared-responsibility-model/) la describe como seguridad *de* la nube y seguridad *en* la nube:
+ **Seguridad de la nube**: AWS es responsable de proteger la infraestructura que ejecuta los AWS servicios en la. Nube de AWS AWS también le proporciona servicios que puede utilizar de forma segura. Los auditores externos prueban y verifican periódicamente la eficacia de nuestra seguridad como parte de los [AWS programas](https://aws.amazon.com/compliance/programs/) de de . Para obtener más información sobre los programas de conformidad que se aplican a Amazon VPC Lattice, consulte [AWS Servicios dentro del alcance por programa de conformidad AWS Servicios dentro del alcance por programa](https://aws.amazon.com/compliance/services-in-scope/) .
+ **Seguridad en la nube**: usted es responsable de mantener el control sobre el contenido alojado en esta infraestructura. También es responsable de otros factores, incluida la confidencialidad de los datos, los requisitos de la empresa y la legislación y la normativa aplicables. 

Esta documentación le ayuda a comprender cómo aplicar el modelo de responsabilidad compartida cuando se utiliza VPC Lattice. En los siguientes temas, se le mostrará cómo configurar VPC Lattice para satisfacer sus objetivos de seguridad y conformidad. También aprenderá a utilizar otros AWS servicios que le ayudan a supervisar y proteger su servicio VPC Lattice, las redes de servicios y las configuraciones de recursos.

**Topics**
+ [Gestione el acceso a los servicios de VPC Lattice](access-management-overview.md)
+ [Protección de datos en Amazon VPC Lattice](data-protection.md)
+ [Administración de identidades y accesos para Amazon VPC Lattice](security-iam.md)
+ [Validación de la conformidad para Amazon VPC Lattice](compliance-validation.md)
+ [Acceda a Amazon VPC Lattice mediante puntos de enlace de interfaz ()AWS PrivateLink](vpc-interface-endpoints.md)
+ [Resiliencia de Amazon VPC Lattice](disaster-recovery-resiliency.md)
+ [Seguridad de infraestructura en Amazon VPC Lattice](infrastructure-security.md)

# Gestione el acceso a los servicios de VPC Lattice
<a name="access-management-overview"></a>

VPC Lattice es seguro de forma predeterminada porque debe ser explícito en cuanto a los servicios y configuraciones de recursos a los que se debe proporcionar acceso y con cuáles. VPCs Puede acceder a los servicios a través de una asociación de VPC o un punto final de VPC de tipo red de servicio. En escenarios con varias cuentas, puede utilizarlos [AWS Resource Access Manager](sharing.md)para compartir servicios, configuraciones de recursos y redes de servicios entre cuentas.

 VPC Lattice proporciona un marco que le permite implementar una estrategia defense-in-depth en varias capas de la red.
+ **Primera capa**: asociación del servicio, el recurso, la VPC y el punto final de la VPC con una red de servicio. Una VPC se puede conectar a una red de servicio mediante una asociación o mediante un punto final de VPC. Si una VPC no está conectada a una red de servicio, los clientes de la VPC no pueden acceder a las configuraciones de servicios y recursos asociadas a la red de servicios.
+ **Segundo nivel:** protecciones de seguridad opcionales a nivel de red para la red de servicio, como los grupos de seguridad y la red. ACLs Al usarlos, puede permitir el acceso a grupos específicos de clientes en una VPC en lugar de a todos los clientes de la VPC.
+ **Tercera capa**: política de autenticación opcional de VPC Lattice. Puede aplicar una política de autenticación a redes de servicio y a servicios individuales. ry streamPor lo general, el administrador de la red o de la nube es quien gestiona la política de autenticación de la red de servicio e implementa una autorización básica. Por ejemplo, al permitir solo solicitudes autenticadas de una organización específica en AWS Organizations. En el caso de una política de autenticación a nivel de servicio, normalmente el propietario del servicio establece controles exhaustivos, que pueden ser más restrictivos que la autorización básica que se aplica a nivel de la red de servicio.
**nota**  
La política de autenticación de la red de servicios no se aplica a las configuraciones de recursos de la red de servicios.

**Métodos de control de acceso**
+ [Políticas de autenticación](auth-policies.md)
+ [Grupos de seguridad](security-groups.md)
+ [Red ACLs](network-acls.md)

# Controle el acceso a los servicios de VPC Lattice mediante políticas de autenticación
<a name="auth-policies"></a>

Las políticas de autenticación de VPC Lattice son documentos de políticas de IAM que se adjuntan a las redes de servicios o servicios para controlar si una entidad principal específica tiene acceso a un grupo de servicios o a un servicio específico. Puede adjuntar una política de autenticación a cada red de servicio o servicio cuyo acceso quiera controlar.

**nota**  
La política de autenticación de la red de servicios no se aplica a las configuraciones de recursos de la red de servicios.

Las políticas de autenticación difieren de las políticas basadas en entidades de IAM. Las políticas basadas en identidad de IAM se asocian a usuarios, grupos o roles de IAM y definen qué acciones pueden realizar esas identidades y en qué recursos. Las políticas de autenticación están asociadas a los servicios y a las redes de servicios. Para que la autorización funcione, tanto las políticas de autenticación como las políticas basadas en identidades deben incluir instrucciones de autorización explícitas. Para obtener más información, consulte [Cómo funciona la autorización](#auth-policies-evaluation-logic).

Puede usar la consola AWS CLI y para ver, agregar, actualizar o eliminar las políticas de autenticación en los servicios y las redes de servicios. Cuando agregas, actualizas o eliminas una política de autenticación, es posible que tarde unos minutos en estar lista. Cuando utilices AWS CLI, asegúrate de que te encuentras en la región correcta. Puede cambiar la región predeterminada de su perfil o utilizar el `--region` parámetro con el comando.

**Topics**
+ [Elementos comunes de una política de autenticación](#auth-policies-common-elements)
+ [Formato de recurso para políticas de autenticación](#auth-policies-resource-format)
+ [Claves de condición que se pueden utilizar en políticas de autenticación](#auth-policies-condition-keys)
+ [Etiquetas de recursos](#resource-tags)
+ [Etiquetas principales](#principal-tags)
+ [Entidades principales anónimas (no autenticadas)](#anonymous-unauthenticated-principals)
+ [Ejemplo de políticas de autenticación](#example-auth-policies)
+ [Cómo funciona la autorización](#auth-policies-evaluation-logic)

Para empezar a utilizar las políticas de autenticación, siga el procedimiento para crear una política de autenticación que se aplique a una red de servicios. Para obtener permisos más restrictivos que no quieran que se apliquen a otros servicios, puede optar por establecer políticas de autenticación en servicios individuales.

## Administración del acceso a una red de servicios con políticas de autenticación
<a name="manage-access-to-service-networks"></a>

Las siguientes AWS CLI tareas muestran cómo administrar el acceso a una red de servicios mediante políticas de autenticación. Para obtener instrucciones sobre cómo utilizar la consola, consulte [Redes de servicios en VPC Lattice](service-networks.md).

**Topics**
+ [Cómo agregar una política de autenticación a una red de servicios](#add-service-network-auth-policy)
+ [Cambio del tipo de autenticación de una red de servicios](#change-service-network-auth-type)
+ [Eliminación de una política de autenticación de una red de servicios](#remove-service-network-auth-policy)

### Cómo agregar una política de autenticación a una red de servicios
<a name="add-service-network-auth-policy"></a>

Siga los pasos de esta sección para utilizarlos AWS CLI para:
+ Habilite el control de acceso de una red de servicios mediante IAM.
+ Agregue una política de autenticación a la red de servicios. Si no agrega una política de autenticación, todo el tráfico recibirá un error de acceso denegado.

**Para habilitar el control de acceso y agregar una política de autenticación a una nueva red de servicios**

1. Para habilitar el control de acceso de una red de servicios para que pueda usar una política de autenticación, utilice el comando **create-service-network** con la opción `--auth-type` y un valor de `AWS_IAM`.

   ```
   aws vpc-lattice create-service-network --name Name --auth-type AWS_IAM [--tags TagSpecification]
   ```

   Si se ejecuta correctamente, el comando devolverá información similar a la siguiente.

   ```
   {
      "arn": "arn",
      "authType": "AWS_IAM",
      "id": "sn-0123456789abcdef0",
      "name": "Name"
   }
   ```

1. Use el comando **put-auth-policy** y especifique el ID de la red de servicios a la que desea agregar la política de autenticación y la política de autenticación que desea agregar.

   Por ejemplo, utilice el siguiente comando para crear una política de autenticación para la red de servicios con el ID *`sn-0123456789abcdef0`*.

   ```
   aws vpc-lattice put-auth-policy --resource-identifier sn-0123456789abcdef0 --policy file://policy.json
   ```

   Use JSON para crear una definición de política. Para obtener más información, consulte [Elementos comunes de una política de autenticación](#auth-policies-common-elements).

   Si se ejecuta correctamente, el comando devolverá información similar a la siguiente.

   ```
   {
      "policy": "policy",
      "state": "Active"
   }
   ```

**Cómo habilitar el control de acceso y añadir una política de autenticación a una red de servicios existente**

1. Para habilitar el control de acceso de una red de servicios para que pueda usar una política de autenticación, utilice el comando **update-service-network** con la opción `--auth-type` y un valor de `AWS_IAM`.

   ```
   aws vpc-lattice update-service-network --service-network-identifier sn-0123456789abcdef0 --auth-type AWS_IAM
   ```

   Si se ejecuta correctamente, el comando devolverá información similar a la siguiente.

   ```
   {
      "arn": "arn",
      "authType": "AWS_IAM",
      "id": "sn-0123456789abcdef0",
      "name": "Name"
   }
   ```

1. Use el comando **put-auth-policy** y especifique el ID de la red de servicios a la que desea agregar la política de autenticación y la política de autenticación que desea agregar. 

   ```
   aws vpc-lattice put-auth-policy --resource-identifier sn-0123456789abcdef0 --policy file://policy.json
   ```

   Use JSON para crear una definición de política. Para obtener más información, consulte [Elementos comunes de una política de autenticación](#auth-policies-common-elements).

   Si se ejecuta correctamente, el comando devolverá información similar a la siguiente.

   ```
   {
      "policy": "policy",
      "state": "Active"
   }
   ```

### Cambio del tipo de autenticación de una red de servicios
<a name="change-service-network-auth-type"></a>

**Cómo deshabilitar la política de autenticación de una red de servicios**  
Utilice el comando **update-service-network** con la opción `--auth-type` y un valor de `NONE`.

```
aws vpc-lattice update-service-network --service-network-identifier sn-0123456789abcdef0 --auth-type NONE
```

Si necesita volver a habilitar la política de autenticación más adelante, ejecute este comando con el `AWS_IAM` especificado para la opción `--auth-type`.

### Eliminación de una política de autenticación de una red de servicios
<a name="remove-service-network-auth-policy"></a>

**Cómo eliminar una política de autenticación de una red de servicios**  
Utilice el comando **delete-auth-policy**.

```
aws vpc-lattice delete-auth-policy --resource-identifier sn-0123456789abcdef0
```

La solicitud falla si elimina una política de autenticación antes de cambiar el tipo de autenticación de una red de servicios a `NONE`.

## Administración del acceso a un servicio con políticas de autenticación
<a name="manage-access-to-services"></a>

Las siguientes AWS CLI tareas muestran cómo administrar el acceso a un servicio mediante políticas de autenticación. Para obtener instrucciones sobre cómo utilizar la consola, consulte [Servicios en VPC Lattice](services.md). 

**Topics**
+ [Adición de una política de autenticación a un servicio](#add-service-auth-policy)
+ [Cambio de un tipo de autenticación de servicio](#change-service-auth-type)
+ [Eliminación de una política de autenticación de un servicio](#remove-service-auth-policy)

### Adición de una política de autenticación a un servicio
<a name="add-service-auth-policy"></a>

Siga estos pasos para utilizarlos AWS CLI para:
+ Habilite el control de acceso de un servicio mediante IAM.
+ Agregue una política de autenticación al servicio. Si no agrega una política de autenticación, todo el tráfico recibirá un error de acceso denegado.

**Cómo habilitar el control de acceso y agregar una política de autenticación a un nuevo servicio**

1. Para habilitar el control de acceso de un servicio para que pueda usar una política de autenticación, utilice el comando **create-service** con la opción `--auth-type` y un valor de `AWS_IAM`.

   ```
   aws vpc-lattice create-service --name Name --auth-type AWS_IAM [--tags TagSpecification]
   ```

   Si se ejecuta correctamente, el comando devolverá información similar a la siguiente.

   ```
   {
      "arn": "arn",
      "authType": "AWS_IAM",
      "dnsEntry": { 
         ...
      },
      "id": "svc-0123456789abcdef0",
      "name": "Name",
      "status": "CREATE_IN_PROGRESS"
   }
   ```

1. Use el comando **put-auth-policy** y especifique el ID del servicio al que desea agregar la política de autenticación y la política de autenticación que desea agregar.

   Por ejemplo, usa el siguiente comando para crear una política de autenticación para el servicio con el ID*svc-0123456789abcdef0*.

   ```
   aws vpc-lattice put-auth-policy --resource-identifier svc-0123456789abcdef0 --policy file://policy.json
   ```

   Use JSON para crear una definición de política. Para obtener más información, consulte [Elementos comunes de una política de autenticación](#auth-policies-common-elements).

   Si se ejecuta correctamente, el comando devolverá información similar a la siguiente.

   ```
   {
      "policy": "policy",
      "state": "Active"
   }
   ```

**Cómo habilitar el control de acceso y añadir una política de autenticación a un servicio existente**

1. Para habilitar el control de acceso de un servicio para que pueda usar una política de autenticación, utilice el comando **update-service** con la opción `--auth-type` y un valor de `AWS_IAM`.

   ```
   aws vpc-lattice update-service --service-identifier svc-0123456789abcdef0 --auth-type AWS_IAM
   ```

   Si se ejecuta correctamente, el comando devolverá información similar a la siguiente.

   ```
   {
      "arn": "arn",
      "authType": "AWS_IAM",
      "id": "svc-0123456789abcdef0",
      "name": "Name"
   }
   ```

1. Use el comando **put-auth-policy** y especifique el ID del servicio al que desea agregar la política de autenticación y la política de autenticación que desea agregar.

   ```
   aws vpc-lattice put-auth-policy --resource-identifier svc-0123456789abcdef0 --policy file://policy.json
   ```

   Use JSON para crear una definición de política. Para obtener más información, consulte [Elementos comunes de una política de autenticación](#auth-policies-common-elements).

   Si se ejecuta correctamente, el comando devolverá información similar a la siguiente.

   ```
   {
      "policy": "policy",
      "state": "Active"
   }
   ```

### Cambio de un tipo de autenticación de servicio
<a name="change-service-auth-type"></a>

**Cómo deshabilitar la política de autenticación de un servicio**  
Utilice el comando **update-service** con la opción `--auth-type` y un valor de `NONE`.

```
aws vpc-lattice update-service --service-identifier svc-0123456789abcdef0 --auth-type NONE
```

Si necesita volver a habilitar la política de autenticación más adelante, ejecute este comando con el `AWS_IAM` especificado para la opción `--auth-type`.

### Eliminación de una política de autenticación de un servicio
<a name="remove-service-auth-policy"></a>

**Cómo eliminar una política de autenticación de un servicio**  
Utilice el comando **delete-auth-policy**.

```
aws vpc-lattice delete-auth-policy --resource-identifier svc-0123456789abcdef0
```

La solicitud falla si elimina una política de autenticación antes de cambiar el tipo de autenticación del servicio a `NONE`.

Si habilita políticas de autenticación que requieren solicitudes autenticadas para un servicio, todas las solicitudes para ese servicio deben contener una firma de solicitud válida que se calcule con Signature Version 4 (SigV4). Para obtener más información, consulte [SIGv4 solicitudes autenticadas para Amazon VPC Lattice](sigv4-authenticated-requests.md).

## Elementos comunes de una política de autenticación
<a name="auth-policies-common-elements"></a>

Las políticas de autenticación de VPC Lattice se especifican utilizando la misma sintaxis que para las políticas de IAM. Para obtener más información, consulte [Políticas basadas en identidad y políticas basadas en recursos](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_identity-vs-resource.html) en la *Guía del usuario de IAM*.

Una política de autenticación contiene los siguientes elementos:
+ **Entidad principal**: la persona o la aplicación con permiso de acceso a las acciones y los recursos en la instrucción. En una política de autenticación, la entidad principal es la entidad de IAM que recibe este permiso. La entidad principal se autentica como entidad de IAM para realizar solicitudes a un recurso o grupo de recursos específico, como en el caso de los servicios de una red de servicios. 

  Debe especificar una entidad principal en una política basada en recursos. Los principales pueden incluir cuentas, usuarios, roles, usuarios federados o servicios. AWS Para obtener más información, consulte [Elementos de la política de JSON de AWS : entidad principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html) en la *Guía del usuario de IAM*.
+ **Efecto**: el efecto cuando la entidad principal específica solicita la acción específica. Puede ser `Allow` o `Deny`. De forma predeterminada, cuando se habilita el control de acceso de un servicio o una red de servicios mediante IAM, las entidades principales no tienen permisos para realizar solicitudes al servicio o a la red de servicios.
+ **Acciones**: la acción específica de la API para la que se concede o deniega el permiso. VPC Lattice admite acciones que usan el prefijo. `vpc-lattice-svcs` *Para obtener más información, consulte [las acciones definidas por Amazon VPC Lattice Services en la Referencia de autorización de servicios](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonvpclatticeservices.html#amazonvpclatticeservices-actions-as-permissions).*
+ **Recursos**: los servicios que se ven afectados por la acción. 
+ **Condición**: las condiciones son opcionales. Puede utilizarlas para controlar cuándo entra en vigor su política. Para obtener más información, consulte [Claves de condición de los servicios de Amazon VPC Lattice](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonvpclatticeservices.html#amazonvpclatticeservices-policy-keys) en la *Referencia de autorización de servicios*.

Al crear y administrar las políticas de autenticación, es posible que quiera usar el [generador de políticas de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-generator).

**Requisito**  
La política de JSON no debe contener líneas nuevas o líneas en blanco.

## Formato de recurso para políticas de autenticación
<a name="auth-policies-resource-format"></a>

Puede restringir el acceso a recursos específicos al crear una política de autenticación que utilice un esquema coincidente con un patrón `<serviceARN>/<path>` y codificar el elemento `Resource`, como se muestra en los siguientes ejemplos. 


| Protocolo | Ejemplos | 
| --- | --- | 
| HTTP |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/vpc-lattice/latest/ug/auth-policies.html)  | 
| gRPC |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/vpc-lattice/latest/ug/auth-policies.html)  | 

Utilice el siguiente formato de nombre de recurso de Amazon (ARN) para `<serviceARN>`:

```
arn:aws:vpc-lattice:region:account-id:service/service-id
```

Por ejemplo:

```
"Resource": "arn:aws:vpc-lattice:us-west-2:123456789012:service/svc-0123456789abcdef0"
```

## Claves de condición que se pueden utilizar en políticas de autenticación
<a name="auth-policies-condition-keys"></a>

El acceso puede controlarse aún más mediante las claves de condición en el elemento **Condición** de las políticas de autenticación. Estas claves de condición están presentes para su evaluación en función del protocolo y de si la solicitud está firmada con [Signature Version 4 (SigV4)](sigv4-authenticated-requests.md) o es anónima. Las claves de condición distinguen entre mayúsculas y minúsculas.

AWS proporciona claves de condición globales que puede usar para controlar el acceso, como `aws:PrincipalOrgID` y`aws:SourceIp`. Para ver una lista de las claves de condición AWS globales, consulte las claves de [contexto de condición AWS globales](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) en la *Guía del usuario de IAM*.

En la siguiente tabla se enumeran las claves de condición de VPC Lattice. Para obtener más información, consulte [Claves de condición de los servicios de Amazon VPC Lattice](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonvpclatticeservices.html#amazonvpclatticeservices-policy-keys) en la *Referencia de autorización de servicios*.


| Claves de condición | Description (Descripción) | Ejemplo | Disponibilidad para usuarios anónimos (no autenticados) | Disponibilidad para gRPC | 
| --- | --- | --- | --- | --- | 
| vpc-lattice-svcs:Port | Filtra el acceso por el puerto de servicio al que se realiza la solicitud | 80 | Sí | Sí | 
| vpc-lattice-svcs:RequestMethod | Filtra el acceso por el método de la solicitud | GET | Sí | PUBLICAR siempre | 
| vpc-lattice-svcs:RequestPath | Filtra el acceso por la parte de la ruta de la URL de la solicitud. | /path | Sí | Sí | 
| vpc-lattice-svcs:RequestHeader/header-name: value | Filtra el acceso por un par de nombre-valor de encabezado en los encabezados de la solicitud | content-type: application/json | Sí | Sí | 
| vpc-lattice-svcs:RequestQueryString/key-name: value | Filtra el acceso por los pares de clave-valor de la cadena de consulta en la URL de la solicitud | quux: [corge, grault] | Sí | No | 
| vpc-lattice-svcs:ServiceNetworkArn | Filtra el acceso por el ARN de la red de servicios del servicio que recibe la solicitud | arn:aws:vpc-lattice:us-west-2:123456789012:servicenetwork/sn-0123456789abcdef0 | Sí | Sí | 
| vpc-lattice-svcs:ServiceArn | Filtra el acceso por el ARN del servicio que recibe la solicitud | arn:aws:vpc-lattice:us-west-2:123456789012:service/svc-0123456789abcdef0 | Sí | Sí | 
| vpc-lattice-svcs:SourceVpc | Filtra el acceso por la VPC desde la que se realiza la solicitud | vpc-1a2b3c4d | Sí | Sí | 
| vpc-lattice-svcs:SourceVpcOwnerAccount | Filtra el acceso por la cuenta propietaria de la VPC desde la que se realiza la solicitud | 123456789012 | Sí | Sí | 

## Etiquetas de recursos
<a name="resource-tags"></a>

Una *etiqueta* es una etiqueta de metadatos que se asigna o que se AWS asigna a un recurso. AWS Cada etiqueta de tiene dos partes:
+ Una *clave de etiqueta* (por ejemplo, `CostCenter`, `Environment` o `Project`). Las claves de etiqueta distinguen entre mayúsculas y minúsculas.
+ Un campo opcional denominado *valor de etiqueta* (por ejemplo, `111122223333` o `Production`). Omitir el valor de etiqueta es lo mismo que usar una cadena vacía. Al igual que las claves y los valores de etiqueta distinguen entre mayúsculas y minúsculas.

Para obtener más información sobre el etiquetado, consulte [Controlar el acceso a AWS los recursos mediante](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html) etiquetas

Puede usar etiquetas en sus políticas de autenticación mediante la clave contextual de condición `aws:ResourceTag/key` AWS global.

El siguiente ejemplo de política otorga acceso a los servicios con la etiqueta`Environment=Gamma`. Esta política le permite hacer referencia a servicios sin codificar de forma rígida el servicio ARNs o. IDs

```
{
  "Version": "2012-10-17", 		 	 	 		 	 	 
  "Statement": [
    {
      "Sid": "AllowGammaAccess",
      "Effect": "Allow",
      "Principal": "*",
      "Action": "vpc-lattice-svcs:Invoke",
      "Resource": "arn:aws:vpc-lattice:us-west-2:123456789012:service/svc-0124446789abcdef0/*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/Environment": "Gamma",
        }
      }
    }
  ]
}
```

## Etiquetas principales
<a name="principal-tags"></a>

Puede controlar el acceso a sus servicios y recursos en función de las etiquetas adjuntas a la identidad de la persona que llama. VPC Lattice admite el control de acceso en función de las etiquetas principales de las etiquetas de usuario, rol o sesión mediante las variables. `aws:PrincipalTag/context` Para obtener más información, consulte [Control del acceso de las entidades principales de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_iam-tags.html#access_iam-tags_control-principals).

El siguiente ejemplo de política otorga acceso solo a las identidades con la etiqueta. `Team=Payments` Esta política le permite controlar el acceso sin necesidad de codificar una cuenta IDs o un rol. ARNs

```
{
  "Version": "2012-10-17", 		 	 	 		 	 	 
  "Statement": [
    {
      "Sid": "AllowPaymentsTeam",
      "Effect": "Allow",
      "Principal": "*",
      "Action": "vpc-lattice-svcs:Invoke",
      "Resource": "arn:aws:vpc-lattice:us-west-2:123456789012:service/svc-0123456789abcdef0/*",
      "Condition": {
        "StringEquals": {
          "aws:PrincipalTag/Team": "Payments",
        }
      }
    }
  ]
}
```

## Entidades principales anónimas (no autenticadas)
<a name="anonymous-unauthenticated-principals"></a>

Los directores anónimos son personas que llaman y no firman sus AWS solicitudes con la [versión 4 de la firma (SigV4)](sigv4-authenticated-requests.md) y se encuentran dentro de una VPC que está conectada a la red de servicio. Las entidades principales anónimas pueden realizar solicitudes no autenticadas a los servicios de la red de servicios si una política de autenticación así lo permite.

## Ejemplo de políticas de autenticación
<a name="example-auth-policies"></a>

Los siguientes son ejemplos de políticas de autenticación que requieren que las solicitudes las realicen las entidades principales autenticadas.

Todos los ejemplos utilizan la `us-west-2` región y contienen una cuenta ficticia. IDs

**Ejemplo 1: restringir el acceso a los servicios por parte de una organización específica AWS**  
El siguiente ejemplo de política de autenticación concede permisos a cualquier solicitud autenticada para acceder a cualquier servicio de la red de servicios a la que se aplique la política. Sin embargo, la solicitud debe provenir de los directores que pertenezcan a la AWS organización especificada en la condición.

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect": "Allow",
         "Principal": "*",
         "Action": "vpc-lattice-svcs:Invoke",
         "Resource": "*",
         "Condition": {
            "StringEquals": {
               "aws:PrincipalOrgID": [ 
                  "o-123456example"
               ]
            }
         }
      }
   ]
}
```

------

**Ejemplo 2: restringir el acceso a un servicio por un rol de IAM específico**  
El siguiente ejemplo de política de autenticación concede permisos a cualquier solicitud autenticada que utilice el rol de IAM `rates-client` para realizar solicitudes HTTP GET en el servicio especificado en el elemento `Resource`. El recurso del elemento `Resource` es el mismo que el servicio al que está asociada la política.

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect": "Allow",
         "Principal": {
            "AWS": [
               "arn:aws:iam::123456789012:role/rates-client"
            ]
         },
         "Action": "vpc-lattice-svcs:Invoke",
         "Resource": [
            "arn:aws:vpc-lattice:us-west-2:123456789012:service/svc-0123456789abcdef0/*"
         ],
         "Condition": {
            "StringEquals": {
               "vpc-lattice-svcs:RequestMethod": "GET"
            }
         }
      }
   ]
}
```

------

**Ejemplo 3: Restringir el acceso a los servicios por parte de las entidades principales autenticadas en una VPC específica**  
El siguiente ejemplo de política de autenticación solo permite solicitudes autenticadas de las entidades principales de la VPC cuyo ID de VPC sea `vpc-1a2b3c4d`.

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect": "Allow",
         "Principal": "*",
         "Action": "vpc-lattice-svcs:Invoke",
         "Resource": "*",
         "Condition": {
            "StringNotEquals": {
               "aws:PrincipalType": "Anonymous"
            },
            "StringEquals": {
               "vpc-lattice-svcs:SourceVpc": "vpc-1a2b3c4d"
            }
         }
      }
   ]
}
```

------

## Cómo funciona la autorización
<a name="auth-policies-evaluation-logic"></a>

Cuando un servicio de VPC Lattice recibe una solicitud, el código de AWS cumplimiento evalúa todas las políticas de permisos relevantes en conjunto para determinar si se debe autorizar o denegar la solicitud. Evalúa todas las políticas basadas en identidad de IAM y las políticas de autenticación que se aplican en el contexto de la solicitud durante la autorización. De forma predeterminada, todas las solicitudes se deniegan de manera implícita si el tipo de autenticación es `AWS_IAM`. Un permiso explícito de todas las políticas relevantes anula el valor predeterminado.

La autorización incluye:
+ Recopilar todas las políticas basadas en identidad de IAM y las políticas de autenticación relevantes.
+ Evaluación del conjunto de políticas resultante:
  + Verificar que el solicitante (como un rol o usuario de IAM) cuente con los permisos para realizar la operación desde la cuenta a la que pertenece el solicitante. Si no hay una declaración de autorización explícita, AWS no autoriza la solicitud.
  + Verificar que la solicitud esté permitida por la política de autenticación de la red de servicios. Si una política de autenticación está habilitada, pero no hay una declaración de autorización explícita, AWS no autoriza la solicitud. Si hay una instrucción de autorización explícita o el tipo de autenticación es `NONE`, el código continúa. 
  + Verificar que la solicitud esté permitida por la política de autenticación del servicio. Si una política de autenticación está habilitada, pero no hay una declaración de autorización explícita, AWS no autoriza la solicitud. Si hay una instrucción de autorización explícita o si el tipo de autenticación es `NONE`, entonces el código de aplicación devuelve una decisión final de **Permitir**.
  + Una denegación explícita en cualquier política invalida cualquier permiso concedido.

En el diagrama se muestra el flujo de trabajo de la autorización. Cuando se realiza una solicitud, las políticas relevantes permiten o deniegan el acceso de la solicitud a un servicio determinado.

![\[Flujo de trabajo de la autorización\]](http://docs.aws.amazon.com/es_es/vpc-lattice/latest/ug/images/authpolicy.png)


# Control del tráfico en VPC Lattice mediante grupos de seguridad
<a name="security-groups"></a>

AWS los grupos de seguridad actúan como firewalls virtuales y controlan el tráfico de red hacia y desde las entidades a las que están asociados. Con VPC Lattice, puede crear grupos de seguridad y asignarlos a la asociación de VPC que conecta una VPC a una red de servicio para aplicar protecciones de seguridad adicionales a nivel de red para su red de servicio. Si conecta una VPC a una red de servicio mediante un punto de enlace de VPC, también puede asignar grupos de seguridad al punto de enlace de la VPC. Del mismo modo, puede asignar grupos de seguridad a las puertas de enlace de recursos que cree para permitir el acceso a los recursos de su VPC.

**Topics**
+ [Lista de prefijos administrada](#managed-prefix-list)
+ [Reglas del grupo de seguridad](#security-groups-rules)
+ [Administración de grupos de seguridad para una asociación de VPC](#service-network-security-group)

## Lista de prefijos administrada
<a name="managed-prefix-list"></a>

VPC Lattice proporciona listas de prefijos gestionadas que incluyen las direcciones IP que se utilizan para enrutar el tráfico a través de la red de VPC Lattice cuando se utiliza una asociación de red de servicio para conectar la VPC a una red de servicio mediante una asociación de VPC. Se trata de enlaces privados y locales o públicos no enrutables. IPs IPs IPs

 Puede hacer referencia a las listas de prefijos administradas por VPC Lattice en las reglas de grupo de seguridad. Esto permite que el tráfico fluya desde los clientes, a través de la red de servicios de VPC Lattice y hacia los destinos del servicio de VPC Lattice.

Por ejemplo, suponga que tiene una instancia EC2 registrada como destino en la región oeste de EE. UU. (Oregón) (`us-west-2`). Puede añadir una regla al grupo de seguridad de la instancia que permita el acceso HTTPS entrante desde la lista de prefijos administrada de VPC Lattice, de modo que el tráfico de VPC Lattice de esta región pueda llegar a la instancia. Si elimina todas las demás reglas entrantes del grupo de seguridad, podrá evitar que cualquier tráfico que no sea de VPC Lattice llegue a la instancia.

Los nombres de las listas de prefijos administradas para VPC Lattice son los siguientes:
+ com.amazonaws. *region*.vpc-lattice
+ com.amazonaws. *region*.ipv6.vpc-lattice

Para obtener más información, consulte [Listas de prefijos administradas de AWS](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-aws-managed-prefix-lists.html#available-aws-managed-prefix-lists) en la *Guía del usuario de Amazon VPC*.

**Clientes para Windows y macOS**  
Las direcciones de las listas de prefijos de VPC Lattice son direcciones locales de enlace y direcciones públicas no enrutables. Si se conecta a VPC Lattice desde estos clientes, debe actualizar sus configuraciones para que reenvíe las direcciones IP de la lista de prefijos administrados a la dirección IP principal del cliente. El siguiente es un ejemplo de comando que actualiza la configuración del cliente de Windows, donde 169.254.171.0 se encuentra una de las direcciones de la lista de prefijos administrados. 

```
C:\> route add 169.254.171.0 mask 255.255.255.0 primary-ip-address
```

El siguiente es un comando de ejemplo que actualiza la configuración del cliente macOS, donde 169.254.171.0 se encuentra una de las direcciones de la lista de prefijos administrados. 

```
sudo route -n add -net 169.254.171.0 primary-ip-address 255.255.255.0
```

Para evitar crear una ruta estática, le recomendamos que utilice un punto final de red de servicio en una VPC para establecer la conectividad. Para obtener más información, consulte [Gestione las asociaciones de puntos finales de VPC de la red de servicios](service-network-associations.md#service-network-vpc-endpoint-associations).

## Reglas del grupo de seguridad
<a name="security-groups-rules"></a>

El uso de VPC Lattice con o sin grupos de seguridad no afectará a la configuración de los grupos de seguridad de VPC existentes. Sin embargo, puede agregar sus propios grupos de seguridad en cualquier momento.

**Consideraciones clave**
+ Las reglas de los grupos de seguridad para los clientes controlan el tráfico saliente a VPC Lattice. 
+ Las reglas de los grupos de seguridad para los objetivos controlan el tráfico entrante desde VPC Lattice hacia los objetivos, incluido el tráfico de comprobación de estado. 
+ Las reglas del grupo de seguridad para la asociación entre la red de servicios y la VPC controlan qué clientes pueden acceder a la red de servicios de VPC Lattice.
+ Las reglas del grupo de seguridad para la puerta de enlace de recursos controlan el tráfico saliente desde la puerta de enlace de recursos a los recursos.

**Reglas de salida recomendadas para el tráfico que fluye desde la puerta de enlace de recursos a un recurso de base de datos**  
Para que el tráfico fluya desde la puerta de enlace de recursos a los recursos, debe crear reglas de salida para los puertos abiertos y protocolos de escucha aceptados para los recursos.


| Destino | Protocolo | Intervalo de puertos | Comment | 
| --- | --- | --- | --- | 
| CIDR range for resource | TCP | 3306 | Permita el tráfico desde la pasarela de recursos a las bases de datos | 

**Reglas de entrada recomendadas para redes de servicios y asociaciones de VPC**  
Para que el tráfico fluya del cliente VPCs a los servicios asociados a la red de servicios, debe crear reglas de entrada para los puertos de escucha y los protocolos de escucha de los servicios.


| origen | Protocolo | Intervalo de puertos | Comment | 
| --- | --- | --- | --- | 
| VPC CIDR | listener | listener | Permitir el tráfico de los clientes a VPC Lattice | 

**Reglas de salida recomendadas para el tráfico que fluye desde las instancias de clientes hasta VPC Lattice**  
De forma predeterminada, los grupos de seguridad permiten el tráfico de salida. Sin embargo, si tiene reglas de salida personalizadas, debe permitir el tráfico saliente al prefijo de VPC Lattice para los puertos y protocolos de escucha, de modo que las instancias cliente puedan conectarse a todos los servicios asociados a la red de servicios de VPC Lattice. Puede permitir este tráfico haciendo referencia al ID de la lista de prefijos de VPC Lattice.


| Destino | Protocolo | Intervalo de puertos | Comment | 
| --- | --- | --- | --- | 
| ID of the VPC Lattice prefix list | listener | listener | Permitir el tráfico de los clientes a VPC Lattice | 

**Reglas de entrada recomendadas para el tráfico que fluye desde VPC Lattice hasta las instancias de destino**  
No puede usar el grupo de seguridad del cliente como fuente para los grupos de seguridad de su destino, ya que el tráfico fluye desde VPC Lattice. Puede hacer referencia al ID de la lista de prefijos de VPC Lattice.


| origen | Protocolo | Intervalo de puertos | Comment | 
| --- | --- | --- | --- | 
| ID of the VPC Lattice prefix list | target | target | Permita el tráfico de VPC Lattice a los objetivos | 
| ID of the VPC Lattice prefix list | health check | health check | Permita comprobar el estado del tráfico desde VPC Lattice a los objetivos | 

## Administración de grupos de seguridad para una asociación de VPC
<a name="service-network-security-group"></a>

Puede usarlo AWS CLI para ver, agregar o actualizar los grupos de seguridad de la VPC a la asociación de redes de servicio. Cuando utilice la AWS CLI, recuerde que sus comandos se ejecutan en la Región de AWS configuración de su perfil. Si desea ejecutar los comandos en otra región, cambie la región predeterminada de su perfil o utilice el parámetro `--region` con el comando.

Antes de empezar, confirme que ha creado el grupo de seguridad en la misma VPC que la VPC que quiere añadir a la red de servicios. Para obtener más información, consulte [Controle el tráfico a sus recursos mediante grupos de seguridad](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-security-groups.html) en la Guía del *usuario de Amazon VPC*

**Cómo agregar un grupo de seguridad al crear una asociación de VPC mediante la consola**

1. Abra la consola de Amazon VPC en [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/).

1. En el panel de navegación, en **VPC Lattice**, elija **Redes de servicios**.

1. Seleccione el nombre de la red de servicios para abrir la página de detalles.

1. En la pestaña **Asociaciones de VPC**, elija **Crear asociaciones de VPC** y, a continuación, elija **Agregar asociación de VPC**.

1. Seleccione una VPC y hasta cinco grupos de seguridad.

1. Seleccione **Save changes (Guardar cambios)**.

**Cómo actualizar o agregar grupos de seguridad a una asociación de VPC existente mediante la consola**

1. Abra la consola de Amazon VPC en [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/).

1. En el panel de navegación, en **VPC Lattice**, elija **Redes de servicios**.

1. Seleccione el nombre de la red de servicios para abrir la página de detalles.

1. En la pestaña **Asociaciones de VPC**, seleccione la casilla de verificación de la asociación y, a continuación, elija **Acciones**, **Editar grupos de seguridad**.

1. Añada y elimine grupos de seguridad según sea necesario.

1. Seleccione **Save changes (Guardar cambios)**.

**Para agregar un grupo de seguridad al crear una asociación de VPC mediante AWS CLI**  
Use el comando [create-service-network-vpc-association](https://docs.aws.amazon.com/cli/latest/reference/vpc-lattice/create-service-network-vpc-association.html), que especifica el ID de la VPC para la asociación de VPC y el ID de los grupos de seguridad que se van a agregar.

```
aws vpc-lattice create-service-network-vpc-association \
    --service-network-identifier sn-0123456789abcdef0 \
    --vpc-identifier vpc-1a2b3c4d \
    --security-group-ids sg-7c2270198example
```

Si se ejecuta correctamente, el comando devolverá información similar a la siguiente.

```
{
  "arn": "arn",
  "createdBy": "464296918874",
  "id": "snva-0123456789abcdef0",
  "status": "CREATE_IN_PROGRESS",
  "securityGroupIds": ["sg-7c2270198example"]
}
```

**Para agregar o actualizar grupos de seguridad para una asociación de VPC existente mediante AWS CLI**  
Utilice el comando [update-service-network-vpc-association](https://docs.aws.amazon.com/cli/latest/reference/vpc-lattice/update-service-network-vpc-association.html), que especifica el ID de la red de servicio y el IDs de los grupos de seguridad. Estos grupos de seguridad anulan cualquier grupo de seguridad asociado con anterioridad. Defina al menos un grupo de seguridad al actualizar la lista.

```
aws vpc-lattice update-service-network-vpc-association 
    --service-network-vpc-association-identifier sn-903004f88example \
    --security-group-ids sg-7c2270198example sg-903004f88example
```

**aviso**  
No puede eliminar todos los grupos de seguridad. En cambio, primero debe eliminar la asociación de VPC y, a continuación, volver a crear la asociación de VPC sin ningún grupo de seguridad. Tenga cuidado al eliminar la asociación de VPC. Esto impide que el tráfico llegue a los servicios que se encuentran en esa red de servicios.

# Controle el tráfico a VPC Lattice mediante la red ACLs
<a name="network-acls"></a>

Una lista de control de acceso (ACL) de red permite o deniega el tráfico entrante o saliente específico en el nivel de subred. La ACL de red predeterminada permite el tráfico de entrada y de salida. Puede crear una red personalizada ACLs para sus subredes a fin de proporcionar un nivel de seguridad adicional. Para obtener más información, consulte [Red ACLs](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network-acls.html) en la Guía del *usuario de Amazon VPC*.

**Topics**
+ [Red ACLs para las subredes de sus clientes](#network-acl-client-subnets)
+ [Red ACLs para sus subredes de destino](#network-acl-target-subnets)

## Red ACLs para las subredes de sus clientes
<a name="network-acl-client-subnets"></a>

La red ACLs para las subredes de los clientes debe permitir el tráfico entre los clientes y VPC Lattice. Puede obtener los rangos de direcciones IP permitidos en la [lista de prefijos administrados](security-groups.md#managed-prefix-list) de VPC Lattice.

A continuación, se muestra un ejemplo de regla de entrada.


| origen | Protocolo | Intervalo de puertos | Comment | 
| --- | --- | --- | --- | 
| vpc\$1lattice\$1cidr\$1block | TCP | 1025-65535 | Permiso de tráfico desde VPC Lattice hacia los clientes | 

A continuación, se muestra un ejemplo de una regla de salida.


| Destino | Protocolo | Intervalo de puertos | Comment | 
| --- | --- | --- | --- | 
| vpc\$1lattice\$1cidr\$1block | listener | listener | Permitir el tráfico de los clientes a VPC Lattice | 

## Red ACLs para sus subredes de destino
<a name="network-acl-target-subnets"></a>

La red ACLs para las subredes de destino debe permitir el tráfico entre los destinos y VPC Lattice tanto en el puerto de destino como en el puerto de comprobación de estado. Puede obtener los rangos de direcciones IP permitidos en la [lista de prefijos administrados](security-groups.md#managed-prefix-list) de VPC Lattice.

A continuación, se muestra un ejemplo de regla de entrada.


| origen | Protocolo | Intervalo de puertos | Comment | 
| --- | --- | --- | --- | 
| vpc\$1lattice\$1cidr\$1block | target | target | Permita el tráfico de VPC Lattice a los objetivos | 
| vpc\$1lattice\$1cidr\$1block | health check | health check | Permita comprobar el estado del tráfico desde VPC Lattice a los objetivos | 

A continuación, se muestra un ejemplo de una regla de salida.


| Destino | Protocolo | Intervalo de puertos | Comment | 
| --- | --- | --- | --- | 
| vpc\$1lattice\$1cidr\$1block | target | 1024-65535 | Permiso de tráfico desde los destinos hacia VPC Lattice | 
| vpc\$1lattice\$1cidr\$1block | health check | 1024-65535 | Permiso de comprobación de estado del tráfico desde los destinos hasta VPC Lattice | 

# SIGv4 solicitudes autenticadas para Amazon VPC Lattice
<a name="sigv4-authenticated-requests"></a>

VPC Lattice utiliza la versión de firma 4 (SIGv4) o la versión de firma 4A (SIGv4A) para la autenticación del cliente. Para obtener más información, consulte [AWS Signature Version 4 para solicitudes de API](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html) en la *Guía del usuario de IAM*.

**Consideraciones**
+ VPC Lattice intenta autenticar cualquier solicitud que esté firmada con o A. SIGv4 SIGv4 La solicitud falla sin autenticación.
+ VPC Lattice no admite la firma de cargas. Debe enviar un encabezado `x-amz-content-sha256` con el valor establecido en `"UNSIGNED-PAYLOAD"`.

**Topics**
+ [Python](#sigv4-authenticated-requests-python)
+ [Java](#sigv4-authenticated-requests-java-custom-interceptor)
+ [Node.js](#sigv4-authenticated-requests-nodejs)
+ [Golang](#sigv4-authenticated-requests-golang)
+ [Golang - GRPC](#sigv4-authenticated-requests-golang-grpc)

## Python
<a name="sigv4-authenticated-requests-python"></a>

En este ejemplo, se envían las solicitudes firmadas a través de una conexión segura a un servicio registrado en la red. Si prefiere utilizar [solicitudes](https://requests.readthedocs.io/en/latest/), el paquete [botocore](https://github.com/boto/botocore) simplifica el proceso de autenticación, pero no es obligatorio. Para obtener más información, consulte [Credenciales](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/credentials.html) en la documentación de Boto3.

Para instalar los `awscrt` paquetes `botocore` y, utilice el siguiente comando. Para obtener más información, consulte [AWS CRT Python.](https://pypi.org/project/awscrt/)

```
pip install botocore awscrt
```

Si ejecuta la aplicación cliente en Lambda, instale los módulos necesarios mediante [capas Lambda](https://docs.aws.amazon.com/lambda/latest/dg/python-layers.html) o inclúyalos en su paquete de implementación.

En el siguiente ejemplo, sustituya los valores de los marcadores de posición por sus propios valores.

------
#### [ SIGv4 ]

```
from botocore import crt
import requests 
from botocore.awsrequest import AWSRequest
import botocore.session

if __name__ == '__main__':
    session = botocore.session.Session()
    signer = crt.auth.CrtSigV4Auth(session.get_credentials(), 'vpc-lattice-svcs', 'us-west-2')
    endpoint = 'https://data-svc-022f67d3a42.1234abc.vpc-lattice-svcs.us-west-2.on.aws'
    data = "some-data-here"
    headers = {'Content-Type': 'application/json', 'x-amz-content-sha256': 'UNSIGNED-PAYLOAD'}
    request = AWSRequest(method='POST', url=endpoint, data=data, headers=headers)
    request.context["payload_signing_enabled"] = False
    signer.add_auth(request)
    
    prepped = request.prepare()
    
    response = requests.post(prepped.url, headers=prepped.headers, data=data)
    print(response.text)
```

------
#### [ SIGv4A ]

```
from botocore import crt
import requests 
from botocore.awsrequest import AWSRequest
import botocore.session

if __name__ == '__main__':
    session = botocore.session.Session()
    signer = crt.auth.CrtSigV4AsymAuth(session.get_credentials(), 'vpc-lattice-svcs', '*')
    endpoint = 'https://data-svc-022f67d3a42.1234abc.vpc-lattice-svcs.us-west-2.on.aws'
    data = "some-data-here"
    headers = {'Content-Type': 'application/json', 'x-amz-content-sha256': 'UNSIGNED-PAYLOAD'}
    request = AWSRequest(method='POST', url=endpoint, data=data, headers=headers)
    request.context["payload_signing_enabled"] = False 
    signer.add_auth(request)
    
    prepped = request.prepare()
    
    response = requests.post(prepped.url, headers=prepped.headers, data=data)
    print(response.text)
```

------

## Java
<a name="sigv4-authenticated-requests-java-custom-interceptor"></a>

En este ejemplo, se muestra cómo se puede realizar la firma de solicitudes mediante interceptores personalizados. Utiliza la clase de proveedor de credenciales predeterminada desde [AWS SDK for Java 2.x](https://github.com/aws/aws-sdk-java-v2), que obtiene las credenciales correctas para usted. Si prefiere utilizar un proveedor de credenciales específico, puede seleccionar uno de [AWS SDK for Java 2.x](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials.html). Solo AWS SDK para Java permite cargas útiles sin firmar a través de HTTPS. Sin embargo, puede ampliar el firmante para que admita cargas no firmadas a través de HTTP.

------
#### [ SIGv4 ]

```
package com.example;

import software.amazon.awssdk.http.auth.aws.signer.AwsV4HttpSigner;
import software.amazon.awssdk.http.auth.spi.signer.SignedRequest;

import software.amazon.awssdk.http.SdkHttpMethod;
import software.amazon.awssdk.http.SdkHttpClient;
import software.amazon.awssdk.identity.spi.AwsCredentialsIdentity;
import software.amazon.awssdk.http.SdkHttpRequest;
import software.amazon.awssdk.http.apache.ApacheHttpClient;
import software.amazon.awssdk.http.HttpExecuteRequest;
import software.amazon.awssdk.http.HttpExecuteResponse;
import java.io.IOException;
import java.net.URI;

import software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider;

public class sigv4 {

    public static void main(String[] args) {
        AwsV4HttpSigner signer = AwsV4HttpSigner.create();

        AwsCredentialsIdentity credentials = DefaultCredentialsProvider.create().resolveCredentials();

        if (args.length < 2) {
            System.out.println("Usage: sample <url> <region>");
            System.exit(1);
        }
        // Create the HTTP request to be signed
        var url = args[0];
        SdkHttpRequest httpRequest = SdkHttpRequest.builder()
                .uri(URI.create(url))
                .method(SdkHttpMethod.GET)
                .build();

        SignedRequest signedRequest = signer.sign(r -> r.identity(credentials)
                .request(httpRequest)
                .putProperty(AwsV4HttpSigner.SERVICE_SIGNING_NAME, "vpc-lattice-svcs")
                .putProperty(AwsV4HttpSigner.PAYLOAD_SIGNING_ENABLED, false)
                .putProperty(AwsV4HttpSigner.REGION_NAME, args[1]));

        System.out.println("[*] Raw request headers:");
        signedRequest.request().headers().forEach((key, values) -> {
            values.forEach(value -> System.out.println("  " + key + ": " + value));
        });

        try (SdkHttpClient httpClient = ApacheHttpClient.create()) {
            HttpExecuteRequest httpExecuteRequest = HttpExecuteRequest.builder()
                    .request(signedRequest.request())
                    .contentStreamProvider(signedRequest.payload().orElse(null))
                    .build();

            System.out.println("[*] Sending request to: " + url);

            HttpExecuteResponse httpResponse = httpClient.prepareRequest(httpExecuteRequest).call();

            System.out.println("[*] Request sent");

            System.out.println("[*] Response status code: " + httpResponse.httpResponse().statusCode());
            // Read and print the response body
            httpResponse.responseBody().ifPresent(inputStream -> {
                try {
                    String responseBody = new String(inputStream.readAllBytes());
                    System.out.println("[*] Response body: " + responseBody);
                } catch (IOException e) {
                    System.err.println("[*] Failed to read response body");
                    e.printStackTrace();
                } finally {
                    try {
                        inputStream.close();
                    } catch (IOException e) {
                        System.err.println("[*] Failed to close input stream");
                        e.printStackTrace();
                    }
                }
            });
        } catch (IOException e) {
            System.err.println("[*] HTTP Request Failed.");
            e.printStackTrace();
        }

    }
}
```

------
#### [ SIGv4A ]

Este ejemplo requiere una dependencia adicional de. `software.amazon.awssdk:http-auth-aws-crt`

```
package com.example;


import software.amazon.awssdk.http.auth.aws.signer.AwsV4aHttpSigner;
import software.amazon.awssdk.http.auth.aws.signer.RegionSet;
import software.amazon.awssdk.http.auth.spi.signer.SignedRequest;

import software.amazon.awssdk.http.SdkHttpMethod;
import software.amazon.awssdk.http.SdkHttpClient;
import software.amazon.awssdk.identity.spi.AwsCredentialsIdentity;
import software.amazon.awssdk.http.SdkHttpRequest;
import software.amazon.awssdk.http.apache.ApacheHttpClient;
import software.amazon.awssdk.http.HttpExecuteRequest;
import software.amazon.awssdk.http.HttpExecuteResponse;
import java.io.IOException;
import java.net.URI;
import java.util.Arrays;

import software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider;

public class sigv4a {
    
    public static void main(String[] args) {
        AwsV4aHttpSigner signer = AwsV4aHttpSigner.create();

        AwsCredentialsIdentity credentials = DefaultCredentialsProvider.create().resolveCredentials();

        if (args.length < 2) {
            System.out.println("Usage: sample <url> <regionset>");
            System.exit(1);
        }
        // Create the HTTP request to be signed
        var url = args[0];
        SdkHttpRequest httpRequest = SdkHttpRequest.builder()
                .uri(URI.create(url))
                .method(SdkHttpMethod.GET)
                .build();

        SignedRequest signedRequest = signer.sign(r -> r.identity(credentials)
                .request(httpRequest)
                .putProperty(AwsV4aHttpSigner.SERVICE_SIGNING_NAME, "vpc-lattice-svcs")
                .putProperty(AwsV4aHttpSigner.PAYLOAD_SIGNING_ENABLED, false)
                .putProperty(AwsV4aHttpSigner.REGION_SET, RegionSet.create(String.join(" ",Arrays.copyOfRange(args, 1, args.length)))));

        System.out.println("[*] Raw request headers:");
        signedRequest.request().headers().forEach((key, values) -> {
            values.forEach(value -> System.out.println("  " + key + ": " + value));
        });

        try (SdkHttpClient httpClient = ApacheHttpClient.create()) {
            HttpExecuteRequest httpExecuteRequest = HttpExecuteRequest.builder()
                    .request(signedRequest.request())
                    .contentStreamProvider(signedRequest.payload().orElse(null))
                    .build();

            System.out.println("[*] Sending request to: " + url);

            HttpExecuteResponse httpResponse = httpClient.prepareRequest(httpExecuteRequest).call();

            System.out.println("[*] Request sent");

            System.out.println("[*] Response status code: " + httpResponse.httpResponse().statusCode());
            // Read and print the response body
            httpResponse.responseBody().ifPresent(inputStream -> {
                try {
                    String responseBody = new String(inputStream.readAllBytes());
                    System.out.println("[*] Response body: " + responseBody);
                } catch (IOException e) {
                    System.err.println("[*] Failed to read response body");
                    e.printStackTrace();
                } finally {
                    try {
                        inputStream.close();
                    } catch (IOException e) {
                        System.err.println("[*] Failed to close input stream");
                        e.printStackTrace();
                    }
                }
            });
        } catch (IOException e) {
            System.err.println("[*] HTTP Request Failed.");
            e.printStackTrace();
        }
    }
}
```

------

## Node.js
<a name="sigv4-authenticated-requests-nodejs"></a>

En este ejemplo, se utilizan los [enlaces aws-crt NodeJS](https://github.com/awslabs/aws-crt-nodejs) para enviar una solicitud firmada mediante HTTPS.

Para instalar el paquete `aws-crt`, use el siguiente comando.

```
npm -i aws-crt
```

Si la variable de entorno `AWS_REGION` existe, en el ejemplo se utiliza la región especificada por `AWS_REGION`. La región predeterminada es `us-east-1`.

------
#### [ SIGv4 ]

```
const https = require('https')
const crt = require('aws-crt')
const { HttpRequest } = require('aws-crt/dist/native/http')

function sigV4Sign(method, endpoint, service, algorithm) {
    const host = new URL(endpoint).host
    const request = new HttpRequest(method, endpoint)
    request.headers.add('host', host)
    // crt.io.enable_logging(crt.io.LogLevel.INFO)
    const config = {
        service: service,
        region: process.env.AWS_REGION ? process.env.AWS_REGION : 'us-east-1',
        algorithm: algorithm,
        signature_type: crt.auth.AwsSignatureType.HttpRequestViaHeaders,
        signed_body_header: crt.auth.AwsSignedBodyHeaderType.XAmzContentSha256,
        signed_body_value: crt.auth.AwsSignedBodyValue.UnsignedPayload,
        provider: crt.auth.AwsCredentialsProvider.newDefault()
    }

    return crt.auth.aws_sign_request(request, config)
}

if (process.argv.length === 2) {
  console.error(process.argv[1] + ' <url>')
  process.exit(1)
}

const algorithm = crt.auth.AwsSigningAlgorithm.SigV4;

sigV4Sign('GET', process.argv[2], 'vpc-lattice-svcs', algorithm).then(
  httpResponse => {
    var headers = {}

    for (const sigv4header of httpResponse.headers) {
      headers[sigv4header[0]] = sigv4header[1]
    }

    const options = {
      hostname: new URL(process.argv[2]).host,
      path: new URL(process.argv[2]).pathname,
      method: 'GET',
      headers: headers
    }

    req = https.request(options, res => {
      console.log('statusCode:', res.statusCode)
      console.log('headers:', res.headers)
      res.on('data', d => {
        process.stdout.write(d)
      })
    })
    req.on('error', err => {
      console.log('Error: ' + err)
    })
    req.end()
  }
)
```

------
#### [ SIGv4A ]

```
const https = require('https')
const crt = require('aws-crt')
const { HttpRequest } = require('aws-crt/dist/native/http')

function sigV4Sign(method, endpoint, service, algorithm) {
    const host = new URL(endpoint).host
    const request = new HttpRequest(method, endpoint)
    request.headers.add('host', host)
    // crt.io.enable_logging(crt.io.LogLevel.INFO)
    const config = {
        service: service,
        region: process.env.AWS_REGION ? process.env.AWS_REGION : 'us-east-1',
        algorithm: algorithm,
        signature_type: crt.auth.AwsSignatureType.HttpRequestViaHeaders,
        signed_body_header: crt.auth.AwsSignedBodyHeaderType.XAmzContentSha256,
        signed_body_value: crt.auth.AwsSignedBodyValue.UnsignedPayload,
        provider: crt.auth.AwsCredentialsProvider.newDefault()
    }

    return crt.auth.aws_sign_request(request, config)
}

if (process.argv.length === 2) {
  console.error(process.argv[1] + ' <url>')
  process.exit(1)
}

const algorithm = crt.auth.AwsSigningAlgorithm.SigV4Asymmetric;

sigV4Sign('GET', process.argv[2], 'vpc-lattice-svcs', algorithm).then(
  httpResponse => {
    var headers = {}

    for (const sigv4header of httpResponse.headers) {
      headers[sigv4header[0]] = sigv4header[1]
    }

    const options = {
      hostname: new URL(process.argv[2]).host,
      path: new URL(process.argv[2]).pathname,
      method: 'GET',
      headers: headers
    }

    req = https.request(options, res => {
      console.log('statusCode:', res.statusCode)
      console.log('headers:', res.headers)
      res.on('data', d => {
        process.stdout.write(d)
      })
    })
    req.on('error', err => {
      console.log('Error: ' + err)
    })
    req.end()
  }
)
```

------

## Golang
<a name="sigv4-authenticated-requests-golang"></a>

En este ejemplo, se utilizan los [generadores de código Smithy para Go](https://github.com/aws/smithy-go) y el [AWS SDK para el lenguaje de programación Go](https://github.com/aws/aws-sdk-go) para gestionar las solicitudes de firma de solicitudes. El ejemplo requiere una versión de Go 1.21 o superior.

------
#### [ SIGv4 ]

```
package main
 
import (
        "context"
        "flag"
        "fmt"
        "io"
        "log"
        "net/http"
        "net/http/httputil"
        "os"
        "strings"
 
        "github.com/aws/aws-sdk-go-v2/aws"
        "github.com/aws/aws-sdk-go-v2/config"
        "github.com/aws/smithy-go/aws-http-auth/credentials"
        "github.com/aws/smithy-go/aws-http-auth/sigv4"
        v4 "github.com/aws/smithy-go/aws-http-auth/v4"
)
 
type nopCloser struct {
        io.ReadSeeker
}
 
func (nopCloser) Close() error {
        return nil
}
 
type stringFlag struct {
        set   bool
        value string
}
 
 
        flag.PrintDefaults()
        os.Exit(1)
}
 
func main() {
        flag.Parse()
        if !url.set || !region.set {
                Usage()
        }
 
        cfg, err := config.LoadDefaultConfig(context.TODO(), config.WithClientLogMode(aws.LogSigning))
        if err != nil {
                log.Fatalf("failed to load SDK configuration, %v", err)
        }
 
        if len(os.Args) < 2 {
                log.Fatalf("Usage: go run main.go  <url>")
        }
 
        // Retrieve credentials from an SDK source, such as the instance profile
        sdkCreds, err := cfg.Credentials.Retrieve(context.TODO())
        if err != nil {
                log.Fatalf("Unable to retrieve credentials from SDK, %v", err)
        }
 
        creds := credentials.Credentials{
                AccessKeyID:     sdkCreds.AccessKeyID,
                SecretAccessKey: sdkCreds.SecretAccessKey,
                SessionToken:    sdkCreds.SessionToken,
        }
 
        // Add a payload body, which will not be part of the signature calculation
        body := nopCloser{strings.NewReader(`Example payload body`)}
 
        req, _ := http.NewRequest(http.MethodPost, url.value, body)
 
        // Create a sigv4a signer with specific options
        signer := sigv4.New(func(o *v4.SignerOptions) {
                o.DisableDoublePathEscape = true
                // This will add the UNSIGNED-PAYLOAD sha256 header
                o.AddPayloadHashHeader = true
                o.DisableImplicitPayloadHashing = true
        })
 
        // Perform the signing on req, using the credentials we retrieved from the SDK
        err = signer.SignRequest(&sigv4.SignRequestInput{
                Request:     req,
                Credentials: creds,
                Service:     "vpc-lattice-svcs",
                Region: region.String(),
        })
 
        if err != nil {
                log.Fatalf("%s", err)
        }
 
        res, err := httputil.DumpRequest(req, true)
 
        if err != nil {
                log.Fatalf("%s", err)
        }
 
        log.Printf("[*] Raw request\n%s\n", string(res))
 
        log.Printf("[*] Sending request to %s\n", url.value)
 
        resp, err := http.DefaultClient.Do(req)
        if err != nil {
                log.Fatalf("%s", err)
        }
 
        log.Printf("[*] Request sent\n")
 
        log.Printf("[*] Response status code: %d\n", resp.StatusCode)
 
        respBody, err := io.ReadAll(resp.Body)
        if err != nil {
                log.Fatalf("%s", err)
        }
 
        log.Printf("[*] Response body: \n%s\n", respBody)
}
```

------
#### [ SIGv4A ]

```
package main
 
import (
        "context"
        "flag"
        "fmt"
        "io"
        "log"
        "net/http"
        "net/http/httputil"
        "os"
        "strings"
 
        "github.com/aws/aws-sdk-go-v2/aws"
        "github.com/aws/aws-sdk-go-v2/config"
        "github.com/aws/smithy-go/aws-http-auth/credentials"
        "github.com/aws/smithy-go/aws-http-auth/sigv4a"
        v4 "github.com/aws/smithy-go/aws-http-auth/v4"
)
 
type nopCloser struct {
        io.ReadSeeker
}
 
func (nopCloser) Close() error {
        return nil
}
 
type stringFlag struct {
 
func main() {
        flag.Parse()
        if !url.set || !regionSet.set {
                Usage()
        }
 
        cfg, err := config.LoadDefaultConfig(context.TODO(), config.WithClientLogMode(aws.LogSigning))
        if err != nil {
                log.Fatalf("failed to load SDK configuration, %v", err)
        }
 
        if len(os.Args) < 2 {
                log.Fatalf("Usage: go run main.go <url>")
        }
 
        // Retrieve credentials from an SDK source, such as the instance profile
        sdkCreds, err := cfg.Credentials.Retrieve(context.TODO())
        if err != nil {
                log.Fatalf("Unable to retrieve credentials from SDK, %v", err)
        }
 
        creds := credentials.Credentials{
                AccessKeyID:     sdkCreds.AccessKeyID,
                SecretAccessKey: sdkCreds.SecretAccessKey,
                SessionToken:    sdkCreds.SessionToken,
        }
 
        // Add a payload body, which will not be part of the signature calculation
        body := nopCloser{strings.NewReader(`Example payload body`)}
 
        req, _ := http.NewRequest(http.MethodPost, url.value, body)
 
        // Create a sigv4a signer with specific options
        signer := sigv4a.New(func(o *v4.SignerOptions) {
                o.DisableDoublePathEscape = true
                // This will add the UNSIGNED-PAYLOAD sha256 header
                o.AddPayloadHashHeader = true
                o.DisableImplicitPayloadHashing = true
        })
 
        // Create a slice out of the provided regionset
        rs := strings.Split(regionSet.value, ",")
 
        // Perform the signing on req, using the credentials we retrieved from the SDK
        err = signer.SignRequest(&sigv4a.SignRequestInput{
                Request:     req,
                Credentials: creds,
                Service:     "vpc-lattice-svcs",
                RegionSet: rs,
        })
 
        if err != nil {
                log.Fatalf("%s", err)
        }
 
        res, err := httputil.DumpRequest(req, true)
 
        if err != nil {
                log.Fatalf("%s", err)
        }
 
        log.Printf("[*] Raw request\n%s\n", string(res))
 
        log.Printf("[*] Sending request to %s\n", url.value)
 
        resp, err := http.DefaultClient.Do(req)
        if err != nil {
                log.Fatalf("%s", err)
        }
 
        log.Printf("[*] Request sent\n")
 
        log.Printf("[*] Response status code: %d\n", resp.StatusCode)
 
        respBody, err := io.ReadAll(resp.Body)
        if err != nil {
                log.Fatalf("%s", err)
        }
 
        log.Printf("[*] Response body: \n%s\n", respBody)
}
```

------

## Golang - GRPC
<a name="sigv4-authenticated-requests-golang-grpc"></a>

En este ejemplo, se utiliza el [AWS SDK del lenguaje de programación Go](https://github.com/aws/aws-sdk-go-v2/) para gestionar la firma de solicitudes de GRPC. Esto se puede usar con el [servidor echo del repositorio](https://github.com/grpc/grpc-go/tree/master/examples/features/proto/echo) de códigos de muestra del GRPC.

```
package main

import (
    "context"
    "crypto/tls"
    "crypto/x509"

    "flag"
    "fmt"
    "log"
    "net/http"
    "net/url"
    "strings"
    "time"

    "google.golang.org/grpc"
    "google.golang.org/grpc/credentials"

    "github.com/aws/aws-sdk-go-v2/aws"
    v4 "github.com/aws/aws-sdk-go-v2/aws/signer/v4"
    "github.com/aws/aws-sdk-go-v2/config"

    ecpb "google.golang.org/grpc/examples/features/proto/echo"
)

const (
    headerContentSha    = "x-amz-content-sha256"
    headerSecurityToken = "x-amz-security-token"
    headerDate          = "x-amz-date"
    headerAuthorization = "authorization"
    unsignedPayload     = "UNSIGNED-PAYLOAD"
)

type SigV4GrpcSigner struct {
    service      string
    region       string
    credProvider aws.CredentialsProvider
    signer       *v4.Signer
}

func NewSigV4GrpcSigner(service string, region string, credProvider aws.CredentialsProvider) *SigV4GrpcSigner {
    signer := v4.NewSigner()
    return &SigV4GrpcSigner{
        service:      service,
        region:       region,
        credProvider: credProvider,
        signer:       signer,
    }
}

func (s *SigV4GrpcSigner) GetRequestMetadata(ctx context.Context, uri ...string) (map[string]string, error) {
    ri, _ := credentials.RequestInfoFromContext(ctx)
    creds, err := s.credProvider.Retrieve(ctx)
    if err != nil {
        return nil, fmt.Errorf("failed to load credentials: %w", err)
    }

    // The URI we get here is scheme://authority/service/ - for siging we want to include the RPC name
    // But RequestInfoFromContext only has the combined /service/rpc-name - so read the URI, and
    // replace the Path with what we get from RequestInfo.
    parsed, err := url.Parse(uri[0])
    if err != nil {
        return nil, err
    }
    parsed.Path = ri.Method

    // Build a request for the signer.
    bodyReader := strings.NewReader("")
    req, err := http.NewRequest("POST", uri[0], bodyReader)
    if err != nil {
        return nil, err
    }
    date := time.Now()
    req.Header.Set(headerContentSha, unsignedPayload)
    req.Header.Set(headerDate, date.String())
    if creds.SessionToken != "" {
        req.Header.Set(headerSecurityToken, creds.SessionToken)
    }
    // The signer wants this as //authority/path
    // So get this by triming off the scheme and the colon before the first slash.
    req.URL.Opaque = strings.TrimPrefix(parsed.String(), parsed.Scheme+":")

    err = s.signer.SignHTTP(context.Background(), creds, req, unsignedPayload, s.service, s.region, date)
    if err != nil {
        return nil, fmt.Errorf("failed to sign request: %w", err)
    }

    // Pull the relevant headers out of the signer, and return them to get
    // included in the request we make.
    reqHeaders := map[string]string{
        headerContentSha:    req.Header.Get(headerContentSha),
        headerDate:          req.Header.Get(headerDate),
        headerAuthorization: req.Header.Get(headerAuthorization),
    }
    if req.Header.Get(headerSecurityToken) != "" {
        reqHeaders[headerSecurityToken] = req.Header.Get(headerSecurityToken)
    }

    return reqHeaders, nil
}

func (c *SigV4GrpcSigner) RequireTransportSecurity() bool {
    return true
}

var addr = flag.String("addr", "some-lattice-service:443", "the address to connect to")
var region = flag.String("region", "us-west-2", "region")

func callUnaryEcho(client ecpb.EchoClient, message string) {
    ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
    defer cancel()
    resp, err := client.UnaryEcho(ctx, &ecpb.EchoRequest{Message: message})
    if err != nil {
        log.Fatalf("client.UnaryEcho(_) = _, %v: ", err)
    }
    fmt.Println("UnaryEcho: ", resp.Message)
}

func main() {
    flag.Parse()
    cfg, err := config.LoadDefaultConfig(context.TODO(), config.WithClientLogMode(aws.LogSigning))
    if err != nil {
        log.Fatalf("failed to load SDK configuration, %v", err)
    }

    pool, _ := x509.SystemCertPool()
    tlsConfig := &tls.Config{
        RootCAs: pool,
    }

    authority, _, _ := strings.Cut(*addr, ":") // Remove the port from the addr
    opts := []grpc.DialOption{
        grpc.WithTransportCredentials(credentials.NewTLS(tlsConfig)),

        // Lattice needs both the Authority to be set (without a port), and the SigV4 signer
        grpc.WithAuthority(authority),
        grpc.WithPerRPCCredentials(NewSigV4GrpcSigner("vpc-lattice-svcs", *region, cfg.Credentials)),
    }

    conn, err := grpc.Dial(*addr, opts...)

    if err != nil {
        log.Fatalf("did not connect: %v", err)
    }
    defer conn.Close()
    rgc := ecpb.NewEchoClient(conn)

    callUnaryEcho(rgc, "hello world")
}
```

# Protección de datos en Amazon VPC Lattice
<a name="data-protection"></a>

El [modelo de ](https://aws.amazon.com/compliance/shared-responsibility-model/) se aplica a protección de datos en Amazon VPC Lattice. Como se describe en este modelo, AWS es responsable de proteger la infraestructura global en la que se ejecutan todos los. Nube de AWS Es responsable de mantener el control sobre su contenido que se encuentra alojado en esta infraestructura. Este contenido incluye la configuración de seguridad y las tareas de administración para el Servicios de AWS que utiliza. Para obtener más información sobre la privacidad de datos, consulte [Preguntas frecuentes sobre la privacidad de datos](https://aws.amazon.com/compliance/data-privacy-faq/). Para obtener información sobre la protección de datos en Europa, consulte la publicación de blog sobre el [Modelo de responsabilidad compartida de AWS y GDPR](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-gdpr/) en el * Blog de seguridad de AWS *.

## Cifrado en tránsito
<a name="encryption-transit"></a>

VPC Lattice es un servicio totalmente gestionado que consta de un plano de control y un plano de datos. Cada plano tiene un propósito distinto en el servicio. El plano de control proporciona los recursos administrativos que APIs se utilizan para crear, leer/describir, actualizar, eliminar y enumerar los recursos (CRUDL) (por ejemplo, `CreateService` y). `UpdateService` Las comunicaciones con el plano de control de VPC Lattice están protegidas durante el tránsito mediante TLS. El plano de datos es la API Lattice Invoke de VPC, que proporciona la interconexión entre los servicios. TLS cifra las comunicaciones con el plano de datos de VPC Lattice cuando se utiliza HTTPS o TLS. El conjunto de cifrado y la versión del protocolo utilizan los valores predeterminados proporcionados por VPC Lattice y no son configurables. Para obtener más información, consulte [Oyentes HTTPS para servicios de VPC Lattice](https-listeners.md).

## Cifrado en reposo
<a name="encryption-rest"></a>

De forma predeterminada, el cifrado de los datos en reposo ayuda a reducir la sobrecarga operativa y la complejidad que implica la protección de los datos confidenciales. Al mismo tiempo, le permite crear aplicaciones seguras que cumplen con los estrictos requisitos normativos y de conformidad del cifrado.

**Topics**
+ [Cifrado del lado del servidor con claves administradas por Amazon S3 (SSE-S3)](#s3-managed-keys)
+ [Cifrado del lado del servidor con AWS KMS claves almacenadas en AWS KMS (SSE-KMS)](#kms-managed-keys)

### Cifrado del lado del servidor con claves administradas por Amazon S3 (SSE-S3)
<a name="s3-managed-keys"></a>

Cuando se usa el cifrado del lado del servidor con claves administradas por Amazon S3 (SSE-S3), cada objeto se cifra con una clave exclusiva. Como medida de seguridad adicional, ciframos la propia clave con una clave raíz que cambiamos periódicamente. El cifrado del lado del servidor de Simple Storage Service (Amazon S3)‎ utiliza uno de los cifrados de bloques más seguros disponibles, Advanced Encryption Standard de 256 bits (AES-256) GCM, para cifrar los datos. En el caso de los objetos cifrados antes de AES-GCM, AES-CBC sigue siendo compatible para descifrar esos objetos. Para obtener más información, consulte [Uso de cifrado del lado del servidor con claves de cifrado administradas por Amazon S3 (SSE-S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingServerSideEncryption.html).

Si habilita el cifrado del lado del servidor con claves de cifrado administradas por Amazon S3 (SSE-S3) para su bucket de S3 para los registros de acceso de VPC Lattice, ciframos automáticamente cada archivo de registro de acceso antes de que se almacene en su bucket de S3. Para obtener más información, consulte [Registros enviados a Amazon S3](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html#AWS-logs-infrastructure-S3) en la *Guía del CloudWatch usuario de Amazon*.

### Cifrado del lado del servidor con AWS KMS claves almacenadas en AWS KMS (SSE-KMS)
<a name="kms-managed-keys"></a>

El cifrado con AWS KMS claves del lado del servidor (SSE-KMS) es similar al SSE-S3, pero con ventajas y cargos adicionales por el uso de este servicio. Existen permisos independientes para la AWS KMS clave que proporcionan protección adicional contra el acceso no autorizado a sus objetos en Amazon S3. El SSE-KMS también le proporciona un registro de auditoría que muestra cuándo y AWS KMS quién utilizó su clave. Para obtener más información, consulte [Uso del cifrado del lado del servidor con AWS Key Management Service (SSE-KMS)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html).

**Topics**
+ [Cifrado y descifrado de la clave privada de su certificado](#private-key)
+ [Contexto de cifrado para VPC Lattice](#encryption-context)
+ [Monitoreo de sus claves de cifrado para VPC Lattice](#monitoring-encryption-keys)

#### Cifrado y descifrado de la clave privada de su certificado
<a name="private-key"></a>

**El certificado ACM y la clave privada se cifran mediante una clave KMS AWS administrada que tiene el alias aws/acm.** **Puede ver el ID de clave con este alias en la AWS KMS consola, en la sección de claves administradas.AWS **

VPC Lattice no tiene acceso directo a los recursos de ACM. Utiliza AWS TLS Connection Manager para proteger y acceder a las claves privadas del certificado. Cuando usa su certificado ACM para crear un servicio de VPC Lattice, VPC Lattice asocia su certificado con TLS Connection Manager de AWS . **Para ello, se crea una concesión en AWS KMS la clave AWS gestionada con el prefijo aws/acm.** Una concesión es un instrumento de política que permite que TLS Connection Manager use claves KMS en operaciones criptográficas. La concesión le permite a la entidad principal beneficiaria (TLS Connection Manager) llamar a las operaciones de concesión especificadas en la clave KMS para descifrar la clave privada de su certificado. A continuación, TLS Connection Manager utiliza el certificado y la clave privada descifrada (texto sin formato) para establecer una conexión segura (sesión SSL/TLS) con los clientes de los servicios de VPC Lattice. Cuando el certificado se desvincula de un servicio de VPC Lattice, la concesión se retira.

Si desea eliminar el acceso a la clave KMS, le recomendamos que sustituya o elimine el certificado del servicio mediante el comando Consola de administración de AWS o del`update-service`. AWS CLI

#### Contexto de cifrado para VPC Lattice
<a name="encryption-context"></a>

Un [contexto de cifrado](https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html) es un conjunto opcional de pares clave-valor que contienen información contextual sobre el uso que se puede dar a la clave privada. AWS KMS vincula el contexto de cifrado a los datos cifrados y lo utiliza como datos autenticados adicionales para respaldar el cifrado autenticado.

Cuando las claves TLS se utilizan con VPC Lattice y TLS Connection Manager, el nombre del servicio de VPC Lattice se incluye en el contexto de cifrado utilizado para cifrar la clave en reposo. Puede comprobar para qué servicio de VPC Lattice se utilizan su certificado y su clave privada consultando el contexto de cifrado en sus CloudTrail registros, como se muestra en la siguiente sección, o consultando la pestaña **Recursos asociados de la consola** de ACM.

Para descifrar los datos, se incluye el mismo contexto de cifrado en la solicitud. VPC Lattice utiliza el mismo contexto de cifrado en todas las operaciones criptográficas de AWS KMS, donde la clave es `aws:vpc-lattice:arn` y el valor es el nombre de recurso de Amazon (ARN) del servicio VPC Lattice.

El siguiente ejemplo muestra el contexto de cifrado en el resultado de una operación como `CreateGrant`.

```
"encryptionContextEquals": {
    "aws:acm:arn": "arn:aws:acm:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
    "aws:vpc-lattice:arn": "arn:aws:vpc-lattice:us-west-2:111122223333:service/svc-0b23c1234567890ab"
}
```

#### Monitoreo de sus claves de cifrado para VPC Lattice
<a name="monitoring-encryption-keys"></a>

Cuando utilizas una clave AWS gestionada con tu servicio VPC Lattice, puedes utilizarla [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/)para realizar un seguimiento de las solicitudes a las que envía VPC Lattice. AWS KMS

**CreateGrant**  
Cuando agrega su certificado ACM a un servicio de VPC Lattice, se envía una solicitud `CreateGrant` en su nombre para que TLS Connection Manager pueda descifrar la clave privada asociada a su certificado ACM.

**Puede ver la `CreateGrant` operación como un evento en el Historial de eventos **CloudTrail**,. **CreateGrant****

A continuación se muestra un ejemplo de registro de eventos en el historial de CloudTrail eventos de la `CreateGrant` operación.

```
{
    "eventVersion": "1.08",
    "userIdentity": {
        "type": "IAMUser",
        "principalId": "EX_PRINCIPAL_ID",
        "arn": "arn:aws:iam::111122223333:user/Alice",
        "accountId": "111122223333",
        "accessKeyId": "EXAMPLE_KEY_ID",
        "sessionContext": {
            "sessionIssuer": {
                "type": "IAMUser",
                "principalId": "EX_PRINCIPAL_ID",
                "arn": "arn:aws:iam::111122223333:user/Alice",
                "accountId": "111122223333",
                "userName": "Alice"
            },
            "webIdFederationData": {},
            "attributes": {
                "creationDate": "2023-02-06T23:30:50Z",
                "mfaAuthenticated": "false"
            }
        },
        "invokedBy": "acm.amazonaws.com"
    },
    "eventTime": "2023-02-07T00:07:18Z",
    "eventSource": "kms.amazonaws.com",
    "eventName": "CreateGrant",
    "awsRegion": "us-west-2",
    "sourceIPAddress": "acm.amazonaws.com",
    "userAgent": "acm.amazonaws.com",
    "requestParameters": {
        "granteePrincipal": "tlsconnectionmanager.amazonaws.com",
        "keyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
        "operations": [
            "Decrypt"
        ],
        "constraints": {
            "encryptionContextEquals": {
                "aws:acm:arn": "arn:aws:acm:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
                "aws:vpc-lattice:arn": "arn:aws:vpc-lattice:us-west-2:111122223333:service/svc-0b23c1234567890ab"
            }
        },
        "retiringPrincipal": "acm.us-west-2.amazonaws.com"
    },
    "responseElements": {
        "grantId": "f020fe75197b93991dc8491d6f19dd3cebb24ee62277a05914386724f3d48758",
        "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
    },
    "requestID": "ba178361-8ab6-4bdd-9aa2-0d1a44b2974a",
    "eventID": "8d449963-1120-4d0c-9479-f76de11ce609",
    "readOnly": false,
    "resources": [
        {
            "accountId": "111122223333",
            "type": "AWS::KMS::Key",
            "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "111122223333",
    "eventCategory": "Management"
}
```

En el `CreateGrant` ejemplo anterior, el beneficiario principal es TLS Connection Manager y el contexto de cifrado tiene el ARN del servicio VPC Lattice.

**ListGrants**  
Puede usar su ID de clave KMS y el ID de su cuenta para llamar a la API de `ListGrants`. De este modo, obtendrá una lista de todas las concesiones para la clave KMS especificada. Para obtener más información, consulte [ListGrants](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListGrants.html).

Utilice el siguiente `ListGrants` comando AWS CLI para ver los detalles de todas las concesiones.

```
aws kms list-grants —key-id your-kms-key-id
```

A continuación, se muestra un ejemplo del resultado.

```
{
    "Grants": [
        {
            "Operations": [
                "Decrypt"
            ], 
            "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", 
            "Name": "IssuedThroughACM", 
            "RetiringPrincipal": "acm.us-west-2.amazonaws.com", 
            "GranteePrincipal": "tlsconnectionmanager.amazonaws.com", 
            "GrantId": "f020fe75197b93991dc8491d6f19dd3cebb24ee62277a05914386724f3d48758", 
            "IssuingAccount": "arn:aws:iam::111122223333:root", 
            "CreationDate": "2023-02-06T23:30:50Z", 
            "Constraints": {
                "encryptionContextEquals": {
                  "aws:acm:arn": "arn:aws:acm:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
                  "aws:vpc-lattice:arn": "arn:aws:vpc-lattice:us-west-2:111122223333:service/svc-0b23c1234567890ab"
                }
            }
        }
    ]
}
```

En el `ListGrants` ejemplo anterior, el beneficiario principal es TLS Connection Manager y el contexto de cifrado tiene el ARN del servicio VPC Lattice.

**Decrypt**  
VPC Lattice utiliza TLS Connection Manager para llamar a la operación `Decrypt` para descifrar la clave privada con el fin de servir las conexiones TLS en el servicio VPC Lattice. ****Puede ver la `Decrypt` operación como un evento en el historial de eventos, Decrypt. **CloudTrail******

A continuación se muestra un ejemplo de registro de eventos en el historial de CloudTrail eventos de la `Decrypt` operación.

```
{
    "eventVersion": "1.08",
    "userIdentity": {
        "type": "AWSService",
        "invokedBy": "tlsconnectionmanager.amazonaws.com"
    },
    "eventTime": "2023-02-07T00:07:23Z",
    "eventSource": "kms.amazonaws.com",
    "eventName": "Decrypt",
    "awsRegion": "us-west-2",
    "sourceIPAddress": "tlsconnectionmanager.amazonaws.com",
    "userAgent": "tlsconnectionmanager.amazonaws.com",
    "requestParameters": {
        "encryptionContext": {
            "aws:acm:arn": "arn:aws:acm:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
            "aws:vpc-lattice:arn": "arn:aws:vpc-lattice:us-west-2:111122223333:service/svc-0b23c1234567890ab"
        },
        "encryptionAlgorithm": "SYMMETRIC_DEFAULT"
    },
    "responseElements": null,
    "requestID": "12345126-30d5-4b28-98b9-9153da559963",
    "eventID": "abcde202-ba1a-467c-b4ba-f729d45ae521",
    "readOnly": true,
    "resources": [
        {
            "accountId": "111122223333",
            "type": "AWS::KMS::Key",
            "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "111122223333",
    "sharedEventID": "abcde202-ba1a-467c-b4ba-f729d45ae521",
    "eventCategory": "Management"
}
```

# Administración de identidades y accesos para Amazon VPC Lattice
<a name="security-iam"></a>

En las siguientes secciones, se describe cómo se puede utilizar AWS Identity and Access Management (IAM) para proteger los recursos de VPC Lattice, controlando quién puede realizar las acciones de la API de VPC Lattice.

**Topics**
+ [Cómo funciona Amazon VPC Lattice con IAM](security_iam_service-with-iam.md)
+ [Permisos de la API Amazon VPC Lattice](additional-api-permissions.md)
+ [Políticas basadas en identidad para Amazon VPC Lattice](security_iam_id-based-policies.md)
+ [Uso de roles vinculados a servicios para Amazon VPC Lattice](using-service-linked-roles.md)
+ [AWS políticas gestionadas para Amazon VPC Lattice](managed-policies.md)

# Cómo funciona Amazon VPC Lattice con IAM
<a name="security_iam_service-with-iam"></a>

Antes de utilizar IAM para administrar el acceso a VPC Lattice, conozca qué características de IAM se pueden utilizar con VPC Lattice.




| Característica de IAM | Compatibilidad con VPC Lattice | 
| --- | --- | 
|  [Políticas basadas en identidades](#security_iam_service-with-iam-id-based-policies)  |   Sí  | 
|  [Políticas basadas en recursos](#security_iam_service-with-iam-resource-based-policies)  |   Sí  | 
|  [Acciones de políticas](#security_iam_service-with-iam-id-based-policies-actions)  |   Sí  | 
|  [Recursos de políticas](#security_iam_service-with-iam-id-based-policies-resources)  |   Sí  | 
|  [Claves de condición de política](#security_iam_service-with-iam-id-based-policies-conditionkeys)  |   Sí  | 
|  [ACLs](#security_iam_service-with-iam-acls)  |   No   | 
|  [ABAC (etiquetas en políticas)](#security_iam_service-with-iam-tags)  |   Sí  | 
|  [Credenciales temporales](#security_iam_service-with-iam-roles-tempcreds)  |   Sí  | 
|  [Roles de servicio](#security_iam_service-with-iam-roles-service)  |   No   | 
|  [Roles vinculados al servicio](#security_iam_service-with-iam-roles-service-linked)  |   Sí  | 

*Para obtener una visión general de cómo funcionan VPC Lattice y otros AWS servicios con la mayoría de las funciones de IAM, consulte los [AWS servicios que funcionan con IAM en la Guía del usuario de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html).*

## Políticas basadas en identidad para VPC Lattice
<a name="security_iam_service-with-iam-id-based-policies"></a>

**Compatibilidad con las políticas basadas en identidad:** sí

Las políticas basadas en identidad son documentos de políticas de permisos JSON que puede asociar a una identidad, como un usuario de IAM, un grupo de usuarios o un rol. Estas políticas controlan qué acciones pueden realizar los usuarios y los roles, en qué recursos y en qué condiciones. Para obtener más información sobre cómo crear una política basada en la identidad, consulte [Definición de permisos de IAM personalizados con políticas administradas por el cliente](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) en la *Guía del usuario de IAM*.

Con las políticas basadas en identidades de IAM, puede especificar las acciones y los recursos permitidos o denegados, así como las condiciones en las que se permiten o deniegan las acciones. Para obtener más información sobre los elementos que puede utilizar en una política de JSON, consulte [Referencia de los elementos de la política de JSON de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html) en la *Guía del usuario de IAM*.

## Políticas basadas en recursos de VPC Lattice
<a name="security_iam_service-with-iam-resource-based-policies"></a>

**Compatibilidad con las políticas basadas en recursos:** sí

Las políticas basadas en recursos son documentos de políticas de JSON que se adjuntan a un recurso. AWS En AWS los servicios que admiten políticas basadas en recursos, los administradores de servicios pueden utilizarlos para controlar el acceso a un recurso específico de ese servicio. AWS Para el recurso al que se asocia la política, la política define qué acciones puede realizar una entidad principal especificada en ese recurso y en qué condiciones. Debe especificar una entidad principal en una política basada en recursos.

VPC Lattice admite *políticas de autenticación*, una política basada en recursos que le permite controlar el acceso a los servicios de su red de servicios. Para obtener más información, consulte [Controle el acceso a los servicios de VPC Lattice mediante políticas de autenticación](auth-policies.md).

VPC Lattice también admite políticas de permisos basadas en recursos para su integración con AWS Resource Access Manager. Puede usar estas políticas basadas en recursos para conceder permisos para administrar la conectividad con otras AWS cuentas u organizaciones para los servicios, las configuraciones de recursos y las redes de servicios. Para obtener más información, consulte [Cómo compartir las entidades de VPC Lattice](sharing.md).

## Acciones de política para VPC Lattice
<a name="security_iam_service-with-iam-id-based-policies-actions"></a>

**Compatibilidad con las acciones de políticas:** sí

En una instrucción de política de IAM, puede especificar cualquier acción de API de cualquier servicio que sea compatible con IAM. Para VPC Lattice, use el siguiente prefijo con el nombre de la acción de API: `vpc-lattice:`. Por ejemplo, `vpc-lattice:CreateService`, `vpc-lattice:CreateTargetGroup` y `vpc-lattice:PutAuthPolicy`.

Para especificar varias acciones en una única instrucción, sepárelas con comas del siguiente modo:

```
"Action": [ "vpc-lattice:action1", "vpc-lattice:action2" ]
```

También puede utilizar caracteres comodín para especificar varias acciones. Por ejemplo, puede especificar todas las acciones cuyos nombres comiencen con la palabra `Get` del siguiente modo:

```
"Action": "vpc-lattice:Get*"
```

Para ver una lista completa de las acciones de API de VPC Lattice, consulte [Acciones definidas por Amazon VPC Lattice ](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonvpclattice.html#amazonvpclattice-actions-as-permissions) en la *Referencia de autorización de servicios*.

## Recursos de políticas para VPC Lattice
<a name="security_iam_service-with-iam-id-based-policies-resources"></a>

**Compatibilidad con los recursos de políticas:** sí

En una instrucción de política de IAM, el elemento `Resource` especifica el objeto o los objetos que abarca la instrucción. En el caso de VPC Lattice, cada declaración de política de IAM se aplica a los recursos que especifique mediante su uso. ARNs

El formato del nombre de recurso de Amazon (ARN) específico depende del recurso. Cuando proporciones un ARN, sustituye el *italicized* texto por la información específica del recurso. 
+ **Suscripciones al registro de acceso:**

  ```
  "Resource": "arn:aws:vpc-lattice:region:account-id:accesslogsubscription/access-log-subscription-id"
  ```
+ **Oyentes:**

  ```
  "Resource": "arn:aws:vpc-lattice:region:account-id:service/service-id/listener/listener-id"
  ```
+ **Puertas de enlace de recursos**

  ```
  "Resource": "arn:aws:vpc-lattice:region:account-id:resourcegateway/resource-gateway-id"
  ```
+ **Configuración de recursos**

  ```
  "Resource": "arn:aws:vpc-lattice:region:account-id:resourceconfiguration/resource-configuration-id"
  ```
+ **Reglas:**

  ```
  "Resource": "arn:aws:vpc-lattice:region:account-id:service/service-id/listener/listener-id/rule/rule-id"
  ```
+ **Servicios:**

  ```
  "Resource": "arn:aws:vpc-lattice:region:account-id:service/service-id"
  ```
+ **Redes de servicios:**

  ```
  "Resource": "arn:aws:vpc-lattice:region:account-id:servicenetwork/service-network-id"
  ```
+ **Asociaciones de servicios de redes de servicios:**

  ```
  "Resource": "arn:aws:vpc-lattice:region:account-id:servicenetworkserviceassociation/service-network-service-association-id"
  ```
+ **Asociaciones de configuración de recursos de red de servicios**

  ```
  "Resource": "arn:aws:vpc-lattice:region:account-id:servicenetworkresourceassociation/service-network-resource-association-id"
  ```
+ **Asociaciones de VPC de redes de servicios:**

  ```
  "Resource": "arn:aws:vpc-lattice:region:account-id:servicenetworkvpcassociation/service-network-vpc-association-id"
  ```
+ **Grupos de destino:**

  ```
  "Resource": "arn:aws:vpc-lattice:region:account-id:targetgroup/target-group-id"
  ```

## Claves de condición de política para VPC Lattice
<a name="security_iam_service-with-iam-id-based-policies-conditionkeys"></a>

**Compatibilidad con claves de condición de políticas específicas del servicio:** sí

Los administradores pueden usar las políticas de AWS JSON para especificar quién tiene acceso a qué. Es decir, qué **entidad principal** puede realizar **acciones** en qué **recursos** y en qué **condiciones**.

El elemento `Condition` especifica cuándo se ejecutan las instrucciones en función de criterios definidos. Puede crear expresiones condicionales que utilizan [operadores de condición](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html), tales como igual o menor que, para que la condición de la política coincida con los valores de la solicitud. Para ver todas las claves de condición AWS globales, consulte las claves de [contexto de condición AWS globales](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) en la *Guía del usuario de IAM*.

*Para ver una lista de las claves de estado de VPC Lattice, consulte Claves de [condición de Amazon VPC Lattice](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonvpclattice.html#amazonvpclattice-policy-keys) en la Referencia de autorización de servicio.*

AWS admite claves de condición globales y claves de condición específicas del servicio. Para obtener información sobre las claves de condición AWS globales, consulte las claves de [contexto de condición AWS globales en la Guía](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) del usuario de *IAM*.

## Listas de control de acceso (ACLs) en VPC Lattice
<a name="security_iam_service-with-iam-acls"></a>

**Soporta ACLs**: No 

Las listas de control de acceso (ACLs) controlan qué directores (miembros de la cuenta, usuarios o roles) tienen permisos para acceder a un recurso. ACLs son similares a las políticas basadas en recursos, aunque no utilizan el formato de documento de políticas JSON.

## Control de acceso basado en atributos (ABAC) con VPC Lattice
<a name="security_iam_service-with-iam-tags"></a>

**Admite ABAC (etiquetas en las políticas):** sí

El control de acceso basado en atributos (ABAC) es una estrategia de autorización que define permisos en función de atributos denominados etiquetas. Puede adjuntar etiquetas a las entidades y AWS los recursos de IAM y, a continuación, diseñar políticas de ABAC para permitir las operaciones cuando la etiqueta del director coincida con la etiqueta del recurso.

Para controlar el acceso en función de etiquetas, debe proporcionar información de las etiquetas en el [elemento de condición](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) de una política utilizando las claves de condición `aws:ResourceTag/key-name`, `aws:RequestTag/key-name` o `aws:TagKeys`.

Si un servicio admite las tres claves de condición para cada tipo de recurso, el valor es **Sí** para el servicio. Si un servicio admite las tres claves de condición solo para algunos tipos de recursos, el valor es **Parcial**.

*Para obtener más información sobre ABAC, consulte [Definición de permisos con la autorización de ABAC](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html) en la Guía del usuario de IAM*. Para ver un tutorial con los pasos para configurar ABAC, consulte [Uso del control de acceso basado en atributos (ABAC)](https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html) en la *Guía del usuario de IAM*.

## Uso de credenciales temporales con VPC Lattice
<a name="security_iam_service-with-iam-roles-tempcreds"></a>

**Compatibilidad con credenciales temporales:** sí

Las credenciales temporales proporcionan acceso a AWS los recursos a corto plazo y se crean automáticamente cuando se utiliza la federación o se cambia de rol. AWS recomienda generar credenciales temporales de forma dinámica en lugar de utilizar claves de acceso a largo plazo. Para obtener más información, consulte [Credenciales de seguridad temporales en IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html) y [Servicios de AWS que funcionan con IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) en la *Guía del usuario de IAM*.

## Roles de servicio para VPC Lattice
<a name="security_iam_service-with-iam-roles-service"></a>

**Compatible con roles de servicio:** No 

 Un rol de servicio es un [rol de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) que asume un servicio para realizar acciones en su nombre. Un administrador de IAM puede crear, modificar y eliminar un rol de servicio desde IAM. Para obtener más información, consulte [Crear un rol para delegar permisos a un Servicio de AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) en la *Guía del usuario de IAM*. 

**aviso**  
Cambiar los permisos de un rol de servicio podría interrumpir la funcionalidad de VPC Lattice. Edite los roles de servicio solo cuando VPC Lattice proporcione orientación para hacerlo.

## Roles vinculados a servicios para VPC Lattice
<a name="security_iam_service-with-iam-roles-service-linked"></a>

**Compatible con roles vinculados al servicio:** sí

 Un rol vinculado a un servicio es un tipo de rol de servicio que está vinculado a un. Servicio de AWS El servicio puede asumir el rol para realizar una acción en su nombre. Los roles vinculados al servicio aparecen en usted Cuenta de AWS y son propiedad del servicio. Un administrador de IAM puede ver, pero no editar, los permisos de los roles vinculados a servicios. 

Para obtener información sobre cómo crear o administrar roles vinculados a servicios de VPC Lattice, consulte [Uso de roles vinculados a servicios para Amazon VPC Lattice](using-service-linked-roles.md).

# Permisos de la API Amazon VPC Lattice
<a name="additional-api-permissions"></a>

Debe conceder a las identidades de IAM (tales como usuarios o roles) permisos para llamar a las acciones de la API de VPC Lattice que necesiten, tal y como se describe en [Acciones de política para VPC Lattice](security_iam_service-with-iam.md#security_iam_service-with-iam-id-based-policies-actions). Además, para algunas acciones de VPC Lattice, debes conceder permiso a las identidades de IAM para invocar acciones específicas desde otras. AWS APIs

## Permisos necesarios para la API
<a name="required-API-permissions"></a>

Cuando llame a las siguientes acciones de la API, debe conceder a los usuarios de IAM permiso para llamar a las acciones especificadas.

`CreateResourceConfiguration`  
+ `vpc-lattice:CreateResourceConfiguration`
+ `ec2:DescribeSubnets`
+ `rds:DescribeDBInstances`
+ `rds:DescribeDBClusters`

`CreateResourceGateway`  
+ `vpc-lattice:CreateResourceGateway`
+ `ec2:AssignPrivateIpAddresses`
+ `ec2:AssignIpv6Addresses`
+ `ec2:CreateNetworkInterface`
+ `ec2:CreateNetworkInterfacePermission`
+ `ec2:DeleteNetworkInterface`
+ `ec2:DescribeNetworkInterfaces`
+ `ec2:DescribeSecurityGroups`
+ `ec2:DescribeSubnets`

`DeleteResourceGateway`  
+ `vpc-lattice:DeleteResourceGateway`
+ `ec2:DeleteNetworkInterface`

`UpdateResourceGateway`  
+ `vpc-lattice:UpdateResourceGateway`
+ `ec2:AssignPrivateIpAddresses`
+ `ec2:AssignIpv6Addresses`
+ `ec2:UnassignPrivateIpAddresses`
+ `ec2:CreateNetworkInterface`
+ `ec2:CreateNetworkInterfacePermission`
+ `ec2:DeleteNetworkInterface`
+ `ec2:DescribeNetworkInterfaces`
+ `ec2:DescribeSecurityGroups`
+ `ec2:DescribeSubnets`
+ `ec2:ModifyNetworkInterfaceAttribute`

`CreateServiceNetworkResourceAssociation`  
+ `vpc-lattice:CreateServiceNetworkResourceAssociation`
+ `ec2:AssignIpv6Addresses`
+ `ec2:CreateNetworkInterface`
+ `ec2:CreateNetworkInterfacePermission`
+ `ec2:DescribeNetworkInterfaces`

`CreateServiceNetworkVpcAssociation`  
+ `vpc-lattice:CreateServiceNetworkVpcAssociation`
+ `ec2:DescribeVpcs`
+ `ec2:DescribeSecurityGroups` (Solo es necesario cuando se proporcionan grupos de seguridad)

`UpdateServiceNetworkVpcAssociation`  
+ `vpc-lattice:UpdateServiceNetworkVpcAssociation`
+ `ec2:DescribeSecurityGroups` (Solo es necesario cuando se proporcionan grupos de seguridad)

`CreateTargetGroup`  
+ `vpc-lattice:CreateTargetGroup`
+ `ec2:DescribeVpcs`

`RegisterTargets`  
+ `vpc-lattice:RegisterTargets`
+ `ec2:DescribeInstances` (Solo es necesario cuando `INSTANCE` es el tipo de grupo de destino)
+ `ec2:DescribeVpcs` (Solo es necesario cuando `INSTANCE` o `IP` es el tipo de grupo de destino)
+ `ec2:DescribeSubnets` (Solo es necesario cuando `INSTANCE` o `IP` es el tipo de grupo de destino)
+ `lambda:GetFunction` (Solo es necesario cuando `LAMBDA` es el tipo de grupo de destino)
+ `lambda:AddPermission` (Solo es necesario si el grupo de destino aún no tiene permiso para invocar la función de Lambda especificada)

`DeregisterTargets`  
+ `vpc-lattice:DeregisterTargets`

`CreateAccessLogSubscription`  
+ `vpc-lattice:CreateAccessLogSubscription`
+ `logs:GetLogDelivery`
+ `logs:CreateLogDelivery`

`DeleteAccessLogSubscription`  
+ `vpc-lattice:DeleteAccessLogSubscription`
+ `logs:DeleteLogDelivery`

`UpdateAccessLogSubscription`  
+ `vpc-lattice:UpdateAccessLogSubscription`
+ `logs:UpdateLogDelivery`

# Políticas basadas en identidad para Amazon VPC Lattice
<a name="security_iam_id-based-policies"></a>

De forma predeterminada, los usuarios y roles no tienen permiso para crear ni modificar los recursos de VPC Lattice. Un administrador de IAM puede crear políticas de IAM para conceder permisos a los usuarios para realizar acciones en los recursos que necesitan.

Para obtener información acerca de cómo crear una política basada en identidades de IAM mediante el uso de estos documentos de políticas JSON de ejemplo, consulte [Creación de políticas de IAM (consola)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html) en la *Guía del usuario de IAM*.

*Para obtener más información sobre las acciones y los tipos de recursos definidos por VPC Lattice, incluido el formato de cada uno de los ARNs tipos de recursos, consulte [Actions, Resources and Condition Keys for Amazon VPC Lattice](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonvpclattice.html) en la Referencia de autorización de servicios.*

**Topics**
+ [Prácticas recomendadas sobre las políticas](#security_iam_service-with-iam-policy-best-practices)
+ [Permisos necesarios adicionales para obtener acceso completo](#security_iam_id-based-policy-additional-permissions)
+ [Ejemplos de políticas basadas en identidad de VPC Lattice](#security_iam_id-based-policy-examples)

## Prácticas recomendadas sobre las políticas
<a name="security_iam_service-with-iam-policy-best-practices"></a>

Las políticas basadas en identidad determinan si alguien puede crear, acceder o eliminar los recursos de VPC Lattice de la cuenta. Estas acciones pueden generar costos adicionales para su Cuenta de AWS. Siga estas directrices y recomendaciones al crear o editar políticas basadas en identidades:
+ **Comience con las políticas AWS administradas y avance hacia los permisos con privilegios mínimos: para empezar a conceder permisos** a sus usuarios y cargas de trabajo, utilice las *políticas AWS administradas* que otorgan permisos para muchos casos de uso comunes. Están disponibles en su. Cuenta de AWS Le recomendamos que reduzca aún más los permisos definiendo políticas administradas por el AWS cliente que sean específicas para sus casos de uso. Con el fin de obtener más información, consulte las [políticas administradas por AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) o las [políticas administradas por AWS para funciones de tarea](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html) en la *Guía de usuario de IAM*.
+ **Aplique permisos de privilegio mínimo**: cuando establezca permisos con políticas de IAM, conceda solo los permisos necesarios para realizar una tarea. Para ello, debe definir las acciones que se pueden llevar a cabo en determinados recursos en condiciones específicas, también conocidos como *permisos de privilegios mínimos*. Con el fin de obtener más información sobre el uso de IAM para aplicar permisos, consulte [Políticas y permisos en IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) en la *Guía del usuario de IAM*.
+ **Utilice condiciones en las políticas de IAM para restringir aún más el acceso**: puede agregar una condición a sus políticas para limitar el acceso a las acciones y los recursos. Por ejemplo, puede escribir una condición de políticas para especificar que todas las solicitudes deben enviarse utilizando SSL. También puedes usar condiciones para conceder el acceso a las acciones del servicio si se utilizan a través de una acción específica Servicio de AWS, por ejemplo CloudFormation. Para obtener más información, consulte [Elementos de la política de JSON de IAM: Condición](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) en la *Guía del usuario de IAM*.
+ **Utiliza el analizador de acceso de IAM para validar las políticas de IAM con el fin de garantizar la seguridad y funcionalidad de los permisos**: el analizador de acceso de IAM valida políticas nuevas y existentes para que respeten el lenguaje (JSON) de las políticas de IAM y las prácticas recomendadas de IAM. El analizador de acceso de IAM proporciona más de 100 verificaciones de políticas y recomendaciones procesables para ayudar a crear políticas seguras y funcionales. Para más información, consulte [Validación de políticas con el Analizador de acceso de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html) en la *Guía del usuario de IAM*.
+ **Requerir autenticación multifactor (MFA**): si tiene un escenario que requiere usuarios de IAM o un usuario raíz en Cuenta de AWS su cuenta, active la MFA para mayor seguridad. Para exigir la MFA cuando se invoquen las operaciones de la API, añada condiciones de MFA a sus políticas. Para más información, consulte [Acceso seguro a la API con MFA](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html) en la *Guía del usuario de IAM*.

Para obtener más información sobre las prácticas recomendadas de IAM, consulte [Prácticas recomendadas de seguridad en IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) en la *Guía del usuario de IAM*.

## Permisos necesarios adicionales para obtener acceso completo
<a name="security_iam_id-based-policy-additional-permissions"></a>

Para usar otros AWS servicios con los que está integrado VPC Lattice y todo el conjunto de funciones de VPC Lattice, debe tener permisos adicionales específicos. Estos permisos no están incluidos en la política administrada de `VPCLatticeFullAccess` debido al riesgo de escalada de privilegios [suplente confuso](https://docs.aws.amazon.com//IAM/latest/UserGuide/confused-deputy.html). 

Debe adjuntar la siguiente política a su rol y utilizarla junto con la política administrada de `VPCLatticeFullAccess`.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "firehose:TagDeliveryStream",
                "lambda:AddPermission",
                "s3:PutBucketPolicy"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "logs:PutResourcePolicy"
            ],
            "Resource": "*",
            "Condition": {
                "ForAnyValue:StringEquals": {
                    "aws:CalledVia": [
                        "vpc-lattice.amazonaws.com"
                    ]
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:AttachRolePolicy",
                "iam:PutRolePolicy"
            ],
            "Resource": "arn:aws:iam::*:role/aws-service-role/vpc-lattice.amazonaws.com/AWSServiceRoleForVpcLattice"
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:AttachRolePolicy",
                "iam:PutRolePolicy"
            ],
            "Resource": "arn:aws:iam::*:role/aws-service-role/delivery.logs.amazonaws.com/AWSServiceRoleForLogDelivery*"
        }
    ]
}
```

------

Esta política ofrece los siguientes permisos adicionales:
+ `iam:AttachRolePolicy`: permite asociar la política administrada especificada para el rol de IAM especificado. 
+ `iam:PutRolePolicy`: permite agregar o actualizar un documento de política insertado que está integrado en el rol de IAM especificado.
+ `s3:PutBucketPolicy`: permite aplicar una política de bucket a un bucket de Amazon S3.
+ `firehose:TagDeliveryStream`: permite actualizar o agregar etiquetas a los flujos de entrega de Firehose.

## Ejemplos de políticas basadas en identidad de VPC Lattice
<a name="security_iam_id-based-policy-examples"></a>

**Topics**
+ [Ejemplo de política: administrar las asociaciones de VPC a una red de servicios](#security_iam_id-based-policy-examples-vpc-to-service-network-association)
+ [Ejemplo de política: crear asociaciones de servicios a una red de servicios](#security_iam_id-based-policy-examples-service-to-service-network-association)
+ [Ejemplo de política: añadir etiquetas a los recursos](#security_iam_id-based-policy-examples-tag-resources)
+ [Ejemplo de política: crear un rol vinculado a un servicio](#security_iam_id-based-policy-examples-service-linked-role)

### Ejemplo de política: administrar las asociaciones de VPC a una red de servicios
<a name="security_iam_id-based-policy-examples-vpc-to-service-network-association"></a>

En el siguiente ejemplo se muestra una política que otorga a los usuarios con esta política el permiso para crear, actualizar y eliminar las asociaciones de VPC a una red de servicios, pero solo para la VPC y la red de servicios especificada en la condición. Para obtener más información acerca de cómo especificar claves de condición, consulte [Claves de condición de política para VPC Lattice](security_iam_service-with-iam.md#security_iam_service-with-iam-id-based-policies-conditionkeys). 

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect": "Allow",
         "Action": [
            "vpc-lattice:CreateServiceNetworkVpcAssociation",
            "vpc-lattice:UpdateServiceNetworkVpcAssociation",
            "vpc-lattice:DeleteServiceNetworkVpcAssociation"
         ],
         "Resource": [
            "*"
         ],
         "Condition": {
            "StringEquals": { 
               "vpc-lattice:ServiceNetworkArn": "arn:aws:vpc-lattice:us-west-2:123456789012:servicenetwork/sn-903004f88example",
               "vpc-lattice:VpcId": "vpc-1a2b3c4d"
            }
         }
      }
   ]
}
```

------

### Ejemplo de política: crear asociaciones de servicios a una red de servicios
<a name="security_iam_id-based-policy-examples-service-to-service-network-association"></a>

Si no utiliza claves de condición para controlar el acceso a los recursos de VPC Lattice, puede especificar los recursos ARNs del `Resource` elemento para controlar el acceso.

El siguiente ejemplo muestra una política que limita las asociaciones de servicios a una red de servicios que los usuarios con esta política puedan crear especificando el servicio y la red ARNs de servicios que se pueden utilizar con la acción de la `CreateServiceNetworkServiceAssociation` API. Para obtener más información sobre cómo especificar los valores de los ARN, consulte [Recursos de políticas para VPC Lattice](security_iam_service-with-iam.md#security_iam_service-with-iam-id-based-policies-resources).

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect": "Allow",
         "Action": [
            "vpc-lattice:CreateServiceNetworkServiceAssociation"
         ],
         "Resource": [
            "arn:aws:vpc-lattice:us-west-2:123456789012:servicenetworkserviceassociation/*",
            "arn:aws:vpc-lattice:us-west-2:123456789012:service/svc-04d5cc9b88example",
            "arn:aws:vpc-lattice:us-west-2:123456789012:servicenetwork/sn-903004f88example"
         ]
      }
   ]
}
```

------

### Ejemplo de política: añadir etiquetas a los recursos
<a name="security_iam_id-based-policy-examples-tag-resources"></a>

En el siguiente ejemplo se muestra una política que otorga a los usuarios con esta política permiso para crear etiquetas en los recursos de VPC Lattice. 

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect": "Allow",
         "Action": [
            "vpc-lattice:TagResource"
         ],
         "Resource": "arn:aws:vpc-lattice:us-west-2:123456789012:*/*"
      }
   ]
}
```

------

### Ejemplo de política: crear un rol vinculado a un servicio
<a name="security_iam_id-based-policy-examples-service-linked-role"></a>

VPC Lattice requiere permisos para crear un rol vinculado a un servicio la primera vez que un usuario de VPC Lattice crea Cuenta de AWS recursos de VPC Lattice. Si el rol vinculado al servicio aún no existe, VPC Lattice lo crea en su cuenta. La función vinculada al servicio otorga permisos a VPC Lattice para que pueda llamar a otras personas en su nombre. Servicios de AWS Para obtener más información, consulte [Uso de roles vinculados a servicios para Amazon VPC Lattice](using-service-linked-roles.md).

Para que la creación automática de roles se realice correctamente, los usuarios deben disponer de permisos para la acción `iam:CreateServiceLinkedRole`.

```
"Action": "iam:CreateServiceLinkedRole"
```

En el siguiente ejemplo se muestra una política que concede a los usuarios con esta política permiso para crear un rol vinculado a servicios para VPC Lattice.

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect": "Allow",
         "Action": "iam:CreateServiceLinkedRole",
         "Resource": "arn:aws:iam::*:role/aws-service-role/vpc-lattice.amazonaws.com/AWSServiceRoleForVpcLattice",
         "Condition": {
            "StringLike": {
               "iam:AWSServiceName":"vpc-lattice.amazonaws.com"
            }
         }
      }
   ]
}
```

------

Para obtener más información, consulte [Permisos de roles vinculados a servicios](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#service-linked-role-permissions) en la *Guía del usuario de IAM*.

# Uso de roles vinculados a servicios para Amazon VPC Lattice
<a name="using-service-linked-roles"></a>

Amazon VPC Lattice utiliza un rol vinculado a un servicio para los permisos que necesita para llamar a otros en su nombre. Servicios de AWS Para obtener más información, consulte [Roles vinculados al servicio](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create-service-linked-role.html) en la *Guía del usuario de IAM*.

VPC Lattice usa el rol vinculado al servicio denominado. AWSServiceRoleForVpcLattice

## Permisos de roles vinculados a servicios de VPC Lattice
<a name="slr-permissions"></a>

El rol vinculado a servicio de **AWSServiceRoleForVpcLattice** confía en el siguiente servicio para asumir el rol:
+ `vpc-lattice.amazonaws.com`

La política de permisos de roles denominada AWSVpcLatticeServiceRolePolicy permite a VPC Lattice publicar CloudWatch métricas en el espacio de nombres. `AWS/VpcLattice` *Para obtener más información, consulte la Referencia de políticas [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSVpcLatticeServiceRolePolicy.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSVpcLatticeServiceRolePolicy.html)administradas AWS .*

Debe configurar permisos para permitir a una entidad de IAM (como un usuario, grupo o rol) crear, editar o eliminar un rol vinculado a servicios. Para obtener más información, consulte [Ejemplo de política: crear un rol vinculado a un servicio](security_iam_id-based-policies.md#security_iam_id-based-policy-examples-service-linked-role).

## Crear un rol vinculado a un servicio para VPC Lattice
<a name="create-slr"></a>

No necesita crear manualmente un rol vinculado a servicios. Cuando crea recursos de VPC Lattice en la Consola de administración de AWS, la o la API AWS CLI AWS , VPC Lattice crea el rol vinculado al servicio por usted.

Si elimina este rol vinculado a servicios y necesita crearlo de nuevo, puede utilizar el mismo proceso para volver a crear el rol en su cuenta. Al crear recursos de VPC Lattice, VPC Lattice vuelve a crear el rol vinculado a servicios por usted.

## Edición de un rol vinculado a un servicio para VPC Lattice
<a name="edit-slr"></a>

Puede utilizar IAM para editar la descripción de **AWSServiceRoleForVpcLattice**. Para obtener más información, consulte la [Descripción sobre cómo editar un rol vinculado al servicio](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_update-service-linked-role.html#edit-service-linked-role-iam-console) en la *Guía del usuario de IAM*.

## Eliminar un rol vinculado a un servicio para VPC Lattice
<a name="delete-slr"></a>

Si ya no necesita usar Amazon VPC Lattice, le recomendamos que lo elimine. **AWSServiceRoleForVpcLattice**

Solo puede eliminar este rol vinculado a un servicio después de eliminar todos los recursos de VPC Lattice en su Cuenta de AWS.

Utilice la consola de IAM AWS CLI, la o la AWS API para eliminar la función vinculada al **AWSServiceRoleForVpcLattice**servicio. Para obtener más información, consulte [Eliminación de un rol vinculado a servicios](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_delete.html#id_roles_manage_delete_slr) en la *Guía del usuario de IAM*.

Después de eliminar un rol vinculado a un servicio, VPC Lattice crea de nuevo el rol si se crean recursos de VPC Lattice en su Cuenta de AWS.

## Regiones admitidas para los roles vinculados a servicios de VPC Lattice
<a name="slr-regions"></a>

VPC Lattice admite el uso de roles vinculados a servicios en todas las regiones en las que el servicio esté disponible.

# AWS políticas gestionadas para Amazon VPC Lattice
<a name="managed-policies"></a>

Una política AWS gestionada es una política independiente creada y administrada por. AWS AWS Las políticas administradas están diseñadas para proporcionar permisos para muchos casos de uso comunes, de modo que pueda empezar a asignar permisos a usuarios, grupos y funciones.

Ten en cuenta que es posible que las políticas AWS administradas no otorguen permisos con privilegios mínimos para tus casos de uso específicos, ya que están disponibles para que los usen todos los AWS clientes. Se recomienda definir [políticas administradas por el cliente](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#customer-managed-policies) específicas para sus casos de uso a fin de reducir aún más los permisos.

No puedes cambiar los permisos definidos en AWS las políticas administradas. Si AWS actualiza los permisos definidos en una política AWS administrada, la actualización afecta a todas las identidades principales (usuarios, grupos y roles) a las que está asociada la política. AWS es más probable que actualice una política AWS administrada cuando Servicio de AWS se lance una nueva o cuando estén disponibles nuevas operaciones de API para los servicios existentes.

Para obtener más información, consulte [Políticas administradas por AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) en la *Guía del usuario de IAM*.

## AWS política gestionada: VPCLattice FullAccess
<a name="vpc-lattice-fullaccess-policy"></a>

Esta política proporciona acceso completo a Amazon VPC Lattice y acceso limitado a otros servicios dependientes. Incluye permisos para hacer lo siguiente:
+ ACM: recupera el ARN del SSL/TLS certificado para los nombres de dominio personalizados.
+ CloudWatch — Ver los registros de acceso y los datos de monitoreo.
+ CloudWatch Registros: configure y envíe los registros de acceso a CloudWatch Logs.
+ Amazon EC2: configure las interfaces de red y recupere información sobre las instancias EC2 y. VPCs Se utiliza para crear configuraciones de recursos, pasarelas de recursos y grupos de objetivos, configurar asociaciones de entidades de VPC Lattice y registrar destinos.
+ Elastic Load Balancing: recupere información sobre un equilibrador de carga de aplicación para registrarlo como destino.
+ Firehose: recupera información sobre los flujos de entrega que se utilizan para almacenar los registros de acceso.
+ Lambda: recupere información sobre una función de Lambda para registrarla como destino.
+ Amazon RDS: recupere información sobre clústeres e instancias de RDS.
+ Amazon S3: recupere información acerca de los buckets de S3 utilizados para almacenar registros de acceso.

Para ver los permisos de esta política, consulte [VPCLatticeFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/VPCLatticeFullAccess.html) en la *Referencia de la política administrada de AWS *.

Para usar otros AWS servicios con los que está integrado VPC Lattice y todo el conjunto de funciones de VPC Lattice, debe tener permisos adicionales específicos. Estos permisos no están incluidos en la política administrada `VPCLatticeFullAccess` debido al riesgo de escalada de privilegios [suplente confuso](https://docs.aws.amazon.com//IAM/latest/UserGuide/confused-deputy.html). Para obtener más información, consulte [Permisos necesarios adicionales para obtener acceso completo](security_iam_id-based-policies.md#security_iam_id-based-policy-additional-permissions).

## AWS política gestionada: VPCLattice ReadOnlyAccess
<a name="vpc-lattice-read-onlyaccess-policy"></a>

Esta política proporciona acceso de solo lectura a Amazon VPC Lattice y acceso limitado a otros servicios dependientes. Incluye permisos para hacer lo siguiente:
+ ACM: recupera el ARN del SSL/TLS certificado para los nombres de dominio personalizados.
+ CloudWatch — Ver los registros de acceso y los datos de monitoreo.
+ CloudWatch Registros: consulte la información de entrega de registros para las suscripciones a los registros de acceso.
+ Amazon EC2: recupere información sobre las instancias EC2 y cree grupos de objetivos y VPCs registre los objetivos.
+ Elastic Load Balancing: recupere información sobre un equilibrador de carga de aplicación.
+ Firehose: recupera información sobre los flujos de entrega para acceder a la entrega de registros.
+ Lambda: consulte información acerca de una función de Lambda.
+ Amazon RDS: recupere información sobre clústeres e instancias de RDS.
+ Amazon S3: recupere información sobre los buckets de S3 para la entrega de registros de acceso.

Para ver los permisos de esta política, consulte [VPCLatticeReadOnlyAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/VPCLatticeReadOnlyAccess.html) en la *Referencia de la política administrada de AWS *.

## AWS política gestionada: VPCLattice ServicesInvokeAccess
<a name="vpc-lattice-services-invoke-access-policy"></a>

Esta política proporciona acceso para invocar los servicios de Amazon VPC Lattice.

Para ver los permisos de esta política, consulte [VPCLatticeServicesInvokeAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/VPCLatticeServicesInvokeAccess.html) en la *Referencia de la política administrada de AWS *.

## AWS política gestionada: AWSVpc LatticeServiceRolePolicy
<a name="service-linked-role-policy"></a>

Esta política se adjunta a un rol vinculado a un servicio denominado **AWSServiceRoleForVpcLattice**para permitir que VPC Lattice realice acciones en su nombre. No puede adjuntar esta política a sus entidades de IAM. Para obtener más información, consulte [Uso de roles vinculados a servicios para Amazon VPC Lattice](using-service-linked-roles.md).

Para ver los permisos de esta política, consulte [AWSVpcLatticeServiceRolePolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSVpcLatticeServiceRolePolicy.html) en la *Referencia de la política administrada de AWS *.

## Actualizaciones de VPC Lattice a las políticas gestionadas AWS
<a name="policy-updates"></a>

Consulte los detalles sobre las actualizaciones de las políticas AWS administradas para VPC Lattice desde que este servicio comenzó a realizar un seguimiento de estos cambios. Para obtener alertas automáticas sobre cambios en esta página, suscríbase a la fuente RSS para consultar la Guía del usuario de VPC Lattice.


| Cambio | Descripción | Fecha | 
| --- | --- | --- | 
| [VPCLatticeFullAccess](#vpc-lattice-fullaccess-policy) | VPC Lattice añade permisos de solo lectura para describir los clústeres e instancias de Amazon RDS. | 1 de diciembre de 2024 | 
| [VPCLatticeReadOnlyAccess](#vpc-lattice-read-onlyaccess-policy) | VPC Lattice añade permisos de solo lectura para describir los clústeres e instancias de Amazon RDS. | 1 de diciembre de 2024 | 
| [AWSVpcLatticeServiceRolePolicy](#service-linked-role-policy) | VPC Lattice añade permisos para permitir que VPC Lattice cree una interfaz de red gestionada por el solicitante. | 1 de diciembre de 2024 | 
| [VPCLatticeFullAccess](#vpc-lattice-fullaccess-policy) | VPC Lattice añade una nueva política para conceder permisos de acceso total a Amazon VPC Lattice y acceso limitado a otros servicios dependientes. | 31 de marzo de 2023 | 
| [VPCLatticeReadOnlyAccess](#vpc-lattice-read-onlyaccess-policy) | VPC Lattice añade una nueva política para conceder permisos de acceso de solo lectura a Amazon VPC Lattice y acceso limitado a otros servicios dependientes. | 31 de marzo de 2023 | 
| [VPCLatticeServicesInvokeAccess](#vpc-lattice-services-invoke-access-policy) | VPC Lattice añade una nueva política para conceder acceso para invocar los servicios de Amazon VPC Lattice. | 31 de marzo de 2023 | 
| [AWSVpcLatticeServiceRolePolicy](#service-linked-role-policy) | VPC Lattice añade permisos a su función vinculada al servicio para permitir que VPC Lattice publique métricas en el espacio de nombres. CloudWatch AWS/VpcLattice La AWSVpcLatticeServiceRolePolicy política incluye el permiso para activar la acción de la API. CloudWatch [PutMetricData](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutMetricData.html) Para obtener más información, consulte [Uso de roles vinculados a servicios para Amazon VPC Lattice](using-service-linked-roles.md). | 5 de diciembre de 2022 | 
|  Inicio de seguimiento de cambios de VPC Lattice  |  VPC Lattice comenzó a realizar un seguimiento de los cambios en sus AWS políticas gestionadas.  | 5 de diciembre de 2022 | 

# Validación de la conformidad para Amazon VPC Lattice
<a name="compliance-validation"></a>

Los auditores externos evalúan la seguridad y la conformidad de Amazon VPC Lattice como parte de varios AWS programas de conformidad. 

Para saber si un programa de conformidad Servicio de AWS se encuentra dentro del ámbito de aplicación de programas de conformidad específicos, consulte [Servicios de AWS Alcance por programa de conformidad Servicios de AWS](https://aws.amazon.com/compliance/services-in-scope/) y elija el programa de conformidad que le interese. Para obtener información general, consulte Programas de [AWS cumplimiento > Programas AWS](https://aws.amazon.com/compliance/programs/) .

Puede descargar informes de auditoría de terceros utilizando AWS Artifact. Para obtener más información, consulte [Descarga de informes en AWS Artifact](https://docs.aws.amazon.com/artifact/latest/ug/downloading-documents.html) .

Su responsabilidad de cumplimiento al Servicios de AWS utilizarlos viene determinada por la confidencialidad de sus datos, los objetivos de cumplimiento de su empresa y las leyes y reglamentos aplicables. Para obtener más información sobre su responsabilidad de conformidad al utilizarlos Servicios de AWS, consulte [AWS la documentación de seguridad](https://docs.aws.amazon.com/security/).

# Acceda a Amazon VPC Lattice mediante puntos de enlace de interfaz ()AWS PrivateLink
<a name="vpc-interface-endpoints"></a>

Puede establecer una conexión privada entre la VPC y Amazon VPC Lattice mediante la creación de un *punto de conexión de VPC de interfaz*. Los puntos finales de la interfaz funcionan con una tecnología que le permite acceder de forma privada a VPC APIs Lattice sin una puerta de enlace a Internet, un dispositivo NAT, una conexión VPN o una conexión. [AWS PrivateLink](https://aws.amazon.com/privatelink/) Direct Connect Las instancias de su VPC no necesitan direcciones IP públicas para comunicarse con VPC Lattice. APIs 

Cada punto de conexión de la interfaz está representado por una o más [interfaces de red](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html) en las subredes.

## Consideraciones para los puntos de conexión de VPC de interfaz
<a name="vpc-endpoint-considerations"></a>

*Antes de configurar un punto final de VPC de interfaz para VPC Lattice, asegúrese de revisar [Access Servicios de AWS](https://docs.aws.amazon.com/vpc/latest/privatelink/privatelink-access-aws-services.html) Through en la guía. AWS PrivateLinkAWS PrivateLink *

VPC Lattice admite realizar llamadas a todas sus acciones de la API desde su VPC. 

## Creación de un punto de conexión de VPC de interfaz para VPC Lattice
<a name="vpc-endpoint-create"></a>

Puede crear un punto de conexión de VPC para el servicio VPC Lattice mediante la consola de Amazon VPC o el (). AWS Command Line Interface AWS CLI*Para obtener más información, consulte [Crear un punto final de VPC de interfaz](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html) en la AWS PrivateLink Guía.*

Cree un punto de conexión de VPC para VPC Lattice con el siguiente nombre de servicio: 

`com.amazonaws.region.vpc-lattice`

Si habilita el DNS privado para el punto de conexión, puede realizar solicitudes de API a VPC Lattice usando su nombre de DNS predeterminado para la región, por ejemplo, `vpc-lattice.us-east-1.amazonaws.com`.

# Resiliencia de Amazon VPC Lattice
<a name="disaster-recovery-resiliency"></a>

La infraestructura AWS global se basa Regiones de AWS en zonas de disponibilidad. 

Regiones de AWS proporcionan varias zonas de disponibilidad aisladas y separadas físicamente, que están conectadas mediante redes de baja latencia, alto rendimiento y alta redundancia. 

Con las zonas de disponibilidad, puede diseñar y utilizar aplicaciones y bases de datos que realizan una conmutación por error automática entre las zonas sin interrupciones. Las zonas de disponibilidad tienen una mayor disponibilidad, tolerancia a errores y escalabilidad que las infraestructuras tradicionales de uno o varios centros de datos. 

[Para obtener más información sobre las zonas de disponibilidad Regiones de AWS y las zonas de disponibilidad, consulte Infraestructura global.AWS](https://aws.amazon.com/about-aws/global-infrastructure/)

# Seguridad de infraestructura en Amazon VPC Lattice
<a name="infrastructure-security"></a>

Como servicio gestionado, Amazon VPC Lattice está protegido por la seguridad de la red AWS global. Para obtener información sobre los servicios AWS de seguridad y cómo se AWS protege la infraestructura, consulte Seguridad [AWS en la nube](https://aws.amazon.com/security/). Para diseñar su AWS entorno utilizando las mejores prácticas de seguridad de la infraestructura, consulte [Protección de infraestructuras en un marco](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/infrastructure-protection.html) de buena * AWS arquitectura basado en el pilar de la seguridad*.

Las llamadas a la API AWS publicadas se utilizan para acceder a VPC Lattice a través de la red. Los clientes deben admitir lo siguiente:
+ Seguridad de la capa de transporte (TLS). Exigimos TLS 1.2 y recomendamos TLS 1.3.
+ Conjuntos de cifrado con confidencialidad directa total (PFS) como DHE (Ephemeral Diffie-Hellman) o ECDHE (Elliptic Curve Ephemeral Diffie-Hellman). La mayoría de los sistemas modernos como Java 7 y posteriores son compatibles con estos modos.