Ejecución de una automatización mediante administración delegada - AWS Systems Manager

Ejecución de una automatización mediante administración delegada

De forma predeterminada, cuando se ejecuta una automatización, se hace en el contexto del usuario de AWS Identity and Access Management (IAM) que inicia la automatización. Esto significa que, por ejemplo, si la cuenta del usuario de IAM tiene permisos de administrador, la automatización se ejecuta con permisos de administrador y tiene acceso pleno a los recursos que configura la automatización. Como práctica recomendada de seguridad, le recomendamos que ejecute la automatización con un rol de servicio de IAM (lo que también se conoce como un rol de asunción) configurado con la política administrada AmazonSSMAutomationRole. El uso de un rol de servicio de IAM para ejecutar la automatización se denomina administración delegada.

Cuando se utiliza un rol de servicio, se puede ejecutar la automatización en los recursos de AWS, pero el usuario que ejecutó la automatización tiene el acceso restringido a dichos recursos (o no puede acceder a ellos). Por ejemplo, puede configurar un rol de servicio y utilizarlo con Automation para reiniciar una o más instancias de Amazon Elastic Compute Cloud (Amazon EC2). Automation es una capacidad de AWS Systems Manager. La automatización reinicia las instancias, pero el rol de servicio no concede al usuario permiso para acceder a dichas instancias.

Puede especificar un rol de servicio en el tiempo de ejecución de una automatización, o bien, puede crear manuales de procedimientos personalizados y especificar el rol de servicio directamente en el manual. Si especifica un rol de servicio, ya sea en el tiempo de ejecución o en un manual de procedimientos, el servicio se ejecuta en el contexto del rol de servicio especificado. Si no especifica un rol de servicio, el sistema crea una sesión temporal en el contexto del usuario y ejecuta la automatización.

nota

Debe especificar un rol de servicio para las automatizaciones que espera que se ejecuten durante más de 12 horas. Si inicia una automatización cuya ejecución tarda mucho tiempo en el contexto de un usuario, la sesión temporal del usuario caduca después de 12 horas.

La administración delegada garantiza mayor control y seguridad de los recursos de AWS. También permite tener una mejor experiencia en las auditorías, ya que las acciones se realizan sobre los recursos a través de un rol de servicio centralizado en lugar de varias cuentas de IAM.

Para ilustrar adecuadamente cómo puede funcionar la administración delegada en una organización, en este tema se describen las siguientes tareas como si fueran realizadas por tres personas diferentes de una organización:

  • crear una cuenta de usuario de IAM de prueba denominada AutomationRestrictedOperator (administrador)

  • crear un rol de servicio de IAM para Automation (administrador)

  • crear un manual de procedimientos sencillo (basado en uno existente) que especifique el rol de servicio (autor del manual)

  • ejecutar la automatización como usuario de prueba (operador restringido)

En algunas organizaciones, la misma persona se encarga de realizar estas tres tareas. Sin embargo, al identificar los diferentes roles, se muestra la forma en que la administración delegada permite mejorar la seguridad en las organizaciones complejas.

importante

Como práctica recomendada de seguridad, le recomendamos que utilice siempre un rol de servicio para ejecutar automatizaciones, incluso si es un administrador que realiza todas estas tareas.

Los procedimientos de esta sección contienen enlaces a temas de otras guías de AWS u otros temas de Systems Manager. Le recomendamos que abra los enlaces a otros temas en una pestaña nueva del navegador web para que no pierda la posición en que se encontraba en este tema.

Creación de una cuenta de usuario de prueba

En esta sección, se describe cómo crear una cuenta de usuario de IAM de prueba con permisos restringidos. El conjunto de permisos permite al usuario ejecutar automatizaciones, pero el usuario no tiene acceso a los recursos de AWS indicados como destino por Automation. El operador también puede ver los resultados de las automatizaciones. Se empieza creando la política de permisos de IAM personalizada y, a continuación, se crea la cuenta de usuario a la cual se asignan los permisos.

