Configuración de Run Command
Antes de poder administrar nodos con Run Command, una capacidad de AWS Systems Manager, debe configurar una política de AWS Identity and Access Management (IAM) para todos los usuarios que vayan a ejecutar comandos. Si utiliza alguna clave de condición global para la acción SendCommand
en sus políticas de IAM, debe incluir la clave de condición aws:ViaAWSService
y establecer el valor booleano en true
. A continuación, se muestra un ejemplo.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["ssm:SendCommand"], "Resource": ["arn:aws:ssm:
region
:account
:document/YourDocument
"], "Condition": { "StringEquals": { "aws:SourceVpce": ["vpce-example1234
"] } } }, { "Effect": "Allow", "Action": ["ssm:Sendcommand"], "Resource": ["arn:aws:ssm:region
:account
:document/YourDocument
"], "Condition": { "Bool": {"aws:ViaAWSService": "true"} } } ] }
También debe configurar los nodos para Systems Manager. Para obtener más información, consulte Configuración de AWS Systems Manager.
Le recomendamos completar las siguientes tareas de configuración opcionales para ayudar a minimizar la posición de seguridad y la gestión diaria de los nodos administrados.
- Monitoreo de la ejecución de comandos con Amazon EventBridge
-
Puede utilizar EventBridge para registrar los cambios de estado de la ejecución de comandos. Tiene la opción de crear una regla que se ejecute siempre que haya una transición de estado o cuando haya una transición a uno o varios estados de interés. También puede especificar Run Command como una acción de destino cuando se produce un evento de EventBridge. Para obtener más información, consulte Configuración de EventBridge para eventos de Systems Manager.
- Monitoreo de la ejecución de comandos con los Registros de Amazon CloudWatch
-
Puede configurar Run Command para que envíe periódicamente todos los resultados y los registros de errores de los comandos a un grupo de registros de Amazon CloudWatch. Puede monitorizar estos registros de salida prácticamente en tiempo real, buscar frases, valores o patrones específicos y crear alarmas en función de la búsqueda. Para obtener más información, consulte Configuración de Registros de Amazon CloudWatch para Run Command.
- Restrinja el acceso de Run Command a nodos administrados específicos
-
Puede restringir la capacidad de un usuario para ejecutar comandos en nodos administrados mediante AWS Identity and Access Management (IAM). En concreto, puede crear una política de IAM con la condición de que el usuario solo pueda ejecutar comandos en nodos administrados que estén etiquetados con etiquetas específicas. Para obtener más información, consulte Restricción de acceso de Run Command basado en etiquetas.
Restricción de acceso de Run Command basado en etiquetas
En esta sección se describe cómo restringir la capacidad de un usuario para ejecutar comandos en nodos administrados especificando una condición de etiqueta en una política de IAM. Los nodos administrados incluyen instancias de Amazon EC2 y nodos que no son de EC2 en un entorno híbrido y multinube configurado para Systems Manager. Aunque la información no se presenta explícitamente, también puede restringir el acceso a dispositivos de núcleo administrados de AWS IoT Greengrass. Para comenzar, debe etiquetar los dispositivos de AWS IoT Greengrass. Para obtener más información, consulte Etiquetar los recursos de AWS IoT Greengrass Version 2 en la Guía para desarrolladores de AWS IoT Greengrass Version 2.
Puede restringir la ejecución de comandos a determinados nodos administrados mediante la creación de una política de IAM que incluya la condición de que el usuario solo pueda ejecutar comandos en los nodos que tengan determinadas etiquetas. En el ejemplo siguiente, el usuario tiene permitido utilizar Run Command (Effect: Allow, Action: ssm:SendCommand
) mediante cualquier documento de SSM (Resource: arn:aws:ssm:*:*:document/*
) en cualquier nodo (Resource: arn:aws:ec2:*:*:instance/*
) con la condición de que el nodo sea un servidor web de finanzas (ssm:resourceTag/Finance: WebServer
). Si el usuario envía un comando a un nodo que no está etiquetado o que tiene una etiqueta que no es Finance: WebServer
, los resultados de la ejecución mostrarán AccessDenied
.
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "ssm:SendCommand" ], "Resource":[ "arn:aws:ssm:*:*:document/*" ] }, { "Effect":"Allow", "Action":[ "ssm:SendCommand" ], "Resource":[ "arn:aws:ec2:*:*:instance/*" ], "Condition":{ "StringLike":{ "ssm:resourceTag/Finance":[ "WebServers" ] } } } ] }
Puede crear políticas de IAM que permitan al usuario ejecutar comandos en los nodos administrados etiquetados con varias etiquetas. La siguiente política permite al usuario ejecutar comandos en nodos administrados que tienen dos etiquetas. Si un usuario envía un comando a un nodo que no está etiquetado con estas dos etiquetas, los resultados de la ejecución mostrarán AccessDenied
.
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "ssm:SendCommand" ], "Resource":"*", "Condition":{ "StringLike":{ "ssm:resourceTag/tag_key1":[ "tag_value1" ], "ssm:resourceTag/tag_key2":[ "tag_value2" ] } } }, { "Effect":"Allow", "Action":[ "ssm:SendCommand" ], "Resource":[ "arn:aws:ssm:us-west-1::document/AWS-*", "arn:aws:ssm:us-east-2::document/AWS-*" ] }, { "Effect":"Allow", "Action":[ "ssm:UpdateInstanceInformation", "ssm:ListCommands", "ssm:ListCommandInvocations", "ssm:GetDocument" ], "Resource":"*" } ] }
También puede crear políticas de IAM que permitan al usuario ejecutar comandos en varios grupos de nodos administrados etiquetados. La siguiente política de ejemplo permite al usuario ejecutar comandos en uno de los grupos de nodos etiquetados o en ambos grupos.
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "ssm:SendCommand" ], "Resource":"*", "Condition":{ "StringLike":{ "ssm:resourceTag/tag_key1":[ "tag_value1" ] } } }, { "Effect":"Allow", "Action":[ "ssm:SendCommand" ], "Resource":"*", "Condition":{ "StringLike":{ "ssm:resourceTag/tag_key2":[ "tag_value2" ] } } }, { "Effect":"Allow", "Action":[ "ssm:SendCommand" ], "Resource":[ "arn:aws:ssm:us-west-1::document/AWS-*", "arn:aws:ssm:us-east-2::document/AWS-*" ] }, { "Effect":"Allow", "Action":[ "ssm:UpdateInstanceInformation", "ssm:ListCommands", "ssm:ListCommandInvocations", "ssm:GetDocument" ], "Resource":"*" } ] }
Para obtener más información acerca de la creación de políticas de IAM, consulte Políticas administradas y políticas insertadas en la Guía del usuario de IAM. Para obtener más información acerca del etiquetado de nodos administrados, consulte Editor de etiquetas en la Guía del usuario de AWS Resource Groups.