Erforderliche Berechtigungen für den Zugriff auf IAM-Ressourcen - AWS Identity and Access Management

Erforderliche Berechtigungen für den Zugriff auf IAM-Ressourcen

Ressourcen sind Objekte innerhalb eines Service. Zu IAM-Ressourcen gehören Gruppen, Benutzer, Rollen und Richtlinien. Wenn Sie mit Stammbenutzer des AWS-Kontos-Anmeldeinformationen angemeldet sind, gibt es keine Einschränkungen bei der Verwaltung von IAM-Anmeldeinformationen oder IAM-Ressourcen. Allerdings müssen den IAM-Benutzern explizit Berechtigungen für die Verwaltung von Anmeldeinformationen oder IAM-Ressourcen erteilt werden. Sie können dies durch das Zuweisen einer identitätsbasierten Richtlinie zum Benutzer erledigen.

Anmerkung

Wenn in der AWS-Dokumentation von einer IAM-Richtlinie eine Kategorien die Rede ist, ist eine identitätsbasierte, vom Kunden verwaltete Richtlinie gemeint. Details zu den Richtlinienkategorien finden Sie unter Richtlinien und Berechtigungen in IAM.

Berechtigungen für die Verwaltung von IAM-Identitäten

Die Berechtigungen, die für die Verwaltung von IAM-Gruppen, -Benutzern, -Rollen und -Anmeldeinformationen erforderlich sind, entsprechen in der Regel den API-Aktionen für die Aufgabe. Um z. B. IAM-Benutzer anzulegen, benötigen Sie die iam:CreateUser-Berechtigung, die über den entsprechenden API-Befehl verfügt: CreateUser. Um einem IAM-Benutzer zu erlauben, andere IAM-Benutzer zu erstellen, können Sie diesem Benutzer zum Beispiel die folgende IAM-Richtlinie zuweisen:

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "iam:CreateUser", "Resource": "*" } }

In einer Richtlinie ist der Wert des Elements Resource von der Aktion abhängig und auf welche Ressourcen diese Aktion Einfluss nimmt. Im vorherigen Beispiel erteilt die Richtlinie dem Benutzer die Berechtigung, alle möglichen Benutzer zu erstellen (* ist ein Platzhalter, der mit allen Zeichenfolgen übereinstimmt). Im Gegensatz dazu verfügt eine Richtlinie, über die Benutzer nur ihre eigenen Zugriffsschlüssel ändern können (API-Aktionen CreateAccessKey und UpdateAccessKey), in der Regel über ein Resource-Element. In diesem Fall enthält der ARN eine Variable (${aws:username}), die sich, wie im folgenden Beispiel, in den Namen des aktuellen Benutzers auflöst:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ListUsersForConsole", "Effect": "Allow", "Action": "iam:ListUsers", "Resource": "arn:aws:iam::*:*" }, { "Sid": "ViewAndUpdateAccessKeys", "Effect": "Allow", "Action": [ "iam:UpdateAccessKey", "iam:CreateAccessKey", "iam:ListAccessKeys" ], "Resource": "arn:aws:iam::*:user/${aws:username}" } ] }

Im vorherigen Beispiel ist ${aws:username} eine Variable, die den Benutzernamen auf den aktuellen Benutzer auflöst. Weitere Informationen zu Richtlinienvariablen finden Sie unter IAM-Richtlinienelemente: Variablen und Tags.

Mit einem Platzhalterzeichen (*) im Aktionsnamen können Sie oft das Erteilen von Berechtigungen für alle Aktionen einer bestimmten Aufgabe einfacher gestalten. Wenn Sie beispielsweise Benutzern die Berechtigung zur Durchführung aller IAM-Aktionen erteilen möchten, können Sie iam:* für die Aktion verwenden. Um den Benutzern zu erlauben, die Aktionen auszuführen, die sich nur auf die Berechtigung zur Durchführung von Zugriffsschlüsseln beziehen, können Sie iam:*AccessKey* im Element Action in einer Richtlinienanweisung verwenden. So erhält der Benutzer die Berechtigung zum Ausführen der Aktionen CreateAccessKey, DeleteAccessKey, GetAccessKeyLastUsed, ListAccessKeys und UpdateAccessKey. (Wenn später eine Aktion zu IAM hinzugefügt wird, deren Name "AccessKey" enthält, wird durch Angabe von iam:*AccessKey* für das Action-Element dem Benutzer ebenfalls die Berechtigung für diese neue Aktion erteilt.) Das folgende Beispiel zeigt eine Richtlinie, mit der dem Benutzer die Berechtigung erteilt wird, alle Aktionen in Bezug auf seine eigenen Zugriffsschlüssel auszuführen (ersetzen Sie ACCOUNT-ID-WITHOUT-HYPHENS mit Ihrer AWS-Konto-ID):

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "iam:*AccessKey*", "Resource": "arn:aws:iam::ACCOUNT-ID-WITHOUT-HYPHENS:user/${aws:username}" } }