Creación de un usuario de IAM de prueba

  1. Cree una política de permisos denominada OperatorRestrictedPermissions. Para obtener información acerca de cómo crear una nueva política de permisos de IAM, consulte Creación de una política de IAM (consola) en la Guía del usuario de IAM. Cree la política en la pestaña JSON y especifique el siguiente conjunto de permisos.

    { "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "ssm:DescribeAutomationExecutions", "ssm:DescribeAutomationStepExecutions", "ssm:DescribeDocument", "ssm:GetAutomationExecution", "ssm:GetDocument", "ssm:ListDocuments", "ssm:ListDocumentVersions", "ssm:StartAutomationExecution" ], "Resource":"*" } ] }
  2. Cree una nueva cuenta de usuario de IAM denominada AutomationRestrictedOperator. Para obtener información acerca de cómo crear un nuevo usuario de IAM, consulte Creación de usuarios de IAM (consola) en la Guía del usuario de IAM. Cuando se le pregunte, seleccione Attach existing policies directly (Adjuntar directamente las políticas existentes) y elija la política que acaba de crear.

  3. Anote el nombre de usuario, la contraseña y la información de Console login link (Enlace de inicio de sesión en la consola). Tendrá que iniciar sesión en la cuenta más adelante en este tema.

Creación de un rol de servicio de IAM para Automation

El procedimiento siguiente contiene enlaces a otros temas que le ayudarán a crear el rol de servicio y a configurar Automation para que confíe en este rol.

Para crear el rol de servicio y configurar Automation para que confíe en él

  1. Cree el rol de servicio de Automation. Para obtener información, consulte Tarea 1: crear un rol de servicio para Automation.

  2. Anote el nombre de recurso de Amazon (ARN) del rol de servicio. Especificará este ARN en el procedimiento siguiente.

Creación de un manual de procedimientos personalizado

En esta sección, se describe cómo crear un manual de procedimientos personalizado que reinicie instancias EC2. AWS proporciona un manual de procedimientos para reiniciar las instancias denominadas AWS-RestartEC2Instance. En el siguiente procedimiento, se copia el contenido de dicho manual de procedimientos para mostrarle cómo debe ingresar el rol de servicio en un manual de procedimientos al crear el propio. Al especificar el rol de servicio directamente en el manual de procedimientos, el usuario que usa el manual de procedimientos no requiere los permisos iam:PassRole. Sin los permisos iam:PassRole, el usuario no puede utilizar el rol de servicio en otros lugares de AWS.

Para crear un manual de procedimientos personalizado

  1. Abra la consola de AWS Systems Manager en https://console.aws.amazon.com/systems-manager/.

  2. En el panel de navegación, elija Documents.

    -o bien-

    Si la página de inicio de AWS Systems Manager se abre primero, elija el icono de menú ( ) para abrir el panel de navegación y, a continuación, elija Documents (Documentos) en el panel de navegación.

  3. Elija Create document.

  4. En el campo Name (Nombre), ingrese un nombre para el manual de procedimientos, por ejemplo, Restart-EC2InstanceDemo.

  5. En la lista Document type, elija Automation document.

  6. En la sección Content (Contenido), elija JSON y, a continuación, pegue el contenido siguiente. Sustituya AssumeRoleARN por el ARN del rol de servicio que ha creado en el procedimiento anterior.

    { "description": "Restart EC2 instances(s)", "schemaVersion": "0.3", "assumeRole": "AssumeRoleARN", "parameters": { "InstanceId": { "type": "StringList", "description": "(Required) EC2 Instance to restart" } }, "mainSteps": [ { "name": "stopInstances", "action": "aws:changeInstanceState", "inputs": { "InstanceIds": "{{ InstanceId }}", "DesiredState": "stopped" } }, { "name": "startInstances", "action": "aws:changeInstanceState", "inputs": { "InstanceIds": "{{ InstanceId }}", "DesiredState": "running" } } ] }
  7. Elija Create document.

Ejecución del manual de procedimientos personalizado

En el siguiente procedimiento, se describe cómo ejecutar el manual de procedimientos que acaba de crear con el rol de operador restringido que creó anteriormente en este tema. El usuario puede ejecutar el manual de procedimientos que se creó anteriormente porque los permisos de su cuenta de IAM le permiten verlo y ejecutarlo. Sin embargo, el usuario no puede iniciar sesión en las instancias que se reiniciarán con esta automatización.

  1. En https://console.aws.amazon.com/ec2/, copie los ID de la instancia o las instancias que desee reiniciar utilizando la siguiente automatización.

  2. Cierre la sesión de la AWS Management Console y, a continuación, inicie sesión con la información del campo Console login link (Enlace de inicio de sesión en la consola) de la cuenta de usuario de prueba que copió anteriormente.

  3. Abra la consola de AWS Systems Manager en https://console.aws.amazon.com/systems-manager/.

  4. En el panel de navegación, elija Automation.

    -o bien-

    Si la página de inicio de AWS Systems Manager se abre primero, elija el icono de menú ( ) para abrir el panel de navegación y, a continuación, elija Automation.

  5. Elija Execute automation (Ejecutar automatización).

  6. Elija el manual de procedimientos personalizado que creó anteriormente en este tema.

  7. En la sección Document details, asegúrese de que el valor de Document version sea 1 (Default).

  8. Elija Next (Siguiente).

  9. En la sección Execution mode (Modo de ejecución), seleccione Simple execution (Ejecución sencilla).

  10. En la sección Input parameters (Parámetros de entrada), ingrese uno o más ID que correspondan a las instancias que desee reiniciar y, a continuación, elija Execute (Ejecutar).

En Execution details (Detalles de la ejecución), se describe el estado de la automatización. El paso 1 detiene las instancias. El paso 2 inicia las instancias.