Prevención del suplente confuso entre servicios - Amazon Rekognition

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 del suplente confuso entre servicios

En AWS, la suplantación entre servicios puede 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 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 lo ayudan a proteger sus datos para todos los servicios con entidades principales de servicio a las que se les ha dado acceso a los recursos de su cuenta.

Se recomienda utilizar las claves de contexto de condición global aws:SourceArn y aws: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.

Utilice aws:SourceArn si desea que solo se asocie un recurso al acceso entre servicios. Utilice 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 realizará 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.

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

  3. Elija Editar la política de confianza.

  4. 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:

  5. 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:

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":"rekognition.amazonaws.com", "AWS":"arn:User ARN" }, "Action":"sts:AssumeRole", "Condition":{ "StringEquals":{ "aws:SourceAccount":"Account ID" }, "StringLike":{ "aws:SourceArn":"arn:aws:rekognition:region:111122223333:streamprocessor/*" } } } ] }

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):

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":"rekognition.amazonaws.com", "AWS":"arn:User ARN" }, "Action":"sts:AssumeRole", "Condition":{ "StringEquals":{ "aws:SourceAccount":"Account ID" } } } ] }