Uso de roles para AWS Batch con SageMaker AI
AWS Batch utiliza roles vinculados a servicios de AWS Identity and Access Management (IAM). Un rol vinculado a servicios es un tipo único de rol de IAM que está vinculado directamente a AWS Batch. Las funciones vinculadas a servicios están predefinidas por AWS Batch e incluyen todos los permisos que el servicio requiere para llamar a otros servicios de AWS en su nombre.
Con una función vinculada a servicios, resulta más sencillo configurar AWS Batch, porque no es preciso agregar los permisos necesarios manualmente. AWS Batch define los permisos de las funciones vinculadas con su propio servicio y, a menos que esté definido de otra manera, solo AWS Batch puede asumir sus funciones. Los permisos definidos incluyen las políticas de confianza y de permisos, y que la política de permisos no se pueda adjuntar a ninguna otra entidad de IAM.
Solo puede eliminar un rol vinculado a servicios después de eliminar sus recursos relacionados. De esta forma, se protegen los recursos de AWS Batch, ya que se evita que se puedan eliminar accidentalmente permisos de acceso a los recursos.
Para obtener información sobre otros servicios que admiten roles vinculados a servicios, consulte Servicios de AWS que funcionan con IAM y busque los servicios que muestren Sí en la columna Roles vinculados a servicios. Seleccione una opción Sí con un enlace para ver la documentación acerca del rol vinculado al servicio en cuestión.
Permisos de roles vinculados a servicios de AWS Batch
AWS Batch usa el rol vinculado al servicio denominado AWSServiceRoleForAWSBatchWithSagemaker: permite que AWS Batch poner en cola los trabajos de entrenamiento de SageMaker y administrarlos en su nombre.
El rol vinculado al servicio AWSServiceRoleForAWSBatchWithSagemaker confía en los siguientes servicios para asumir el rol:
-
sagemaker-queuing.batch.amazonaws.com
La política de permisos del rol permite que AWS Batch realice las siguientes acciones en los recursos especificados:
-
sagemaker- Permite que AWS Batch administre los trabajos de entrenamiento de SageMaker, transformar los trabajos y otros recursos de SageMaker AI. -
iam:PassRole- Permite que AWS Batch pase los roles de ejecución definidos por el cliente a SageMaker AI para la ejecución de trabajos. La restricción de recursos permite transferir roles a los servicios de SageMaker AI.
Debe configurar los permisos para permitir a sus usuarios, grupos o funciones, crear, editar o eliminar la descripción de un rol vinculado al servicio. Para obtener más información, consulte Permisos de roles vinculados a servicios en la Guía del usuario de IAM.
Creación de un rol vinculado a un servicio de AWS Batch
No necesita crear manualmente un rol vinculado a servicios. Cuando crea un entorno de servicio mediante CreateServiceEnvironment en la Consola de administración de AWS, la AWS CLI o la API de AWS, AWS Batch crea el rol vinculado a servicios en su nombre.
Si elimina este rol vinculado a servicios y necesita crearlo de nuevo, puede utilizar el mismo proceso para volver a crear el rol en su cuenta. Al crear un entorno de tiempo de servicio mediante CreateServiceEnvironment, AWS Batch crea nuevamente el rol vinculado a servicios para usted.
Para ver el JSON de la política, consulte la página AWSBatchServiceRolePolicyForSageMaker en la Guía de referencia de políticas administradas de AWS.
Modificación de un rol vinculado a servicios de AWS Batch
AWS Batch no permite editar el rol vinculado a servicios AWSServiceRoleForAWSBatchWithSagemaker. Después de crear un rol vinculado al servicio, no podrá cambiar el nombre del rol, ya que varias entidades podrían hacer referencia al rol. Sin embargo, sí puede editar la descripción del rol con IAM. Para obtener más información, consulte Editar un rol vinculado a servicios en la Guía del usuario de IAM.
Eliminación de un rol vinculado a un servicio de AWS Batch
Si ya no necesita utilizar una característica o servicio que requiere un rol vinculado a un servicio, le recomendamos que elimine dicho rol. De esta forma no tiene una entidad no utilizada que no se monitoree ni mantenga de forma activa. Sin embargo, debe limpiar el rol vinculado a servicios antes de eliminarlo manualmente.
Limpiar un rol vinculado a servicios
Antes de poder utilizar IAM para eliminar un rol vinculado a servicio, primero debe confirmar que dicho rol no tiene sesiones activas y eliminar todos los entornos de servicios que utilizan el rol en todas las regiones de AWS en una única partición.
Para comprobar si el rol vinculado a servicio tiene una sesión activa
Abra la consola de IAM en https://console.aws.amazon.com/iam/
. -
En el panel de navegación, elija Roles y seleccione el nombre AWSServiceRoleForAWSBatchWithSagemaker (no la casilla de verificación).
-
En la página Summary, elija Access Advisor y revise la actividad reciente del rol vinculado a servicio.
nota
Si no sabe si AWS Batch utiliza el rol AWSServiceRoleForAWSBatchWithSagemaker, puede intentar eliminar el rol para comprobarlo. Si el servicio está utilizando el rol, este no podrá eliminarse. Puede ver las regiones en las que se está utilizando el rol. Si el rol se está utilizando, debe esperar que la sesión finalice para poder eliminarlo. No se puede revocar la sesión de un rol vinculado a un servicio.
Cómo eliminar los recursos de AWS Batch que utiliza el rol vinculado al servicio AWSServiceRoleForAWSBatchWithSagemaker
Debe disociar todas las colas del trabajo de los entornos de servicios y finalmente eliminar todos los entornos de servicios que utiliza el rol AWSServiceRoleForAWSBatchWithSagemaker en todas las regiones de AWS antes de eliminar el rol AWSServiceRoleForAWSBatchWithSagemaker.
-
Abra la consola AWS Batch en https://console.aws.amazon.com/batch/
. -
En la barra de navegación, seleccione la región a utilizar.
-
En el panel de navegación, elija Entornos y, a continuación, elija Entornos de servicios.
-
Seleccione todos los Entornos de servicio.
-
Elija Deshabilitar. Espere a que Estado cambie a DESHABILITADO.
-
Seleccione el entorno de servicio.
-
Elija Eliminar. Confirme que desea eliminar el entorno de servicio mediante la elección de Eliminar entorno de servicio.
-
Repita los pasos 1 a 7 para todos los entornos de servicio que utilizan el rol vinculado al servicio en todas las regiones.
Eliminación de un rol vinculado a un servicio en IAM (Consola)
Puede utilizar la consola de IAM para eliminar un rol vinculado a un servicio.
Para eliminar un rol vinculado a un servicio (consola)
Inicie sesión en la Consola de administración de AWS y abra la consola de IAM en https://console.aws.amazon.com/iam/
. -
En el panel de navegación de la consola de IAM, elija Roles. A continuación, seleccione la casilla de verificación situada junto a AWSServiceRoleForAWSBatchWithSagemaker, no el nombre ni la propia fila.
-
Elija Eliminar rol.
-
En el cuadro de diálogo de confirmación, revise los datos del último acceso al servicio, que muestra cuándo cada uno de los roles seleccionados tuvo acceso a un por última vez Servicio de AWS. Esto lo ayuda a confirmar si el rol está actualmente activo. Si desea continuar, seleccione Yes, Delete para enviar la solicitud de eliminación del rol vinculado al servicio.
-
Consulte las notificaciones de la consola de IAM para monitorear el progreso de la eliminación del rol vinculado al servicio. Como el proceso de eliminación del rol vinculado al servicio de IAM es asíncrono, dicha tarea puede realizarse correctamente o fallar después de que envía la solicitud de eliminación.
-
Si la tarea se realiza correctamente, el rol se elimina de la lista y aparece una notificación informando de ello en la parte superior de la página.
-
Si la tarea no se realiza correctamente, puede seleccionar View details (Ver detalles) o View Resources (Ver recursos) desde las notificaciones para obtener información sobre el motivo por el que no se pudo eliminar el rol. Si la eliminación no pudo producirse porque el rol está utilizando los recursos del servicio, la notificación incluye una lista de dichos recursos si el servicio proporciona dicha información. Tras conocer esa información, podrá limpiar los recursos y volver a enviar la solicitud de eliminación.
nota
Es posible que tenga que repetir este proceso varias veces, en función de la información que devuelva el servicio. Por ejemplo, el rol vinculado al servicio podría estar utilizando seis recursos y el servicio podría estar devolviendo información solo acerca de cinco de ellos. Si limpia los cinco recursos y envía la solicitud de eliminación del rol de nuevo, se producirá un error y el servicio informará del recurso restante. Un servicio podría informar de todos los recursos, algunos o ninguno.
-
Si se produce un error en la tarea y la notificación no incluye una lista de los recursos, el servicio no podría no devolver dicha información. Para obtener información acerca de cómo limpiar los recursos de ese servicio, consulte Servicios de AWS que funcionan con IAM. Identifique su servicio en la tabla y haga clic en el enlace Yes (Sí) para consultar la documentación relacionada con los roles vinculados a dicho servicio.
-
Eliminación de un rol vinculado a un servicio en IAM (AWS CLI)
Puede utilizar los comandos de IAM desde la AWS Command Line Interface para eliminar un rol vinculado a un servicio.
Para eliminar un rol vinculado a un servicio (CLI)
-
Como los roles vinculados a servicios no se pueden eliminar si están en uso o tienen recursos asociados, debe enviar una solicitud de eliminación. Esta solicitud puede denegarse si no se cumplen estas condiciones. Debe apuntar el valor
deletion-task-idde la respuesta para comprobar el estado de la tarea de eliminación. Ingrese el siguiente comando para enviar una solicitud de eliminación de un rol vinculado a un servicio:$aws iam delete-service-linked-role --role-name AWSServiceRoleForAWSBatchWithSagemaker -
Utilice el siguiente comando para comprobar el estado de la tarea de eliminación:
$aws iam get-service-linked-role-deletion-status --deletion-task-iddeletion-task-idEl estado de la tarea de eliminación puede ser
NOT_STARTED,IN_PROGRESS,SUCCEEDEDoFAILED. Si ocurre un error durante la eliminación, la llamada devuelve el motivo del error para que pueda resolver el problema. Si la eliminación no pudo producirse porque el rol está utilizando los recursos del servicio, la notificación incluye una lista de dichos recursos si el servicio proporciona dicha información. Tras conocer esa información, podrá limpiar los recursos y volver a enviar la solicitud de eliminación.nota
Es posible que tenga que repetir este proceso varias veces, en función de la información que devuelva el servicio. Por ejemplo, el rol vinculado al servicio podría estar utilizando seis recursos y el servicio podría estar devolviendo información solo acerca de cinco de ellos. Si limpia los cinco recursos y envía la solicitud de eliminación del rol de nuevo, se producirá un error y el servicio informará del recurso restante. Un servicio podría devolver todos los recursos, algunos de ellos. O bien, podría no reportar ningún recurso. Para obtener información acerca de cómo limpiar los recursos de un servicio que no está informando de ningún recurso, consulte los Servicios de AWS que funcionan con IAM. Identifique su servicio en la tabla y haga clic en el enlace Yes (Sí) para consultar la documentación relacionada con los roles vinculados a dicho servicio.
Eliminación de un rol vinculado a servicio en IAM (API de AWS)
Puede utilizar la API de IAM para eliminar un rol vinculado a un servicio.
Para eliminar un rol vinculado a un servicio (API)
-
Para enviar una solicitud de eliminación de un rol vinculado a un servicio, realice una llamada a DeleteServiceLinkedRole. En la solicitud, especifique el nombre de rol AWSServiceRoleForAWSBatchWithSagemaker.
Como los roles vinculados a servicios no se puede eliminar si están en uso o tienen recursos asociados, debe enviar una solicitud de eliminación. Esta solicitud puede denegarse si no se cumplen estas condiciones. Debe apuntar el valor
DeletionTaskIdde la respuesta para comprobar el estado de la tarea de eliminación. -
Para comprobar el estado de la tarea de eliminación, realice una llamada a GetServiceLinkedRoleDeletionStatus. En la solicitud, especifique el valor de
DeletionTaskId.El estado de la tarea de eliminación puede ser
NOT_STARTED,IN_PROGRESS,SUCCEEDEDoFAILED. Si ocurre un error durante la eliminación, la llamada devuelve el motivo del error para que pueda resolver el problema. Si la eliminación no pudo producirse porque el rol está utilizando los recursos del servicio, la notificación incluye una lista de dichos recursos si el servicio proporciona dicha información. Tras conocer esa información, podrá limpiar los recursos y volver a enviar la solicitud de eliminación.nota
Es posible que tenga que repetir este proceso varias veces, en función de la información que devuelva el servicio. Por ejemplo, el rol vinculado al servicio podría estar utilizando seis recursos y el servicio podría estar devolviendo información solo acerca de cinco de ellos. Si limpia los cinco recursos y envía la solicitud de eliminación del rol de nuevo, se producirá un error y el servicio informará del recurso restante. Un servicio podría informar de todos los recursos, algunos o ninguno. Para obtener información acerca de cómo limpiar los recursos de un servicio que no está informando de ningún recurso, consulte Servicios de AWS que funcionan con IAM. Identifique su servicio en la tabla y haga clic en el enlace Yes (Sí) para consultar la documentación relacionada con los roles vinculados a dicho servicio.
Regiones admitidas para los roles vinculados a un servicio de AWS Batch
AWS Batch admite el uso de roles vinculados a servicios en todas las regiones en las que el servicio esté disponible. Para obtener más información, consulte Puntos de enlace de AWS Batch.