Erforderliche Berechtigungen für den Zugriff auf IAM-Ressourcen
Ressourcen sind Objekte innerhalb eines Services. Zu den IAM-Ressourcen gehören Gruppen, Benutzer, Rollen und Richtlinien. Wenn Sie mit Root-Benutzer 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 AWS Identity and Access Management.
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 der entsprechende API-Befehl hat: 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
mit Ihrer AWS-Konto-ID): account-id
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "iam:*AccessKey*", "Resource": "arn:aws:iam::
account-id
: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
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-Konto-Informationen und Informationen über den Prinzipal zu erhalten. Der Auftraggeber 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. 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 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ährung 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 Zugriff für einen IAM-Benutzer auf ein anderes AWS-Konto gewähren, das Sie besitzen.
Anmerkung
Einige Services unterstützen ressourcenbasierte Richtlinien wie in Identitätsbasierte Richtlinien und ressourcenbasierte Richtlinien beschrieben (wie 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) anzuhängen, die Sie freigeben möchten. In der ressourcenbasierten Richtlinie kann das AWS-Konto angegeben werden, das die Berechtigung zum Zugriff auf die Ressource hat.
Service-Berechtigungen für den Zugriff auf einen anderen Service
Viele AWS-Services greifen auf andere AWS-Services zu. Zum Beispiel mehrereAWS-Dienste, einschließlich Amazon EMR, Elastic Load Balancing und Amazon EC2 Auto Scaling, verwalten Amazon EC2-Instances. Andere AWS-Dienste nutzen Amazon S3-Buckets, Amazon SNS-Themen, Amazon SQS-Warteschlangen und so weiter.
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. (Detaillierte Informationen finden Sie unter Granting Permissions to Pipelines with IAM im AWS Data PipelineDeveloper Guide.)
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 Rolle zum Delegieren von Berechtigungen an einen AWS-Service erstellen.
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 Gewähren von Berechtigungen für einen Benutzer zum Übergeben einer Rolle an einen AWS-Service.
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.