

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.

# Prevención de la sustitución confusa entre servicios
<a name="cross-service-confused-deputy-prevention"></a>

**importante**  
Aviso de fin del soporte: los clientes actuales podrán utilizar Amazon QLDB hasta que finalice el soporte, el 31 de julio de 2025. Para obtener más información, consulte [Migración de un registro de Amazon QLDB a Amazon Aurora](https://aws.amazon.com/blogs/database/migrate-an-amazon-qldb-ledger-to-amazon-aurora-postgresql/) PostgreSQL.

El problema de la sustitución confusa es un problema de seguridad en el que una entidad que no tiene permiso para realizar una acción puede obligar a una entidad con más privilegios a realizar la acción. En AWS, la suplantación de identidad entre servicios puede provocar el confuso problema de un diputado.

La suplantación entre servicios puedes producirse cuando un servicio (el *servicio que lleva a cabo las llamadas*) llama a otro servicio (el *servicio al que se llama*). El servicio que lleva a cabo las llamadas se puedes manipular para utilizar sus permisos a fin de actuar en función de los recursos de otro cliente de una manera en la que no debe tener permiso para acceder. Para evitar el confuso problema de los diputados, AWS proporciona herramientas que lo ayudan a proteger los datos de todos los servicios y los directores de servicio tienen acceso a los recursos de su cuenta.

Se recomienda utilizar las claves de contexto de condición global [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) y [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount) en las políticas de recursos para limitar los permisos que Amazon QLDB concede a otro servicio para el recurso. Si se utilizan ambas claves de contexto de condición global, el valor `aws:SourceAccount` y la cuenta del valor `aws:SourceArn` deben utilizar el mismo ID de cuenta cuando se utilicen en la misma instrucción de política.

En la siguiente tabla se enumeran los valores posibles de `aws:SourceArn` para las operaciones de la API de QLDB [https://docs.aws.amazon.com/qldb/latest/developerguide/API_ExportJournalToS3.html](https://docs.aws.amazon.com/qldb/latest/developerguide/API_ExportJournalToS3.html) y [https://docs.aws.amazon.com/qldb/latest/developerguide/API_StreamJournalToKinesis.html](https://docs.aws.amazon.com/qldb/latest/developerguide/API_StreamJournalToKinesis.html). Estas operaciones entran dentro del ámbito de este problema de seguridad porque requieren que AWS Security Token Service (AWS STS) asuma una función de IAM que usted especifique.


****  

| Operación de la API | Servicio llamado | AWS: SourceArn | 
| --- | --- | --- | 
| ExportJournalToS3 | AWS STS ([https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)) |  Permite que QLDB asuma el rol de cualquier recurso de QLDB de la cuenta: <pre>arn:aws:qldb:us-east-1:123456789012:*</pre> Actualmente, QLDB solo admite este ARN comodín para la exportación de diarios.  | 
| StreamsJournalToKinesis | AWS STS ([https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)) |  Permite que QLDB asuma el rol de una secuencia de QLDB específica: <pre>arn:aws:qldb:us-east-1:123456789012:stream/myExampleLedger/IiPT4brpZCqCq3f4MTHbYy</pre> **Nota:** solo puede especificar un ID de secuencia en el ARN después de crear el recurso de secuencia. Con este ARN, puede permitir que el rol solo se use para una única secuencia de QLDB. Permite que QLDB asuma el rol de cualquier secuencia de QLDB de un libro mayor: <pre>arn:aws:qldb:us-east-1:123456789012:stream/myExampleLedger/*</pre> Permite que QLDB asuma el rol de cualquier secuencia de QLDB de la cuenta: <pre>arn:aws:qldb:us-east-1:123456789012:stream/*</pre> Permite que QLDB asuma el rol de cualquier recurso de QLDB de la cuenta: <pre>arn:aws:qldb:us-east-1:123456789012:*</pre>  | 

La forma más eficaz de protegerse contra el problema de la sustitución confusa es utilizar la clave de contexto de condición global de `aws:SourceArn` con el ARN completo del recurso. Si no conoce el ARN completo del recurso o si está especificando varios recursos, utilice la clave de condición de contexto global `aws:SourceArn` con caracteres comodín (`*`) para las partes desconocidas del ARN, por ejemplo, `arn:aws:qldb:us-east-1:123456789012:*`.

El siguiente ejemplo de política de confianza para un rol de IAM muestra cómo se pueden utilizar las claves contextuales de condición global `aws:SourceArn` y `aws:SourceAccount` para evitar el problema del suplente confuso. Con esta política de confianza, QLDB puede asumir el rol de cualquier secuencia de QLDB en la cuenta `123456789012` del libro mayor `myExampleLedger` únicamente.

Para usar esta política, sustituya y *us-east-1**123456789012*, *myExampleLedger* en el ejemplo, por su propia información.

```
{
  "Version": "2012-10-17",
  "Statement": {
    "Sid": "ConfusedDeputyPreventionExamplePolicy",
    "Effect": "Allow",
    "Principal": {
      "Service": "qldb.amazonaws.com"
    },
    "Action": [ "sts:AssumeRole" ],
    "Condition": {
      "ArnEquals": {
        "aws:SourceArn": "arn:aws:qldb:us-east-1:123456789012:stream/myExampleLedger/*"
      },
      "StringEquals": {
        "aws:SourceAccount": "123456789012"
      }
    }
  }
}
```