Rolle zum Delegieren von Berechtigungen an einen AWS-Service erstellen
Viele AWS-Services erfordern, dass Sie Rollen verwenden, um dem Service den Zugriff auf Ressourcen in anderen Services in Ihrem Namen zu ermöglichen. Eine Rolle, die ein Service übernimmt, um Aktionen in Ihrem Namen durchzuführen, wird als Servicerolle bezeichnet. Wenn eine Rolle einen speziellen Zweck für einen Service erfüllt, wird sie als serviceverknüpfte Rolle kategorisiert. Informationen zu den Services, die serviceverknüpfte Rollen unterstützen, oder zu Services mit einer Form der temporären Anmeldeinformationen finden Sie unter AWS-Services, die mit IAM funktionieren. Wenn Sie erfahren möchten, wie ein einzelner Service Rollen verwendet, wählen Sie den Servicenamen in der Tabelle aus, um die Dokumentation des jeweiligen Service anzuzeigen.
Beim Festlegen der PassRole-Berechtigung sollten Sie darauf achten, dass ein Benutzer keine Rolle übergibt, die über mehr Berechtigungen verfügt, als Sie dem Benutzer gewähren möchten. Zum Beispiel darf Alice möglicherweise keine Amazon-S3-Aktionen ausführen. Wenn Alice einem Service eine Rolle übergeben könnte, der Amazon-S3-Aktionen zulässt, könnte der Service bei der Ausführung des Auftrags Amazon-S3-Aktionen im Namen von Alice durchführen.
Informationen darüber, wie Rollen Ihnen das Delegieren von Berechtigungen erleichtern, finden Sie unter Rollenbegriffe und -konzepte.
Servicerollen-Berechtigungen
Sie müssen Berechtigungen konfigurieren, damit eine IAM-Entität (Benutzer oder Rolle) eine serviceverknüpfte Rolle erstellen oder bearbeiten kann.
Anmerkung
Der ARN für eine serviceverknüpfte Rolle enthält einen Service-Prinzipal, der in den folgenden Richtlinien als angegeben ist. Versuchen Sie nicht, den Service-Prinzipal zu erraten, da es auf Groß- und Kleinschreibung ankommt und das Format je nach AWS-Services variieren kann. Um den Dienstauftraggeber für einen Service zu sehen, sehen Sie sich seine serviceverknüpfte Rollendokumentation an.SERVICE-NAME.amazonaws.com
So erlauben Sie einer IAM-Entität das Erstellen einer bestimmten serviceverknüpften Rolle
Fügen Sie die folgende Richtlinie der IAM-Entität hinzu, um die Servicerolle zu erstellen. Mit dieser Richtlinie können Sie eine Servicerolle für den angegebenen Service und mit einem bestimmten Namen erstellen. Anschließend können Sie verwaltete oder Inline-Richtlinien an die Rolle anfügen.
So erlauben Sie einer IAM-Entität das Erstellen einer beliebigen Servicerolle
AWS empfiehlt, nur Administratorbenutzern das Erstellen einer beliebigen Servicerolle zu erlauben. Eine Person mit Berechtigungen zum Erstellen einer Rolle und zum Anfügen einer Richtlinie kann ihre eigenen Berechtigungen eskalieren. Erstellen Sie stattdessen eine Richtlinie, die es ihnen ermöglicht, nur die Rollen zu erstellen, die sie benötigen. Oder lassen Sie einen Administrator die Servicerolle in ihrem Namen erstellen.
Um eine Richtlinie anzufügen, die es einem Administrator ermöglicht, auf Ihr gesamtesAWS-Konto zuzugreifen, benutzen Sie die verwaltete AdministratorAccess
So erlauben Sie einer IAM-Entität das Bearbeiten einer bestimmten Servicerolle
Fügen Sie die folgende Richtlinie der IAM-Entität hinzu, um die Servicerolle zu bearbeiten.
So erlauben Sie einer IAM-Entität das Löschen einer bestimmten Servicerolle
Fügen Sie die folgende Anweisung der Berechtigungsrichtlinie für die IAM-Entität hinzu, um die angegebene Servicerolle zu löschen.
{ "Effect": "Allow", "Action": "iam:DeleteRole", "Resource": "arn:aws:iam::*:role/SERVICE-ROLE-NAME" }
So erlauben Sie einer IAM-Entität das Löschen einer beliebigen Servicerolle
AWS empfiehlt, nur Administratorbenutzern das Löschen einer beliebigen Servicerolle zu erlauben. Erstellen Sie stattdessen eine Richtlinie, mit der sie nur die Rollen löschen können, die sie benötigen, oder dass ein Administrator die Servicerolle in ihrem Namen löscht.
Um eine Richtlinie anzufügen, die es einem Administrator ermöglicht, auf Ihr gesamtesAWS-Konto zuzugreifen, benutzen Sie die verwaltete AdministratorAccess
Erstellen einer Rolle für einen AWS-Service (Konsole)
Sie können die AWS-Managementkonsole zum Löschen einer Rolle für einen Service verwenden. Da einige Services mehrere Servicerollen unterstützen, finden Sie in der AWS-Dokumentation für Ihren Service Informationen dazu, welcher Anwendungsfall auszuwählen ist. Sie können erfahren, wie Sie der Rolle die erforderlichen Vertrauens- und Berechtigungsrichtlinien zuweisen, damit der Service die Rolle in Ihrem Namen zuordnen kann. Die Schritte, mit denen Sie die Berechtigungen für Ihre Rolle steuern können, hängen davon ab, wie der Service die Anwendungsfälle definiert und ob Sie eine servicegebundene Rolle anlegen.
Erstellen einer Rolle für einen Service (AWS CLI)
Das Erstellen einer Rolle über die AWS CLI umfasst mehrere Schritte. Wenn Sie eine Rolle mithilfe der Konsole erstellen, werden viele Schritte automatisch abgeschlossen. In AWS CLI müssen Sie diese Schritte jedoch manuell ausführen. Sie müssen die Rolle erstellen und ihr dann eine Berechtigungsrichtlinie zuweisen. Wenn der Service, mit dem Sie arbeiten, Amazon EC2 ist, müssen Sie außerdem ein Instance-Profil erstellen und die Rolle diesem Profil hinzufügen. Optional können Sie auch die Berechtigungsgrenze für Ihre Rolle festlegen.
So erstellen Sie eine Rolle für einen AWS-Service mit der AWS CLI
-
Mit dem folgenden Befehl
create-rolewird eine Rolle mit dem Namen Test-Rolle erstellt und ihr eine Vertrauensrichtlinie zugewiesen:aws iam create-role --role-name Test-Role --assume-role-policy-document file://Test-Role-Trust-Policy.json -
Fügen Sie eine verwaltete Berechtigungsrichtlinie zur Rolle hinzu: aws iam attach-role-policy.
Mit dem folgenden Befehl
attach-role-policywird beispielsweise die verwaltete AWS-Richtlinie namensReadOnlyAccessan die IAM-Rolle namensReadOnlyRoleangehängt:aws iam attach-role-policy --policy-arn arn:aws:iam::aws:policy/ReadOnlyAccess --role-name ReadOnlyRoleoder
Erstellen Sie eine eingebundene Berechtigungsrichtlinie für die Rolle: aws iam put-role-policy
Informationen zum Hinzufügen einer Inline-Berechtigungsrichtlinie finden Sie im folgenden Beispiel:
aws iam put-role-policy --role-name Test-Role --policy-name ExamplePolicy --policy-document file://AdminPolicy.json -
(Optional) Fügen Sie der Rolle benutzerdefinierte Attribute durch Zuweisen von Tags hinzu: aws iam tag-role
Weitere Informationen finden Sie unter Verwalten von Tags auf IAM-Rollen (AWS CLI- oder AWS-API).
-
(Optional) Legen Sie die Berechtigungsgrenze für die Rolle fest: aws iam put-role-permissions-boundary
Eine Berechtigungsgrenze bestimmt die maximalen Berechtigungen, die eine Rolle haben kann. Berechtigungsgrenzen sind eine erweiterte AWS-Feature.
Wenn Sie die Rolle mit Amazon EC2 oder einem anderen AWS-Service, der Amazon EC2 nutzt, verwenden wollen, müssen Sie die Rolle in einem Instance-Profil speichern. Ein Instance-Profil ist ein Container für eine Rolle, der beim Start an eine Amazon EC2-Instance angefügt werden kann. Ein Instance-Profil kann nur eine Rolle enthalten und dieses Limit kann nicht erhöht werden. Wenn Sie die Rolle mithilfe der AWS-Managementkonsole erstellen, wird das Instance-Profil für Sie mit demselben Namen wie die Rolle erstellt. Weitere Informationen zu Instance-Profilen finden Sie unter Verwendung von Instance-Profilen. Informationen zum Starten einer EC2-Instance mit einer Rolle finden Sie unter Steuern des Zugriffs auf Amazon-EC2-Ressourcen im Amazon-EC2-Benutzerhandbuch.
So erstellen Sie ein Instance-Profil und speichern die Rolle darin (AWS CLI)
-
Erstellen eines Instance-Profils: aws iam create-instance-profile
-
Hinzufügen der Rolle zum Instance-Profil: aws iam add-role-to-instance-profile
Der AWS CLI-Beispielbefehlssatz unten veranschaulicht die ersten beiden Schritte zum Anlegen einer Rolle und zum Zuweisen von Berechtigungen. Es zeigt auch die beiden Schritte zum Anlegen eines Instance-Profils und zum Hinzufügen der Rolle zum Profil. Diese Beispielvertrauensrichtlinie erlaubt dem Amazon EC2-Service, die Rolle zu übernehmen und den example_bucket–Amazon S3-Bucket anzuzeigen. In diesem Beispiel wird auch davon ausgegangen, dass Sie einen Client-Computer mit Windows ausführen und bereits die Befehlszeilenschnittstelle mit den Anmeldeinformationen und der Region für Ihr Konto konfiguriert haben. Weitere Informationen finden Sie unter Konfigurieren der AWS-Befehlszeilenschnittstelle.
In diesem Beispiel nehmen Sie die folgende Vertrauensrichtlinie in den ersten Befehl auf, wenn Sie die Rolle erstellen. Diese Vertrauensrichtlinie gestattet dem Amazon EC2-Service, die Rolle zu übernehmen.
Wenn Sie den zweiten Befehl verwenden, müssen Sie der Rolle eine Berechtigungsrichtlinie hinzufügen. Die folgende Beispiel-Berechtigungsrichtlinie gestattet der Rolle nur, die ListBucket-Aktion für den example_bucket Amazon S3-Bucket auszuführen.
Um diese Test-Role-for-EC2-Rolle zu erstellen, müssen Sie zuvor die vorhergehende Vertrauensrichtlinie mit dem Namen trustpolicyforec2.json und die vorherige Berechtigungsrichtlinie mit dem Namen permissionspolicyforec2.json im policies-Verzeichnis Ihres lokalen C:-Laufwerks speichern. Mit den folgenden Befehlen können Sie dann die Rolle erstellen, die Richtlinie hinzufügen, das Instance-Profil erstellen und die Rolle dem Instance-Profil hinzufügen.
# Create the role and attach the trust policy that allows EC2 to assume this role. $aws iam create-role --role-name Test-Role-for-EC2 --assume-role-policy-document file://C:\policies\trustpolicyforec2.json# Embed the permissions policy (in this example an inline policy) to the role to specify what it is allowed to do. $aws iam put-role-policy --role-name Test-Role-for-EC2 --policy-name Permissions-Policy-For-Ec2 --policy-document file://C:\policies\permissionspolicyforec2.json# Create the instance profile required by EC2 to contain the role $aws iam create-instance-profile --instance-profile-name EC2-ListBucket-S3# Finally, add the role to the instance profile $aws iam add-role-to-instance-profile --instance-profile-name EC2-ListBucket-S3 --role-name Test-Role-for-EC2
Wenn Sie die EC2-Instance starten, geben Sie auf der Seite Configure Instance Details (Instance-Details konfigurieren) den Instance-Profilnamen ein, wenn Sie die AWS-Konsole verwenden. Wenn Sie den CLI-Befehl aws ec2 run-instances verwenden, legen Sie den --iam-instance-profile-Parameter fest.
Erstellen einer Rolle für einen Service (AWS-API)
Das Erstellen einer Rolle über die AWS-API umfasst mehrere Schritte. Wenn Sie eine Rolle mithilfe der Konsole erstellen, werden viele Schritte automatisch abgeschlossen. In API müssen Sie diese Schritte jedoch manuell ausführen. Sie müssen die Rolle erstellen und ihr dann eine Berechtigungsrichtlinie zuweisen. Wenn der Service, mit dem Sie arbeiten, Amazon EC2 ist, müssen Sie außerdem ein Instance-Profil erstellen und die Rolle diesem Profil hinzufügen. Optional können Sie auch die Berechtigungsgrenze für Ihre Rolle festlegen.
So erstellen Sie Rolle für einen AWS-Service (AWS-API)
-
Erstellen Sie eine Rolle: CreateRole
Für die Vertrauensrichtlinie der Rolle können Sie einen Dateispeicherort angeben.
-
Fügen Sie der Rolle eine verwaltete Berechtigungsrichtlinie an: AttachRolePolicy
oder
Erstellen Sie eine eingebundene Berechtigungsrichtlinie für die Rolle: PutRolePolicy
-
(Optional) Fügen Sie dem Benutzer benutzerdefinierte Attribute durch Zuweisen von Tags hinzu: TagRole
Weitere Informationen finden Sie unter Verwalten von Tags auf IAM-Benutzer (AWS CLI- oder AWS-API).
-
(Optional) Legen Sie die Berechtigungsgrenze für die Rolle fest: PutRolePermissionsBoundary
Eine Berechtigungsgrenze bestimmt die maximalen Berechtigungen, die eine Rolle haben kann. Berechtigungsgrenzen sind eine erweiterte AWS-Feature.
Wenn Sie die Rolle mit Amazon EC2 oder einem anderen AWS-Service, der Amazon EC2 nutzt, verwenden wollen, müssen Sie die Rolle in einem Instanceprofil speichern. Ein Instance-Profil ist ein Container für eine Rolle. Jedes Instance-Profil kann nur eine Rolle enthalten und dieses Limit kann nicht erhöht werden. Wenn Sie die Rolle in der AWS-Managementkonsole erstellen, wird das Instance-Profil für Sie mit demselben Namen wie die Rolle erstellt. Weitere Informationen zu Instance-Profilen finden Sie unter Verwendung von Instance-Profilen. Informationen zum Starten einer Amazon-EC2-Instance mit einer Rolle finden Sie unter Steuern des Zugriffs auf Amazon-EC2-Ressourcen im Amazon-EC2-Benutzerhandbuch.
So erstellen Sie ein Instance-Profil und speichern die Rolle darin (AWS-API)
-
Erstellen eines Instance-Profils: CreateInstanceProfile
-
Hinzufügen der Rolle zum Instance-Profil: AddRoleToInstanceProfile