Uso de roles vinculados a servicios para Amazon EMR para limpieza
Amazon EMR utiliza roles vinculados a un servicio de AWS Identity and Access Management (IAM). Un rol vinculado a un servicio es un tipo único de rol de IAM que se encuentra vinculado directamente a Amazon EMR. Los roles vinculados a servicios se encuentran predefinidos por Amazon EMR e incluyen todos los permisos que el servicio requiere para llamar a otros servicios de AWS en su nombre.
Los roles vinculados a servicios funcionan juntamente con el rol de servicio de Amazon EMR y el perfil de instancia de Amazon EC2 para Amazon EMR. Para obtener más información acerca del rol de servicio y del perfil de instancia, consulte Configuración de los roles de servicio de IAM de los permisos de Amazon EMR para los servicios y recursos de AWS.
Un rol vinculado al servicio simplifica la configuración de Amazon EMR porque ya no tendrá que agregar manualmente los permisos requeridos. Amazon EMR define los permisos de sus roles vinculados a servicios y, a menos que esté definido de otra manera, solo Amazon EMR puede asumir sus roles. Los permisos definidos incluyen las políticas de confianza y de permisos, y que la política de permisos no se pueda asociar a ninguna otra entidad de IAM.
Puede eliminar este rol vinculado a servicios para Amazon EMR solo después de eliminar cualquier recurso relacionado y finalizar todos los clústeres de EMR de la cuenta. Esto protege sus recursos de Amazon EMR, puesto que se evita que se puedan eliminar accidentalmente permisos de acceso a los recursos.
Uso de roles vinculados a servicios para limpieza
Amazon EMR utiliza el rol basado en servicios AWSServiceRoleForEMRCleanup para conceder permiso a Amazon EMR para finalizar y eliminar los recursos de Amazon EC2 en su nombre si el rol vinculado a servicios de Amazon EMR pierde esa capacidad. Si aún no existe, Amazon EMR crea el rol vinculado a servicios automáticamente durante la creación del clúster.
El rol vinculado a un servicio AWSServiceRoleForEMRCleanup depende de los siguientes servicios para asumir el rol:
-
elasticmapreduce.amazonaws.com
La política de permisos del rol se denomina AWSServiceRoleForEMRCleanup y permite a Amazon EMR realizar las siguientes acciones en los recursos especificados:
-
Acción:
DescribeInstancesenec2 -
Acción:
DescribeLaunchTemplatesenec2 -
Acción:
DeleteLaunchTemplateenec2 -
Acción:
DescribeSpotInstanceRequestsenec2 -
Acción:
ModifyInstanceAttributeenec2 -
Acción:
TerminateInstancesenec2 -
Acción:
CancelSpotInstanceRequestsenec2 -
Acción:
DeleteNetworkInterfaceenec2 -
Acción:
DescribeInstanceAttributeenec2 -
Acción:
DescribeVolumeStatusenec2 -
Acción:
DescribeVolumesenec2 -
Acción:
DetachVolumeenec2 -
Acción:
DeleteVolumeenec2 -
Acción:
DescribePlacementGroupsenec2 -
Acción:
DeletePlacementGroupenec2
Debe configurar permisos para permitir a una entidad de IAM (como un usuario, grupo o rol) crear, editar o eliminar un rol vinculado a servicios.
Creación de un rol vinculado a un servicio para Amazon EMR
No es necesario crear manualmente el rol AWSServiceRoleForEMRCleanup. Cuando se lanza un clúster, ya sea por primera vez o cuando el rol vinculado a servicios AWSServiceRoleForEMRCleanup no está presente, Amazon EMR crea el rol vinculado servicios AWSServiceRoleForEMRCleanup en su nombre. Debe tener permisos para crear un rol vinculado a servicios. Para obtener una instrucción de ejemplo que agregue esta capacidad a la política de permisos de una entidad de IAM (como un usuario, grupo o rol):
Agregue la siguiente instrucción a la política de permisos de la entidad de IAM que tiene que crear el rol vinculado al servicio:
{ "Sid": "ElasticMapReduceServiceLinkedRole", "Effect": "Allow", "Action": "iam:CreateServiceLinkedRole", "Resource": "arn:aws:iam::*:role/aws-service-role/elasticmapreduce.amazonaws.com*/AWSServiceRoleForEMRCleanup*", "Condition": { "StringEquals": { "iam:AWSServiceName": [ "elasticmapreduce.amazonaws.com", "elasticmapreduce.amazonaws.com.rproxy.govskope.ca.cn" ] } } }
importante
Si usaba Amazon EMR antes del 24 de octubre de 2017, fecha en que comenzó a admitir los roles vinculados a servicios, Amazon EMR creó el rol vinculado a servicios AWSServiceRoleForEMRCleanup en su cuenta. Para obtener más información, consulte Un nuevo rol ha aparecido en la cuenta de IAM.
Edición de un rol vinculado a un servicio para Amazon EMR
Amazon EMR no le permite editar el rol vinculado a servicios AWSServiceRoleForEMRCleanup. Después de crear un rol vinculado a servicios, no puede cambiarle el nombre a este rol vinculado a servicios, ya que varias entidades pueden hacer referencia al rol vinculado a servicios. No obstante, puede editar la descripción del rol vinculado a servicios mediante IAM.
Edición de la descripción de un rol vinculado a un servicio (consola de IAM)
Puede utilizar la consola de IAM para editar la descripción de un rol vinculado a un servicio.
Para editar la descripción de un rol vinculado a un servicio (consola)
-
En el panel de navegación de la consola de IAM, elija Roles.
-
Seleccione el nombre del rol que desea modificar.
-
En el extremo derecho de Descripción del rol, seleccione Editar.
-
Ingrese una descripción nueva en el cuadro y elija Save changes (Guardar cambios).
Edición de la descripción de un rol vinculado a un servicio (CLI de IAM)
Puede utilizar comandos de IAM desde la AWS Command Line Interface para editar la descripción de un rol vinculado a un servicio.
Para cambiar la descripción de un rol vinculado a un servicio (CLI)
-
(Opcional) Para ver la descripción actual de un rol, ejecute uno de los siguientes comandos:
$aws iam get-role --role-namerole-nameUtilice el nombre del rol, no el ARN, para hacer referencia a los roles con los comandos de CLI. Por ejemplo, si un rol tiene el ARN
arn:aws:iam::123456789012:role/myrole, debe referirse a él comomyrole. -
Para actualizar la descripción de un rol vinculado a un servicio, ejecute uno de los siguientes comandos:
$aws iam update-role-description --role-namerole-name--descriptiondescription
Edición de la descripción de un rol vinculado a un servicio (API de IAM)
Puede utilizar la API de IAM para editar la descripción de un rol vinculado a un servicio.
Para cambiar la descripción de un rol vinculado a un servicio (API)
-
(Opcional) Para ver la descripción actual de una función, ejecute el siguiente comando:
API de IAM: GetRole
-
Para actualizar la descripción de una función, use el siguiente comando:
API de IAM: UpdateRoleDescription
Eliminación de un rol vinculado a un servicio para Amazon EMR
Si ya no necesita usar una característica o servicio que requieran un rol vinculado a servicios, le recomendamos que elimine dicho rol vinculado a servicios. De esta forma, no tendrá una entidad no utilizada cuya supervisión o mantenimiento no se realizan de forma activa. Sin embargo, debe limpiar el rol vinculado al servicio antes de eliminarlo.
Saneamiento de un rol vinculado a servicios
Antes de poder utilizar IAM para eliminar un rol vinculado a servicios, primero debe confirmar que dicho rol vinculado a servicios no tiene sesiones activas y eliminar los recursos que utiliza el rol vinculado a servicios.
Para comprobar si el rol vinculado a un servicio tiene una sesión activa en la consola de IAM
Abra la consola de IAM en https://console.aws.amazon.com/iam/
. -
Seleccione Roles en el panel de navegación. Seleccione el nombre (no la casilla de verificación) del rol vinculado a servicios AWSServiceRoleForEMRCleanup.
-
En la página Resumen del rol vinculado a servicios seleccionado, elija Asesor de acceso.
-
En la pestaña Access Advisor, revise la actividad reciente del rol vinculado al servicio.
nota
Si no sabe si Amazon EMR utiliza el rol vinculado a servicios AWSServiceRoleForEMRCleanup, puede intentar eliminar el rol vinculado a servicios para comprobarlo. Si el servicio está utilizando el rol vinculado a servicios, este no podrá eliminarse y podrá ver las regiones en las que se está utilizando el rol vinculado a servicios. Si el rol vinculado a servicios se está utilizando, debe esperar a que la sesión finalice para poder eliminar el rol vinculado a servicios. No se puede revocar la sesión de un rol vinculado a servicios.
Para eliminar los recursos de Amazon EMR que utiliza el rol vinculado a un servicio AWSServiceRoleForEMRCleanup
-
Termine todos los clústeres de su cuenta. Para obtener más información, consulte Finalización de un clúster de Amazon EMR en estado de inicio, ejecución o espera..
Eliminación de un rol vinculado a un servicio (consola de IAM)
Puede utilizar la consola de IAM para eliminar un rol vinculado a un servicio.
Para eliminar un rol vinculado a un servicio (consola)
Abra la consola de IAM en https://console.aws.amazon.com/iam/
. -
Seleccione Roles en el panel de navegación. A continuación, seleccione la casilla de verificación situada junto a AWSServiceRoleForEMRCleanup, no el nombre ni la propia fila.
-
En Role actions (Acciones de rol) en la parte superior de la página, elija Delete role (Eliminar rol).
-
En el cuadro de diálogo de confirmación, revise los datos del último acceso al servicio, que muestra cuándo cada una de las funciones seleccionadas tuvo acceso a un servicio de AWS por última vez. Esto lo ayuda a confirmar si el rol está actualmente activo. Para continuar, elija Yes, Delete.
-
Consulte las notificaciones de la consola de IAM para supervisar el progreso de la eliminación del rol vinculado al servicio. Como el proceso de eliminación del rol vinculado a servicios de IAM es asíncrono, dicha tarea puede realizarse correctamente o fallar después de que envía la solicitud de eliminación del rol vinculado a servicios. 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 hay recursos en el servicio que está utilizando el rol, entonces el motivo del error incluye una lista de recursos.
Eliminación de un rol vinculado a un servicio (CLI de IAM)
Puede utilizar los comandos de IAM desde la AWS Command Line Interface para eliminar un rol vinculado a un servicio. 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. Si estas condiciones no se cumplen, dicha solicitud se puede denegar.
Para eliminar un rol vinculado a un servicio (CLI)
-
Para comprobar el estado de la tarea de eliminación, debe apuntar el valor de
deletion-task-idde la respuesta. Escriba 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 AWSServiceRoleForEMRCleanup -
Escriba 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.
Eliminación de un rol vinculado a un servicio (API de IAM)
Puede utilizar la API de IAM para eliminar un rol vinculado a un servicio. 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. Si estas condiciones no se cumplen, dicha solicitud se puede denegar.
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 AWSServiceRoleForEMRCleanup.
Para comprobar el estado de la tarea de eliminación, debe apuntar el valor de
DeletionTaskIdde la respuesta. -
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.
Regiones admitidas para AWSServiceRoleForEMRCleanup
Amazon EMR admite el uso de roles vinculados a servicios AWSServiceRoleForEMRCleanup en las siguientes regiones.
| Nombre de la región | Identidad de la región | Compatibilidad en Amazon EMR |
|---|---|---|
| Este de EE. UU. (Norte de Virginia) | us-east-1 | Sí |
| Este de EE. UU. (Ohio) | us-east-2 | Sí |
| Oeste de EE. UU. (Norte de California) | us-west-1 | Sí |
| Oeste de EE. UU. (Oregón) | us-west-2 | Sí |
| Asia-Pacífico (Bombay) | ap-south-1 | Sí |
| Asia Pacífico (Osaka) | ap-northeast-3 | Sí |
| Asia-Pacífico (Seúl) | ap-northeast-2 | Sí |
| Asia-Pacífico (Singapur) | ap-southeast-1 | Sí |
| Asia-Pacífico (Sídney) | ap-southeast-2 | Sí |
| Asia-Pacífico (Tokio) | ap-northeast-1 | Sí |
| Canadá (centro) | ca-central-1 | Sí |
| Europa (Fráncfort) | eu-central-1 | Sí |
| Europa (Irlanda) | eu-west-1 | Sí |
| Europa (Londres) | eu-west-2 | Sí |
| Europa (París) | eu-west-3 | Sí |
| América del Sur (São Paulo) | sa-east-1 | Sí |