Für einige Aufgaben, wie z. B. das Löschen einer Gruppe, sind mehrere Aktionen erforderlich: Sie müssen zunächst die Benutzer aus der Gruppe entfernen, dann die Gruppenrichtlinien trennen oder löschen und schließlich die Gruppe löschen. Wenn Sie einem Benutzer die Berechtigung zum Löschen einer Gruppe erteilen möchten, müssen Sie sicherstellen, dass Sie ihm alle Berechtigung zur Ausführung der damit zusammenhängenden Aktionen erteilen.

Berechtigungen zum Arbeiten in der AWS Management Console

In den vorherigen Beispielen sind Richtlinien aufgeführt, die dem Benutzer die Berechtigung erteilen, Aktionen mit der AWS CLI oder den AWS-SDKs auszuführen.

Während die Benutzer mit der Konsole arbeiten, stellt die Konsole Anfragen an IAM um Gruppen, Benutzer, Rollen und Richtlinien sowie einer Gruppe zugeordnete Richtlinien abzurufen. Die Konsole stellt außerdem Anforderungen, um AWS-Kontoinformationen und Informationen über den Prinzipal zu erhalten. Der Prinzipal ist der Benutzer, der in der Konsole Anforderungen stellt.

Im Allgemeinen müssen Sie für die Ausführung einer Aktion nur die passende Aktion in einer Richtlinie haben. Um einen Benutzer anzulegen, benötigen Sie die Berechtigung zum Aufrufen der Aktion CreateUser. Wenn Sie die Konsole verwenden, um eine Aktion auszuführen, müssen Sie über die Berechtigung zum Anzeigen, Auflisten, Abrufen oder anderweitigen Anzeigen einer Ressource in der Konsole verfügen. Dies ist notwendig, damit Sie durch die Konsole navigieren können, um die angegebene Aktion auszuführen. Wenn beispielsweise der Benutzer Jorge die Konsole zum Ändern seines eigenen Zugriffsschlüssel verwenden möchte, ruft er die IAM-Konsole auf und klickt auf Users (Benutzer). Diese Aktion bewirkt, dass die Konsole eine ListUsers-Anforderung stellt. Wenn Jorge nicht über die Berechtigung für die Aktion iam:ListUsers verfügt, verweigert die Konsole den Zugriff beim Versuch, die Benutzer aufzulisten. Daher kann Jorge nicht seinen eigenen Namen und Zugriffsschlüssel ermitteln, selbst wenn er Berechtigungen für die Aktionen CreateAccessKey und UpdateAccessKey hat.

Wenn beispielsweise der Benutzer Bob die Konsole zum Ändern seines eigenen Zugriffsschlüssel verwenden möchte, ruft er die IAM-Konsole auf und klickt auf Users (Benutzer). Diese Aktion bewirkt, dass die Konsole eine ListUsers-Anforderung stellt. Wenn Bob nicht über die Berechtigung für die Aktion iam:ListUsers verfügt, verweigert die Konsole den Zugriff beim Versuch, die Benutzer aufzulisten. Daher kann Bob nicht seinen eigenen Namen und Zugriffsschlüssel ermitteln, selbst wenn er Berechtigungen für die Aktionen CreateAccessKey und UpdateAccessKey hat.

Wenn Sie den Benutzern Berechtigungen zum Verwalten von Benutzern, Gruppen, Rollen, Richtlinien und Anmeldeinformationen mit der AWS Management Console erteilen möchten, müssen Sie die Berechtigungen für die von der Konsole ausgeführten Aktionen berücksichtigen. Beispiele für Richtlinien, die Sie verwenden können, um einem Benutzer diese Berechtigungen zu erteilen, finden Sie unter Beispielrichtlinien für die Verwaltung von IAM-Ressourcen.

Gewähren von Berechtigungen über AWS-Konten hinweg

Sie können direkt in Ihrem eigenen Konto IAM-Benutzern Zugriff auf Ihre Ressourcen gewähren. Wenn Benutzer von einem anderen Konto aus Zugriff auf Ihre Ressourcen benötigen, können Sie eine IAM-Rolle erstellen, bei der es sich um eine Entität handelt, die Berechtigungen enthält, jedoch keinem bestimmten Benutzer zugeordnet ist. Benutzer von anderen Konten können dann die Rolle verwenden und entsprechend den Berechtigungen, die Sie der Rolle zugeordnet haben, auf Ressourcen zugreifen. Weitere Informationen finden Sie unter Gewähren von Zugriff für einen IAM-Benutzer auf ein anderes AWS-Konto, das Sie besitzen.

Anmerkung

