Prevención de la sustitución confusa entre servicios - AWS Transfer Family

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

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 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 de llamadas que se puede manipular para utilizar sus permisos a fin de actuar en función de los recursos de otro cliente a los que de otra manera no tendría permiso para acceder. Para evitarlo, AWS proporciona herramientas que le 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. Para obtener una descripción detallada de este problema, consulte el problema del suplente confuso en la Guía del usuario de IAM.

Recomendamos utilizar las claves de contexto de condición aws:SourceAccountglobal aws:SourceArny las claves de contexto en las políticas de recursos para limitar los permisos que AWS Transfer Family tiene para el recurso. Si se utilizan ambas claves contextuales 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 declaración de política.

La forma más eficaz de protegerse contra el problema del suplente confuso es utilizar el nombre de recurso de Amazon (ARN) exacto del recurso que desea permitir. Si está especificando varios recursos, utilice la clave de condición de contexto global aws:SourceArn con caracteres comodines (*) para las partes desconocidas del ARN. Por ejemplo, arn:aws:transfer::region::account-id:server/*.

AWS Transfer Family utiliza los siguientes tipos de funciones:

  • Función de usuario: permite a los usuarios gestionados por el servicio acceder a los recursos de Transfer Family necesarios. AWS Transfer Family asume esta función en el contexto del ARN de un usuario de Transfer Family.

  • Rol de acceso: proporciona acceso únicamente a los archivos de Amazon S3 que se están transfiriendo. Para las transferencias AS2 entrantes, el rol de acceso utiliza el nombre de recurso de Amazon (ARN) para el acuerdo. Para las transferencias AS2 salientes, el rol de acceso utiliza el ARN para el conector.

  • Rol de invocación: para usar con Amazon API Gateway como proveedor de identidad personalizado del servidor. Transfer Family asume este rol en el contexto de un ARN de servidor de Transfer Family.

  • Función de registro: se utiliza para registrar entradas en Amazon CloudWatch. Transfer Family utiliza este rol para registrar los detalles de éxito y error junto con la información sobre las transferencias de archivos. Transfer Family asume este rol en el contexto de un ARN de servidor de Transfer Family. Para las transferencias AS2 salientes, el rol de acceso utiliza el ARN del conector.

  • Rol de ejecución: permite a un usuario de Transfer Family llamar e iniciar flujos de trabajo. Transfer Family asume este rol en el contexto de un ARN de flujo de trabajo de Transfer Family.

Para obtener más información, consulte Políticas y permisos en IAM en la Guía del usuario de IAM.

nota

En los ejemplos siguientes, reemplace cada marcador de posición del usuario con su propia información.

nota

En nuestros ejemplos, utilizamos tanto ArnLike como ArnEquals. Funcionalmente son idénticos y, por lo tanto, puede utilizar cualquiera de los dos al crear sus políticas. La documentación de Transfer Family utiliza ArnLike cuando la condición contiene un carácter comodín, y utiliza ArnEquals para indicar una condición de coincidencia exacta.

AWS El rol de usuario de Transfer Family, prevención de problemas entre servicios

En el siguiente ejemplo de política, se permite que cualquier servidor de la cuenta asuma el rol.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "transfer.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "account-id" }, "ArnLike": { "aws:SourceArn": "arn:aws:transfer:region:account-id:user/*" } } } ] }

En el siguiente ejemplo de política se permite que cualquier usuario de un servidor específico asuma el rol.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "transfer.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "account-id" }, "ArnEquals": { "aws:SourceArn": "arn:aws:transfer:region:account-id:user/server-id/*" } } } ] }

En el siguiente ejemplo de política se permite que cualquier usuario específico de un servidor específico asuma el rol.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "transfer.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:transfer:region:account-id:user/server-id/user-name" } } } ] }

AWS Función de flujo de trabajo de Transfer Family, prevención policial confusa entre servicios

En el siguiente ejemplo de política, se permite que cualquier flujo de trabajo de la cuenta asuma el rol.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "transfer.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "account-id" }, "ArnLike": { "aws:SourceArn": "arn:aws:transfer:region:account-id:workflow/*" } } } ] }

La política del ejemplo siguiente permite que un flujo específico de trabajo asuma el rol.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "transfer.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:transfer:region:account-id:workflow/workflow-id" } } } ] }

AWS Transfer Family: función de registro e invocación, prevención adjunta confusa entre servicios

nota

Los siguientes ejemplos se pueden utilizar tanto en los roles de registro como en los de invocación.

En estos ejemplos, puede eliminar los detalles del ARN de un flujo de trabajo si el servidor no tiene ningún flujo de trabajo adjunto.

El siguiente ejemplo de política de registro e invocación permite que cualquier servidor (y flujo de trabajo) de la cuenta asuma la función.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAllServersWithWorkflowAttached", "Effect": "Allow", "Principal": { "Service": "transfer.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "account-id" }, "ArnLike": { "aws:SourceArn": [ "arn:aws:transfer:region:account-id:server/*", "arn:aws:transfer:region:account-id:workflow/*" ] } } } ] }

El siguiente ejemplo de política de registro e invocación permite que un servidor (y un flujo de trabajo) específicos asuman la función.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowSpecificServerWithWorkflowAttached", "Effect": "Allow", "Principal": { "Service": "transfer.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "account-id" }, "ArnEquals": { "aws:SourceArn": [ "arn:aws:transfer:region:account-id:server/server-id", "arn:aws:transfer:region:account-id:workflow/workflow-id" ] } } } ] }