

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>

En AWS, la suplantación entre servicios puede producirse cuando un servicio (el servicio de llamadas) llama *a* otro servicio (el servicio *llamado*). El servicio que lleva a cabo las llamadas se puede manipular para actuar en función de los recursos de otro cliente a pesar de que no debe tener los permisos adecuados, lo que da como resultado un problema de suplente confuso.

Para evitarlo, AWS proporciona herramientas que te ayudan a proteger los datos de todos los servicios cuyos directores de servicio tengan acceso a los recursos de tu 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 Rekognition concede a otro servicio para el recurso. 

Si el valor de `aws:SourceArn` no contiene el ID de cuenta, como un ARN de bucket de Amazon S3, debe utilizar ambas claves para limitar los permisos. Si utiliza ambas claves y el valor de `aws:SourceArn` contiene el ID de la cuenta, el valor de `aws:SourceAccount` y la cuenta en el valor de `aws:SourceArn` deben utilizar el mismo ID de cuenta cuando se utiliza en la misma instrucción de política. 

Utiliza `aws:SourceArn` si desea que solo se asocie un recurso al acceso entre servicios. Utiliza `aws:SourceAccount` si quiere permitir que cualquier recurso de esa cuenta se asocie al uso entre servicios.

El valor de `aws:SourceArn` debe ser el ARN del recurso utilizado por Rekognition, que se especifica con el siguiente formato: `arn:aws:rekognition:region:account:resource`.

El valor de `arn:User ARN` debe ser el ARN del usuario que llame a la operación de análisis de vídeo (el usuario que asume un rol).

La forma más eficaz de protegerse contra el problema del suplente confuso 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 `aws:SourceArn` con caracteres comodines (`*`) para las partes desconocidas del ARN. Por ejemplo, `arn:aws:rekognition:*:111122223333:*`. 

Para protegerse contra el problema de suplente confuso, lleve a cabo los siguientes pasos:

1. En el panel de navegación de la consola de IAM, elija la opción **Roles**. La consola mostrará las funciones asociadas a su cuenta actual.

1. Elija el nombre del rol que desea modificar. El rol que modifique debe tener la política de **AmazonRekognitionServiceRole**permisos. Seleccione la pestaña **Relaciones de confianza**.

1. Elija **Editar la política de confianza**.

1. En la página **Editar política de confianza**, sustituya la política JSON predeterminada por una política que utilice una o ambas claves contextuales `aws:SourceArn` y `aws:SourceAccount` de condición global. Consulte los siguientes ejemplos de políticas.

1. Elija **Actualizar política**.

El ejemplo siguiente contiene políticas de confianza que muestran cómo se pueden utilizar las claves de contexto de condición global de `aws:SourceArn` y `aws:SourceAccount` en Amazon Rekognition para evitar el problema del suplente confuso.

Si trabaja con vídeos almacenados y en streaming, puede utilizar una política como la siguiente en su rol de IAM:

Si trabaja exclusivamente con vídeo almacenado, puede utilizar una política como la siguiente en su rol de IAM (tenga en cuenta que no es necesario incluir el argumento `StringLike` que especifique el `streamprocessor`):