Rolle zum Delegieren von Berechtigungen an einen AWS-Service erstellen - AWS Identity and Access Management

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 SERVICE-NAME.amazonaws.com 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.

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.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:AttachRolePolicy", "iam:CreateRole", "iam:PutRolePolicy" ], "Resource": "arn:aws:iam::*:role/SERVICE-ROLE-NAME" } ] }

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 AWS-Richtlinie.

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.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "EditSpecificServiceRole", "Effect": "Allow", "Action": [ "iam:AttachRolePolicy", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:GetRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "iam:UpdateRole", "iam:UpdateRoleDescription" ], "Resource": "arn:aws:iam::*:role/SERVICE-ROLE-NAME" }, { "Sid": "ViewRolesAndPolicies", "Effect": "Allow", "Action": [ "iam:GetPolicy", "iam:ListRoles" ], "Resource": "*" } ] }

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 AWS-Richtlinie.

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.

Console
So erstellen Sie eine Rolle für einen AWS-Service (IAM-Konsole)
  1. Melden Sie sich bei der AWS-Managementkonsole an, und öffnen Sie die IAM-Konsole unter https://console.aws.amazon.com/iam/.

  2. Klicken Sie im Navigationsbereich der IAM-Konsole auf Rollen, und wählen Sie dann Rolle erstellen.

  3. Wählen Sie für Vertrauenswürdige Entität die Option AWS-Service aus.

  4. Wählen Sie unter Service oder Anwendungsfall einen Service und anschließend den Anwendungsfall aus. Anwendungsfälle werden durch den Service definiert, damit die für den Service erforderliche Vertrauensrichtlinie enthalten ist.

  5. Wählen Sie Weiter aus.

  6. Bei Berechtigungsrichtlinien hängen die Optionen vom ausgewählten Anwendungsfall ab:

    • Wenn der Service die Berechtigungen für die Rolle definiert, können Sie keine Berechtigungsrichtlinien auswählen.

    • Wählen Sie aus einer begrenzten Anzahl von Berechtigungsrichtlinien.

    • Wählen Sie aus allen Berechtigungsrichtlinien.

    • Wählen Sie keine Berechtigungsrichtlinien aus, erstellen Sie die Richtlinien, nachdem die Rolle erstellt wurde, und fügen Sie die Richtlinien dann der Rolle an.

  7. (Optional) Legen Sie eine Berechtigungsgrenze fest. Dies ist ein erweitertes Feature, das für Servicerollen verfügbar ist, aber nicht für servicegebundene Rollen.

    1. Öffnen Sie den Abschnitt Berechtigungsgrenze festlegen und wählen Sie dann Eine Berechtigungsgrenze verwenden, um die maximalen Rollenberechtigungen zu steuern aus.

      IAM enthält eine Liste der von AWS und vom Kunden verwalteten Richtlinien in Ihrem Konto.

    2. Wählen Sie die Richtlinie aus, die für eine Berechtigungsgrenze verwendet werden soll.

  8. Wählen Sie Weiter aus.

  9. Für den Rollennamen hängen die Optionen vom Service ab:

    • Wenn der Name der Rolle durch den Service definiert wird, können Sie den Namen der Rolle nicht bearbeiten.

    • Wenn der Service ein Präfix für den Rollennamen definiert, können Sie ein optionales Suffix eingeben.

    • Wenn der Service den Rollennamen nicht definiert, können Sie der Rolle einen Namen geben.

      Wichtig

      Beachten Sie beim Benennen einer Rolle Folgendes:

      • Rollennamen müssen innerhalb Ihres AWS-Konto eindeutig sein und können nicht anhand der Groß-/Kleinschreibung eindeutig festgelegt werden.

        Erstellen Sie beispielsweise keine Rollen mit dem Namen PRODROLE und prodrole. Wenn ein Rollenname in einer Richtlinie oder als Teil einer ARN verwendet wird, muss die Groß-/Kleinschreibung des Rollennamens beachtet werden. Wenn ein Rollenname den Kunden jedoch in der Konsole angezeigt wird, z. B. während des Anmeldevorgangs, wird die Groß-/Kleinschreibung des Rollennamens nicht beachtet.

      • Sie können den Namen der Rolle nach ihrer Erstellung nicht mehr bearbeiten, da andere Entitäten möglicherweise auf die Rolle verweisen.

  10. (Optional) Geben Sie unter Beschreibung eine Beschreibung für die neue Rolle ein.

  11. (Optional) Um die Anwendungsfälle und Berechtigungen für die Rolle zu bearbeiten, wählen Sie in den Abschnitten Schritt 1: Vertrauenswürdige Entitäten auswählen oder Schritt 2: Berechtigungen hinzufügen die Option Bearbeiten.

  12. (Optional) Fügen Sie Tags als Schlüssel-Wert-Paare hinzu, um die Identifizierung, Organisation oder Suche nach der Rolle zu vereinfachen. Weitere Informationen zur Nutzung von Tags in IAM finden Sie unter Tags für AWS Identity and Access Management-Ressourcen im Handbuch für -IAM-Benutzer.

  13. Prüfen Sie die Rolle und klicken Sie dann auf Create Role (Rolle erstellen).

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
  1. Mit dem folgenden Befehl create-role wird 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

  2. Fügen Sie eine verwaltete Berechtigungsrichtlinie zur Rolle hinzu: aws iam attach-role-policy.

    Mit dem folgenden Befehl attach-role-policy wird beispielsweise die verwaltete AWS-Richtlinie namens ReadOnlyAccess an die IAM-Rolle namens ReadOnlyRole angehängt:

    aws iam attach-role-policy --policy-arn arn:aws:iam::aws:policy/ReadOnlyAccess --role-name ReadOnlyRole

    oder

    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

  3. (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).

  4. (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)
  1. Erstellen eines Instance-Profils: aws iam create-instance-profile

  2. 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.

JSON
{ "Version":"2012-10-17", "Statement": { "Effect": "Allow", "Principal": {"Service": "ec2.amazonaws.com"}, "Action": "sts:AssumeRole" } }

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.

JSON
{ "Version":"2012-10-17", "Statement": { "Effect": "Allow", "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::example_bucket" } }

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)
  1. Erstellen Sie eine Rolle: CreateRole

    Für die Vertrauensrichtlinie der Rolle können Sie einen Dateispeicherort angeben.

  2. Fügen Sie der Rolle eine verwaltete Berechtigungsrichtlinie an: AttachRolePolicy

    oder

    Erstellen Sie eine eingebundene Berechtigungsrichtlinie für die Rolle: PutRolePolicy

  3. (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).

  4. (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)
  1. Erstellen eines Instance-Profils: CreateInstanceProfile

  2. Hinzufügen der Rolle zum Instance-Profil: AddRoleToInstanceProfile