Einige Services unterstützen ressourcenbasierte Richtlinien, wie in Identitätsbasierte Richtlinien und ressourcenbasierte Richtlinien beschrieben (z. B. Amazon S3, Amazon SNS und Amazon SQS). Für diese Services besteht eine Alternative zur Verwendung von Rollen darin, eine Richtlinie an die Ressource (Bucket, Thema oder Warteschlange) anzufügen, die Sie freigeben möchten. Die ressourcenbasierte Richtlinie kann das AWS-Konto angeben, das über Berechtigungen für den Zugriff auf die Ressource verfügt.

Service-Berechtigungen für den Zugriff auf einen anderen Service

Viele AWS-Services greifen auf andere AWS-Services zu. So verwalten beispielsweise mehrere AWS-Services —einschließlich Amazon EMR, Elastic Load Balancing und Amazon EC2 Auto Scaling — Amazon EC2-Instances. Andere AWS-Services nutzen Amazon S3-Buckets, Amazon SNS-Themen, Amazon SQS-Warteschlangen usw.

Das Szenario für das Verwalten von Berechtigungen in diesen Fällen variiert je nach Service. Hier finden Sie einige Beispiele für die Art und Weise, wie Berechtigungen für verschiedene Services verarbeitet werden:

  • In Amazon EC2 Auto Scaling müssen Benutzer über die Berechtigung verfügen, Auto Scaling zu verwenden. Es muss ihnen jedoch nicht explizit die Berechtigung erteilt werden, Amazon EC2-Instances zu verwalten.

  • In AWS Data Pipeline bestimmt eine IAM-Rolle, was eine Pipeline tun kann. Benutzer benötigen die Berechtigung, die Rolle zu übernehmen. (Weitere Informationen finden Sie unter Erteilen von Berechtigungen für Pipelines mit IAM im AWS Data Pipeline-Entwicklerhandbuch.)

Weitere Informationen darüber, wie Berechtigungen ordnungsgemäß konfiguriert werden, sodass ein AWS-Service in der Lage ist, die beabsichtigten Aufgaben durchzuführen, finden Sie in der Dokumentation für den Service, den Sie aufrufen. Wie Sie eine Rolle für einen Service anlegen, erfahren Sie in Erstellen einer Rolle zum Delegieren von Berechtigungen an einen AWS-Service.

Konfigurieren eines Service mit einer IAM-Rolle, sodass er in Ihrem Namen arbeitet

Wenn Sie einen AWS-Service für die Arbeit in Ihrem Namen konfigurieren möchten, stellen Sie typischerweise die ARN für eine IAM-Rolle zur Verfügung, die definiert, was der Service tun darf. AWS überprüft, ob Sie die Berechtigung haben, eine Rolle an einen Service zu übergeben. Weitere Informationen finden Sie unter Erteilen von Berechtigungen, mit denen ein Benutzer eine Rolle an einen AWS-Service übergeben kann.

Erforderliche Aktionen

Aktionen stellen die Dinge dar, die Sie mit einer Ressource machen können (z. B. Anzeigen, Anlegen, Bearbeiten und Löschen der Ressource). Aktionen werden von jedem AWS-Service definiert.

Damit ein jemand eine Aktion ausführen kann, müssen Sie die erforderlichen Aktionen in eine Richtlinie aufnehmen, die für die aufrufende Identität oder die betroffene Ressource gilt. Im Allgemeinen müssen Sie, um die für die Ausführung einer Aktion erforderliche Berechtigung zu erteilen, diese Aktion in Ihre Richtlinie aufnehmen. Um beispielsweise einen Benutzer zu erstellen, müssen Sie Ihrer Richtlinie die Aktion CreateUser hinzufügen.

In einigen Fällen kann die eine Aktion erfordern, dass Sie zusätzliche Aktionen in Ihre Richtlinie aufnehmen. Um z. B. jemandem die Berechtigung zu geben, ein Verzeichnis in AWS Directory Service mit der ds:CreateDirectory-Operation zu erstellen, müssen Sie die folgenden Aktionen in ihre Richtlinie aufnehmen:

  • ds:CreateDirectory

  • ec2:DescribeSubnets

  • ec2:DescribeVpcs

  • ec2:CreateSecurityGroup

  • ec2:CreateNetworkInterface

  • ec2:DescribeNetworkInterfaces

  • ec2:AuthorizeSecurityGroupIngress

  • ec2:AuthorizeSecurityGroupEgress

Wenn Sie eine Richtlinie mit dem visuellen Editor erstellen oder bearbeiten, erhalten Sie Warnungen und Aufforderungen, die Sie bei der Auswahl aller erforderlichen Aktionen für Ihre Richtlinie unterstützen.

Weitere Informationen zu den Berechtigungen, die zum Erstellen eines Verzeichnisses in AWS Directory Service erforderlich sind, finden Sie unter Beispiel 2: Einem Benutzer das Erstellen eines Verzeichnisses erlauben.