Zusätzliche IAM Beispielrichtlinien für Session Manager - AWS Systems Manager

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Zusätzliche IAM Beispielrichtlinien für Session Manager

Die folgenden Beispielrichtlinien helfen Ihnen beim Erstellen einer benutzerdefinierten AWS Identity and Access Management (IAM) -Richtlinien für alle Session Manager Benutzerzugriffsszenarien, die Sie unterstützen möchten.

Beispiel 1: Zugriff auf Dokumente in der Konsole gewähren

Sie können Benutzern erlauben, ein benutzerdefiniertes Dokument anzugeben, wenn sie eine Sitzung über die Session-Manager-Konsole starten. Die folgende IAM Beispielrichtlinie gewährt die Erlaubnis, auf Dokumente zuzugreifen, deren Namen mit SessionDocument- dem angegebenen AWS-Region und beginnen AWS-Konto.

Zum Verwenden dieses Beispiels ersetzen Sie jede example resource placeholder mit Ihren eigenen Informationen.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:GetDocument", "ssm:ListDocuments" ], "Resource": [ "arn:aws:ssm:region:account-id:document/SessionDocument-*" ] } ] }
Anmerkung

Die Session-Manager-Konsole unterstützt nur Sitzungsdokumente mit einem sessionType von Standard_Stream, die zur Definition von Sitzungseinstellungen verwendet werden. Weitere Informationen finden Sie unter Schema des Sitzungsdokuments.

Beispiel 2: Beschränken des Zugriffs auf bestimmte verwaltete Knoten

Sie können eine IAM Richtlinie erstellen, die definiert, mit welchen verwalteten Knoten ein Benutzer mithilfe von Session Manager eine Verbindung herstellen darf. Die folgende Richtlinie gewährt einem Benutzer beispielsweise die Berechtigung, seine Sitzungen auf drei bestimmten Knoten zu starten, zu beenden und fortzusetzen. Die Richtlinie schränkt den Benutzer ein, eine Verbindung zu anderen als den angegebenen Knoten herzustellen.

Anmerkung
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:StartSession" ], "Resource": [ "arn:aws:ec2:us-east-2:123456789012:instance/i-1234567890EXAMPLE", "arn:aws:ec2:us-east-2:123456789012:instance/i-abcdefghijEXAMPLE", "arn:aws:ec2:us-east-2:123456789012:instance/i-0e9d8c7b6aEXAMPLE", "arn:aws:ssm:us-east-2:123456789012:document/SSM-SessionManagerRunShell" ] }, { "Effect": "Allow", "Action": [ "ssm:TerminateSession", "ssm:ResumeSession" ], "Resource": [ "arn:aws:ssm:*:*:session/${aws:userid}-*" ] } ] }

Beispiel 3: Beschränken des Zugriffs anhand von Tags

