Einrichten von Run Command
Bevor Sie Knoten mit Run Command, eine Funktion von AWS Systems Manager, verwalten können, müssen Sie eine AWS Identity and Access Management (IAM)-Richtlinie für jeden Benutzer konfigurieren, der Befehle ausführen wird. Wenn Sie in Ihren IAM-Richtlinien globale Bedingungsschlüssel für die SendCommand
-Aktion verwenden, müssen Sie den aws:ViaAWSService
-Bedingungsschlüssel angeben und den booleschen Wert auf true
setzen. Im Folgenden wird ein Beispiel gezeigt.
{ "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"} } } ] }
Sie müssen Ihre Knoten auch für Systems Manager konfigurieren. Weitere Informationen finden Sie unter Einrichten von verwalteten Knoten für AWS Systems Manager.
Wir empfehlen, die folgenden optionalen Einrichtungs-Aufgaben auszuführen, um den Sicherheitsstatus und die tägliche Verwaltung Ihrer verwalteten Knoten zu minimieren.
- Ausführung von Befehlen mit Amazon EventBridge überwachen
-
Mit EventBridge können Sie Änderungen des Status der Befehlsausführung protokollieren. Sie können eine Regel erstellen, die ausgeführt wird, sobald ein Statusübergang oder ein Übergang zu einem oder mehreren Status stattfindet, die für sie von Interesse sind. Sie können auch Run Command als Zielaktion bei Eintreten eines EventBridge-Ereignisses angeben. Weitere Informationen finden Sie unter Konfigurieren von EventBridge für Systems Manager-Ereignisse.
- Ausführung von Befehlen mit Amazon CloudWatch Logs überwachen
-
Sie können Run Command so konfigurieren, dass alle Befehlsausgaben und Fehlerprotokolle periodisch an eine Amazon CloudWatch-Protokollgruppe gesendet werden. Sie können diese Ausgabeprotokolle nahezu in Echtzeit überwachen, nach bestimmten Phrasen, Werten oder Mustern suchen und auf der Grundlage der Suche Warnungen erstellen. Weitere Informationen finden Sie unter Konfigurieren von Amazon CloudWatch Logs für Run Command.
- Den Zugriff von Run Command auf bestimmte verwaltete Knoten beschränken
-
Sie können die Fähigkeit eines Benutzers einschränken, Befehle auf verwalteten Knoten auszuführen, indem Sie AWS Identity and Access Management (IAM) verwenden. Insbesondere können Sie eine IAM-Richtlinie mit der Bedingung erstellen, dass der Benutzer nur Befehle auf verwalteten Knoten ausführen kann, die mit bestimmten Tags gekennzeichnet sind. Weitere Informationen finden Sie unter Den Zugriff von Run Command anhand von Tags beschränken.
Den Zugriff von Run Command anhand von Tags beschränken
In diesem Abschnitt wird beschrieben, wie die Fähigkeit eines Benutzers eingeschränkt werden kann, Befehle für verwaltete Knoten auszuführen, indem eine Tag-Bedingung in einer IAM-Richtlinie angegeben wird. Zu verwalteten Knoten gehören Amazon-EC2-Instances und Nicht-EC2-Knoten in einer Hybrid- und Multi-Cloud-Umgebung, die für Systems Manager konfiguriert sind. Obwohl die Informationen nicht explizit dargestellt werden, können Sie auch den Zugriff auf verwaltete AWS IoT Greengrass-Core-Geräte einschränken. Zuerst müssen Sie Ihre AWS IoT Greengrass-Geräte markieren. Weitere Informationen finden Sie unter Markieren Ihrer AWS IoT Greengrass Version 2-Ressourcen im AWS IoT Greengrass Version 2-Entwicklerhandbuch.
Sie können die Befehlsausführung auf bestimmte verwaltete Knoten beschränken, indem Sie eine IAM-Richtlinie erstellen, die eine Bedingung enthält, dass der Benutzer Befehle nur auf Knoten mit bestimmten Tags ausführen kann. Im folgenden Beispiel ist der Benutzer berechtigt, Run Command (Effect: Allow, Action: ssm:SendCommand
) zu verwenden, indem er ein beliebiges SSM-Dokument (Resource: arn:aws:ssm:*:*:document/*
) auf einem beliebigen Knoten (Resource: arn:aws:ec2:*:*:instance/*
) nutzt, unter der Bedingung, dass der Knoten ein Finance WebServer (ssm:resourceTag/Finance: WebServer
) ist. Wenn der Benutzer einen Befehl an einen Knoten sendet, der nicht markiert ist oder ein anderes Tag als Finance: WebServer
hat, zeigen die Ausführungsergebnisse 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" ] } } } ] }
Sie können IAM-Richtlinien erstellen, die es einem Benutzer erlauben, Befehle auf verwalteten Knoten auszuführen, die mit mehreren Tags markiert sind. Mit der folgenden Richtlinie hat der Benutzer die Möglichkeit, Befehle auf verwalteten Knoten auszuführen, die über zwei Tags verfügen. Wenn ein Benutzer einen Befehl an einen verwalteten Knoten sendet, der nicht mit beiden dieser Tags markiert ist, zeigen die Ausführungsergebnisse 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":"*" } ] }
Sie können auch IAM-Richtlinien erstellen, die es einem Benutzer erlauben, Befehle auf mehreren Gruppen von markierten verwalteten Knoten auszuführen. Die folgende Beispiel-Richtlinie erlaubt dem Benutzer die Ausführung von Befehlen entweder für eine der Gruppen von markierten Knoten oder für beide Gruppen.
{ "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":"*" } ] }
Weitere Informationen zum Erstellen von IAM-Richtlinien finden Sie unter Verwaltete Richtlinien und eingebundene Richtlinien im IAM-Benutzerhandbuch. Weitere Informationen über das Markieren verwalteter Knoten finden Sie unter Tag-Editor im AWS Resource Groups-Benutzerhandbuch.