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, se puede dar el problema del suplente confuso debido a la suplantación entre servicios. La suplantación entre servicios se puede producir cuando un servicio (el servicio que llama) invoca a otro servicio (el servicio llamado) y aprovecha los permisos mejorados del servicio llamado para realizar acciones en recursos a los que el servicio que llama no tiene autorización para acceder. Para evitar el acceso no autorizado a causa del problema del suplente confuso, AWS proporciona herramientas que ayudan a proteger los datos en todos los servicios. Estas herramientas le ayudan a controlar los permisos que se conceden a las entidades principales del servicio y limitan su acceso únicamente a los recursos de su cuenta que son necesarios. Si administra cuidadosamente los privilegios de acceso de las entidades principales de servicio, puede ayudar a mitigar el riesgo de que los servicios accedan de forma indebida a datos o recursos para los que no deberían tener permisos.
Siga leyendo para obtener instrucciones generales o vaya a un ejemplo de una característica específica de SageMaker AI:
Temas
Límite de permisos con claves de condición globales
Se recomienda utilizar las claves de condición globales aws:SourceArn y aws:SourceAccount en las políticas de recursos para limitar los permisos que Amazon SageMaker AI concede a otro servicio para el recurso. Si utiliza claves de contexto de condición globales 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.
La forma más eficaz de protegerse contra el problema del suplente confuso es utilizar la clave de condición global de aws:SourceArn con el ARN completo del recurso. Si no conoce el ARN completo del recurso o si especifica varios recursos, utilice la clave de condición global aws:SourceArn con comodines (*) para las partes desconocidas del ARN. Por ejemplo, arn:aws:sagemaker:*:.123456789012:*
En el siguiente ejemplo, se muestra cómo se pueden utilizar las claves de condición globales aws:SourceArn y aws:SourceAccount en SageMaker AI para evitar el problema del suplente confuso.
{ "Version": "2012-10-17", "Statement": { "Sid": "ConfusedDeputyPreventionExamplePolicy", "Effect": "Allow", "Principal": { "Service": "sagemaker.amazonaws.com" }, # Specify an action and resource policy for another service "Action": "service:ActionName", "Resource": [ "arn:aws:service:::ResourceName/*" ], "Condition": { "ArnLike": { "aws:SourceArn": "arn:partition:sagemaker:region:123456789012:*" }, "StringEquals": { "aws:SourceAccount": "123456789012" } } } }
Administrador de periféricos de SageMaker
En el siguiente ejemplo, se muestra cómo puede utilizar la clave de condición global aws:SourceArn para evitar el problema de suplente confuso entre servicios para el administrador de periféricos de SageMaker creado por el número de cuenta 123456789012 en la región us-west-2.
Puede reemplazar el aws:SourceArn de esta plantilla por el ARN completo de un trabajo de empaquetado específico para limitar aún más los permisos.
Imágenes de SageMaker
En el siguiente ejemplo, se muestra cómo se pueden utilizar la clave de condición global aws:SourceArn para evitar el problema del suplente confuso entre servicios en las imágenes de SageMaker. Utilice esta plantilla con Image o ImageVersion. En este ejemplo, se utiliza un ARN de registro ImageVersion con el número de cuenta 123456789012. Tenga en cuenta que, dado que el número de cuenta forma parte del valor aws:SourceArn, no necesita especificar ningún valor aws:SourceAccount.
No sustituya el aws:SourceArn de esta plantilla por el ARN completo de una imagen o versión de imagen específica. El ARN debe estar en el formato indicado anteriormente y especificar una image o image-version. El marcador de posición partition debe designar una partición comercial de AWS (aws) o una partición de AWS en China (aws-cn), según el lugar en el que se esté ejecutando la imagen o la versión de la imagen. Del mismo modo, el marcador de posición region del ARN puede ser cualquier región válida en la que estén disponibles las imágenes de SageMaker.
Inferencia de SageMaker AI
El siguiente ejemplo muestra cómo se puede utilizar la clave de condición global aws:SourceArn para evitar el problema del suplente confuso entre servicios en las inferencias asíncronas, en tiempo real y sin servidor de SageMaker AI. Tenga en cuenta que, dado que el número de cuenta forma parte del valor aws:SourceArn, no necesita especificar ningún valor aws:SourceAccount.
No sustituya el aws:SourceArn de esta plantilla por el ARN completo de un modelo o punto de conexión específico. El ARN debe estar en el formato indicado anteriormente. El asterisco de la plantilla de ARN no significa comodín y no debe cambiarse.
Trabajos de transformación por lotes de SageMaker AI
En el siguiente ejemplo, se muestra cómo puede utilizar la clave de condición global aws:SourceArn para evitar el problema de suplente confuso entre servicios para trabajos de transformación por lotes de SageMaker AI creados por el número de cuenta 123456789012 en la región us-west-2. Tenga en cuenta que, dado que el número de cuenta está en el ARN, no necesita especificar un valor aws:SourceAccount.
Puede reemplazar el aws:SourceArn de esta plantilla por el ARN completo de un trabajo de transformación por lotes específico para limitar aún más los permisos.
Marketplace de SageMaker AI
En el siguiente ejemplo, se muestra cómo puede utilizar la clave de condición global aws:SourceArn para evitar el problema de suplente confuso entre servicios para los recursos de Marketplace de SageMaker AI creados por el número de cuenta 123456789012 en la región us-west-2. Tenga en cuenta que, dado que el número de cuenta está en el ARN, no necesita especificar un valor aws:SourceAccount.
No sustituya el aws:SourceArn de esta plantilla por el ARN completo de un paquete específico de algoritmos o modelos. El ARN debe estar en el formato indicado anteriormente. El asterisco de la plantilla de ARN significa comodín y abarca todos los trabajos de entrenamiento, modelos y transformación por lotes de los pasos de validación, así como los paquetes de algoritmos y modelos publicados en el Marketplace de SageMaker AI.
SageMaker Neo
En el siguiente ejemplo, se muestra cómo puede utilizar la clave de condición global aws:SourceArn para evitar el problema de suplente confuso entre servicios para los trabajos de compilación de SageMaker Neo creados por el número de cuenta 123456789012 en la región us-west-2. Tenga en cuenta que, dado que el número de cuenta está en el ARN, no necesita especificar un valor aws:SourceAccount.
Puede reemplazar el aws:SourceArn de esta plantilla por el ARN completo de un trabajo de compilación específico para limitar aún más los permisos.
Canalizaciones de SageMaker
En el siguiente ejemplo, se muestra cómo se pueden utilizar la clave de condición global aws:SourceArn para evitar el problema del suplente confuso entre servicios para las canalizaciones de SageMaker mediante registros de ejecución de canalizaciones de una o más canalizaciones. Tenga en cuenta que, dado que el número de cuenta está en el ARN, no necesita especificar un valor aws:SourceAccount.
No sustituya el aws:SourceArn de esta plantilla por el ARN completo de una ejecución de canalización específica. El ARN debe estar en el formato indicado anteriormente. El marcador de posición partition debe designar una partición comercial de AWS (aws) o una partición de AWS en China (aws-cn), según el lugar en el que se esté ejecutando la canalización. Del mismo modo, el marcador de posición region del ARN puede ser cualquier región válida en la que estén disponibles las canalizaciones de SageMaker.
El asterisco de la plantilla de ARN significa comodín y abarca todas las ejecuciones de canalización de una canalización denominada mypipeline. Si quieres conceder permisos AssumeRole para todas las canalizaciones de la cuenta 123456789012 en lugar de para una canalización específica, entonces el aws:SourceArn sería arn:aws:sagemaker:*:123456789012:pipeline/*.
Trabajos de procesamiento de SageMaker
En el siguiente ejemplo, se muestra cómo puede utilizar la clave de condición global aws:SourceArn para evitar el problema de suplente confuso entre servicios para los trabajos de procesamiento de SageMaker creados por el número de cuenta 123456789012 en la región us-west-2. Tenga en cuenta que, dado que el número de cuenta está en el ARN, no necesita especificar un valor aws:SourceAccount.
Puede reemplazar el aws:SourceArn de esta plantilla por el ARN completo de un trabajo de procesamiento específico para limitar aún más los permisos.
SageMaker Studio
En el siguiente ejemplo, se muestra cómo puede utilizar la clave de condición global aws:SourceArn para evitar el problema de suplente confuso entre servicios para SageMaker Studio creado por el número de cuenta 123456789012 en la región us-west-2. Tenga en cuenta que, dado que el número de cuenta forma parte del valor aws:SourceArn, no necesita especificar ningún valor aws:SourceAccount.
No sustituya el aws:SourceArn de esta plantilla por el ARN completo de una aplicación, perfil de usuario o dominio específicos de Studio. El ARN debe estar en el formato proporcionado en el ejemplo anterior. El asterisco de la plantilla de ARN no significa comodín y no debe cambiarse.
Trabajos de entrenamiento de SageMaker
En el siguiente ejemplo, se muestra cómo puede utilizar la clave de condición global aws:SourceArn para evitar el problema de suplente confuso entre servicios para los trabajos de entrenamiento de SageMaker creados por el número de cuenta 123456789012 en la región us-west-2. Tenga en cuenta que, dado que el número de cuenta está en el ARN, no necesita especificar un valor aws:SourceAccount.
Puede reemplazar el aws:SourceArn de esta plantilla por el ARN completo de un trabajo de entrenamiento específico para limitar aún más los permisos.
Tema siguiente
Para obtener más información sobre la administración de los roles de ejecución, consulte Roles de SageMaker AI.