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.
Themen
- Beispiel 1: Zugriff auf Dokumente in der Konsole gewähren
- Beispiel 2: Beschränken des Zugriffs auf bestimmte verwaltete Knoten
- Beispiel 3: Beschränken des Zugriffs anhand von Tags
- Beispiel 4: Benutzern erlauben, ausschließlich von ihnen gestartete Sitzungen zu beenden
- Beispiel 5: Benutzer erhalten vollständigen (administrativen) Zugriff auf alle Sitzungen
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
Informationen zu verbundenen Benutzern finden Sie unterBeispiel 4: Benutzern erlauben, ausschließlich von ihnen gestartete Sitzungen zu beenden.
{ "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:
) starten und fortsetzen, sofern es sich bei dem Knoten um einen Finanzknoten WebServer (region
:987654321098
:instance/*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 eineAccessDeniedException
-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üraws:ssmmessages:session-id
angeben, ist die ID des Benutzers. In diesem Beispiel stelltAIDIODR4TAW7CSEXAMPLE
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,. IAMget-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üraws:ssmmessages:session-id
angeben. Alternativ können Sie eine Rollen-ID für den Wert, den Sie füraws:ssmmessages:session-id
angeben, fest codieren. Wenn Sie eine Rollen-ID fest codieren, müssen Sie den Wert im Format
angeben. Beispiel,role-id
:caller-specified-role-name
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 eineAccessDeniedException
-Fehlermeldung angezeigt. aws:ssmmessages:target-id
undaws: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": [ "*" ] } ] }