Sie können den Zugriff auf verwaltete Knoten anhand bestimmter Tags einschränken. Im folgenden Beispiel darf der Benutzer Sitzungen (Effect: Allow, Action: ssm:StartSession, ssm:ResumeSession) auf jedem verwalteten Knoten (Resource: arn:aws:ec2:region:987654321098:instance/*) starten und fortsetzen, sofern es sich bei dem Knoten um einen Finanzknoten WebServer (ssm:resourceTag/Finance: WebServer) handelt. Wenn der Benutzer einen Befehl an einen verwalteten Knoten sendet, der nicht markiert ist oder einen anderen Tag als Finance: WebServer hat, enthält das Befehlsergebnis AccessDenied.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:StartSession" ], "Resource": [ "arn:aws:ec2:us-east-2:123456789012:instance/*" ], "Condition": { "StringLike": { "ssm:resourceTag/Finance": [ "WebServers" ] } } }, { "Effect": "Allow", "Action": [ "ssm:TerminateSession", "ssm:ResumeSession" ], "Resource": [ "arn:aws:ssm:*:*:session/${aws:userid}-*" ] }, { "Effect": "Allow", "Action": [ "ssm:StartSession" ], "Resource": [ "arn:aws:ssm:us-east-2:123456789012:document/SSM-SessionManagerRunShell" ] } ] }

Sie können IAM Richtlinien erstellen, mit denen ein Benutzer Sitzungen mit verwalteten Knoten starten kann, die mit mehreren Tags markiert sind. Die folgende Richtlinie ermöglicht dem Benutzer das Starten von Sitzungen mit verwalteten Knoten, auf denen beide angegebenen Tags angewendet wurden. Wenn ein Benutzer einen Befehl an einen verwalteten Knoten sendet, der nicht mit beiden Tags markiert ist, enthält das Befehlsergebnis AccessDenied.

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "ssm:StartSession" ], "Resource":"*", "Condition":{ "StringLike":{ "ssm:resourceTag/tag-key1":[ "tag-value1" ], "ssm:resourceTag/tag-key2":[ "tag-value2" ] } } }, { "Effect": "Allow", "Action": [ "ssm:StartSession" ], "Resource": [ "arn:aws:ssm:us-east-2:123456789012:document/SSM-SessionManagerRunShell" ] } ] }

Weitere Informationen zum Erstellen von IAM Richtlinien finden Sie unter Verwaltete Richtlinien und eingebundene Richtlinien im IAMBenutzerhandbuch. Weitere Informationen zum Taggen von verwalteten Knoten finden Sie unter Taggen Ihrer EC2 Amazon-Ressourcen im EC2Amazon-Benutzerhandbuch (Inhalt bezieht sich auf Windows and Linux verwaltete Knoten). Weitere Informationen zur Steigerung des Sicherheitsstatus in Bezug auf nicht autorisierte Befehle auf Root-Ebene auf Ihren verwalteten Knoten finden Sie unter Einschränken des Zugriffs auf Befehle auf Stammebene durch SSM Agent

Beispiel 4: Benutzern erlauben, ausschließlich von ihnen gestartete Sitzungen zu beenden

Session Manager bietet zwei Methoden, mit denen gesteuert werden kann, welche Sitzungen ein Verbundbenutzer in Ihrem AWS-Konto beenden darf.

  • Verwenden Sie die Variable {aws:userid} in einer AWS Identity and Access Management (IAM) -Berechtigungsrichtlinie. Verbundbenutzer können nur von ihnen gestartete Sitzungen beenden. Verwenden Sie für Benutzer ohne Verbundzugriff Methode 1. Verwenden Sie für Verbundbenutzer Methode 2.

  • Verwenden Sie Tags, die von AWS -Tags in einer IAM Berechtigungsrichtlinie bereitgestellt werden. Sie nehmen eine Bedingung in die Richtlinie auf, die es Benutzern erlaubt, nur Sitzungen zu beenden, die mit bestimmten Tags versehen sind, die von AWS bereitgestellt wurden. Diese Methode funktioniert für alle Konten, auch solche, die Verbundkennungen verwenden, IDs um Zugriff auf zu AWS gewähren.

Methode 1: Gewähren Sie TerminateSession Berechtigungen mithilfe der Variablen {aws:username}

Mit der folgenden IAM Richtlinie können Benutzer alle Sitzungen in Ihrem Konto anzeigen. IDs Benutzer können jedoch nur über von ihnen gestartete Sitzungen mit verwalteten Knoten interagieren. Ein Benutzer, dem die folgende Richtlinie zugewiesen wurde, kann keine Verbindungen mit Sitzungen anderer Benutzer herstellen oder diese beenden. Die Richtlinie verwendet die Variable {aws:username}, um dies zu erreichen.

Anmerkung

Diese Methode funktioniert nicht für Konten, die AWS mithilfe von IDs Verbundkennungen Zugriff auf gewähren.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "ssm:DescribeSessions" ], "Effect": "Allow", "Resource": [ "*" ] }, { "Action": [ "ssm:TerminateSession" ], "Effect": "Allow", "Resource": [ "arn:aws:ssm:*:*:session/${aws:username}-*" ] } ] }

Methode 2: Gewähren von TerminateSession Berechtigungen mithilfe von -bereitgestellten Tags AWS

Sie können steuern, welche Sitzungen ein Benutzer beenden kann, indem Sie eine Bedingung mit bestimmten Tag-Schlüsselvariablen in einer IAM Richtlinie verwenden. Die Bedingung gibt an, dass der Benutzer nur Sitzungen beenden kann, die mit einer oder beiden dieser spezifischen Tag-Schlüsselvariablen und einem angegebenen Wert gekennzeichnet sind.

Wenn ein Benutzer in Ihrem Umfeld eine Sitzung AWS-Konto startet, Session Manager wendet zwei Ressourcen-Tags auf die Sitzung an. Das erste Ressourcen-Tag ist aws:ssmmessages:target-id, mit dem Sie die ID des Ziels angeben, das der Benutzer beenden darf. Das andere Ressourcen-Tag ist aws:ssmmessages:session-id, mit einem Wert im Format role-id:caller-specified-role-name.

Anmerkung

Session Manager unterstützt keine benutzerdefinierten Tags für diese IAM Zugriffssteuerungsrichtlinie. Sie müssen die von bereitgestellten Ressourcen-Tags verwenden AWS, die unten beschrieben werden.

aws:ssmmessages:target-id

Mit diesem Tag-Schlüssel schließen Sie die ID des verwalteten Knotens als Wert in die Richtlinie ein. Im folgenden Richtlinienblock lässt die Bedingungsanweisung einen Benutzer nur den Knoten EXAMPLE i-02573cafcf beenden.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:TerminateSession" ], "Resource": "*", "Condition": { "StringLike": { "ssm:resourceTag/aws:ssmmessages:target-id": [ "i-02573cafcfEXAMPLE" ] } } } ] }

Wenn der Benutzer versucht, eine Sitzung zu beenden, für die ihm diese TerminateSession-Berechtigung nicht erteilt wurde, wird eine AccessDeniedException-Fehlermeldung angezeigt.

aws:ssmmessages:session-id

Dieser Tag-Schlüssel enthält als Wert in der Anforderung zum Starten einer Sitzung eine Variable für die Sitzungs-ID.

Das folgende Beispiel zeigt eine Richtlinie für Fälle, in denen der Aufrufertyp User ist. Der Wert, für den Sie für aws:ssmmessages:session-id angeben, ist die ID des Benutzers. In diesem Beispiel stellt AIDIODR4TAW7CSEXAMPLE die ID eines Benutzers in Ihrem AWS-Konto dar. Um die ID für einen Benutzer in Ihrem abzurufen, verwenden Sie den Befehl AWS-Konto,. IAM get-user Weitere Informationen finden Sie unter get-user im AWS Identity and Access Management Abschnitt des IAMBenutzerhandbuchs.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:TerminateSession" ], "Resource": "*", "Condition": { "StringLike": { "ssm:resourceTag/aws:ssmmessages:session-id": [ "AIDIODR4TAW7CSEXAMPLE" ] } } } ] }

Das folgende Beispiel zeigt eine Richtlinie für Fälle, in denen der Aufrufertyp AssumedRole ist. Sie können die Variable {aws:userid} für den Wert verwenden, den Sie für aws:ssmmessages:session-id angeben. Alternativ können Sie eine Rollen-ID für den Wert, den Sie für aws:ssmmessages:session-id angeben, fest codieren. Wenn Sie eine Rollen-ID fest codieren, müssen Sie den Wert im Format role-id:caller-specified-role-name angeben. Beispiel, AIDIODR4TAW7CSEXAMPLE:MyRole.

Wichtig

Damit System-Tags angewendet werden können, darf die von Ihnen bereitzustellende Rollen-ID nur folgende Zeichen enthalten: Unicode-Buchstaben, 0-9, Leerzeichen, _, ., :, /, =, +, -, @ und \.

Verwenden Sie den get-caller-identity Befehl, um die Rollen-ID für eine Rolle in Ihrem AWS-Konto abzurufen. Weitere Informationen finden Sie get-caller-identityin der AWS CLI Befehlsreferenz.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:TerminateSession" ], "Resource": "*", "Condition": { "StringLike": { "ssm:resourceTag/aws:ssmmessages:session-id": [ "${aws:userid}*" ] } } } ] }

Wenn ein Benutzer versucht, eine Sitzung zu beenden, für die ihm diese TerminateSession-Berechtigung nicht erteilt wurde, wird eine AccessDeniedException-Fehlermeldung angezeigt.

aws:ssmmessages:target-id und aws:ssmmessages:session-id

Sie können auch IAM Richtlinien erstellen, die es einem Benutzer ermöglichen, Sitzungen zu beenden, die mit beiden System-Tags gekennzeichnet sind, wie in diesem Beispiel dargestellt.

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "ssm:TerminateSession" ], "Resource":"*", "Condition":{ "StringLike":{ "ssm:resourceTag/aws:ssmmessages:target-id":[ "i-02573cafcfEXAMPLE" ], "ssm:resourceTag/aws:ssmmessages:session-id":[ "${aws:userid}*" ] } } } ] }

Beispiel 5: Benutzer erhalten vollständigen (administrativen) Zugriff auf alle Sitzungen

Mit der folgenden IAM Richtlinie können Benutzer vollständig mit allen verwalteten Knoten und allen Sitzungen, die von allen Benutzern für alle Knoten erstellt wurden. Sie sollte nur einem Administrator gewährt werden, der die volle Kontrolle über die Daten Ihres Unternehmens benötigt Session Manager Aktivitäten.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "ssm:StartSession", "ssm:TerminateSession", "ssm:ResumeSession", "ssm:DescribeSessions", "ssm:GetConnectionStatus" ], "Effect": "Allow", "Resource": [ "*" ] } ] }