Erteilen von Berechtigungen, mit denen ein Benutzer eine Rolle an einen AWS-Service übergeben kann - AWS Identitäts- und Zugriffsverwaltung

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.

Erteilen von Berechtigungen, mit denen ein Benutzer eine Rolle an einen AWS-Service übergeben kann

Zur Konfiguration vieler AWS-Services müssen Sie dem Service eine IAM-Rolle übergeben. Dies erlaubt dem Service, später die Rolle anzunehmen und in Ihrem Auftrag Aktionen durchzuführen. Für die meisten Services müssen Sie die Rolle nur einmal während der Einrichtung an den Service übergeben, und nicht jedes Mal, wenn der Service die Rolle annimmt. Angenommen, es wird eine Anwendung auf einer Amazon EC2-Instance ausgeführt. Diese Anwendung erfordert temporäre Anmeldeinformationen zur Authentifizierung und Berechtigungen für die Autorisierung der Anwendung, damit diese Aktionen in AWS durchführen kann. Wenn Sie die Anwendung einrichten, müssen Sie eine Rolle an Amazon EC2 übergeben, die mit der Instance verwendet wird, die diese Anmeldeinformationen bereitstellt. Sie definieren die Berechtigungen für die Anwendungen, die in dieser Instance ausgeführt werden, indem Sie der Rolle eine IAM-Richtlinie anfügen. Die Anwendung nimmt die Rolle immer an, wenn die Aktionen im Rahmen der Rolle ausgeführt werden.

Um eine Rolle (und deren Berechtigungen) an einen AWS-Service zu übergeben, benötigt ein Benutzer die Berechtigung, Rollen an den Service zu übergeben. So können Administratoren sicherstellen, dass nur berechtigte Benutzer einen Service mit einer Rolle konfigurieren können, über die Berechtigungen verliehen werden. Damit ein Benutzer eine Rolle an einen AWS-Service übergeben kann, müssen Sie dem IAM-Benutzer, der Rolle oder der Gruppe die PassRole-Berechtigung verleihen.

Warnung
  • Sie können die PassRole-Berechtigung nur verwenden, um eine IAM-Rolle an einen Service mit dem gleichen AWS-Konto zu übergeben. Um eine Rolle in Konto A an einen Service in Konto B zu übergeben, müssen Sie zunächst eine IAM-Rolle in Konto B erstellen, die die Rolle von Konto A übernehmen kann. Anschließend kann die Rolle in Konto B an den Service übergeben werden. Details hierzu finden Sie unter Kontoübergreifender Zugriff auf Ressourcen in IAM.

  • Versuchen Sie nicht zu kontrollieren, wer eine Rolle weitergeben kann, indem Sie die Rolle taggen und dann den ResourceTag-Bedingungsschlüssel in einer Richtlinie mit der iam:PassRole-Aktion verwenden. Dieser Ansatz führt nicht zu zuverlässigen Ergebnissen.

Wenn Sie die PassRole Berechtigung festlegen, sollten Sie sicherstellen, dass ein Benutzer keine Rolle übergibt, in der die Rolle über mehr Berechtigungen verfügt, als der Benutzer haben soll. Beispielsweise darf Alice möglicherweise keine Amazon S3-Aktionen ausführen. Wenn Alice eine Rolle an einen Service ü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 ausführen.

Wenn Sie eine serviceverknüpfte Rolle angeben, müssen Sie zudem über die Berechtigung verfügen, diese Rolle an den Service übergeben. Einige Services erstellen automatisch eine serviceverknüpfte Rolle in Ihrem Konto, wenn Sie eine Aktion in diesem Service durchführen. Zum Beispiel erstellt Amazon EC2 Auto Scaling die serviceverknüpfte Rolle AWSServiceRoleForAutoScaling für Sie, wenn Sie das erste Mal eine Auto-Scaling-Gruppe erstellen. Wenn Sie versuchen, die Berechtigung anzugeben, wenn Sie eine Auto-Scaling-Gruppe erstellen, und Sie haben keine iam:PassRole-Berechtigung, erhalten Sie einen Fehler. Wenn Sie die Rolle nicht explizit angeben, ist die iam:PassRole-Berechtigung nicht erforderlich, und standardmäßig wird die AWSServiceRoleForAutoScaling-Rolle für alle Operationen verwendet, die für diese Gruppe ausgeführt werden. Informationen dazu, welche Services serviceverknüpfte Rollen unterstützen, finden Sie unter AWS Dienste, die mit IAM funktionieren. Um zu erfahren, welche Services automatisch eine serviceverknüpfte Rolle erstellen, wenn Sie eine Aktion in diesem Service durchführen, wählen Sie den Link Yes (Ja) und zeigen Sie die serviceverknüpfte Rollendokumentation für den Service an.

Ein Benutzer kann einen Rollen-ARN als Parameter in einer API-Operation übergeben, die die Rolle für die Zuweisung von Berechtigungen für den Service verwendet. Der Service überprüft dann, ob der betreffende Benutzer über die Berechtigung iam:PassRole verfügt. Damit der Benutzer nur genehmigte Rollen übergeben kann, können Sie die Berechtigung iam:PassRole mit dem Element Resources der IAM-Richtlinienanweisung filtern.

Sie können das Condition-Element in einer JSON-Richtlinie verwenden, um den Wert von Schlüsseln zu testen, die im Anforderungskontext aller AWS-Anforderungen enthalten sind. Weitere Informationen zur Verwendung von Bedingungsschlüsseln in einer Richtlinie finden Sie unter IAM-JSON-Richtlinienelemente: Condition. Der iam:PassedToService-Bedingungsschlüssel kann verwendet werden, um den Auftraggeber des Dienstes anzugeben, an den eine Rolle übergeben werden kann. Weitere Informationen zur Verwendung des iam:PassedToService Bedingungsschlüssels in einer Richtlinie finden Sie unter iam:PassedToService.

Beispiel 1

Angenommen, Sie möchten einem Benutzer die Berechtigung verleihen, beim Starten einer Instance beliebige genehmigte Rollen an den Amazon-EC2-Service zu übergeben. Dafür sind drei Elemente nötig:

  • Eine IAM-Berechtigungsrichtlinie, die der Rolle zugeordnet ist und über die festgelegt wird, was mit der Rolle getan werden kann. Weisen Sie nur Berechtigungen für Aktionen zu, die für die Rolle erforderlich sind, und nur für die Ressourcen, die von der Rolle für diese Aktionen benötigt werden. Sie können sowohl eine von AWS verwaltete oder eine vom Kunden erstellte IAM-Berechtigungsrichtlinie verwenden.

    { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "A list of the permissions the role is allowed to use" ], "Resource": [ "A list of the resources the role is allowed to access" ] } }
  • Eine Vertrauensrichtlinie für die Rolle, die es dem Service ermöglicht, die Rolle anzunehmen. Sie können beispielsweise der Rolle mit der Aktion UpdateAssumeRolePolicy die folgende Vertrauensrichtlinie zuweisen. Über diese Vertrauensrichtlinie kann Amazon EC2 die Rolle und deren Berechtigungen verwenden.

    { "Version": "2012-10-17", "Statement": { "Sid": "TrustPolicyStatementThatAllowsEC2ServiceToAssumeTheAttachedRole", "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } }
  • Eine IAM-Berechtigungsrichtlinie, die dem IAM-Benutzer zugeordnet ist und diesem ermöglicht, nur genehmigte Rollen zu übergeben. Sie fügen normalerweise iam:GetRole zu iam:PassRole, damit der Benutzer die Details weitergeben kann. In diesem Beispiel kann der Benutzer nur Rollen weitergeben, die im angegebenen Konto mit Namen vorhanden sind, die mit EC2-roles-for-XYZ- beginnen:

    { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "iam:GetRole", "iam:PassRole" ], "Resource": "arn:aws:iam::account-id:role/EC2-roles-for-XYZ-*" }] }

Der Benutzer kann jetzt eine Amazon EC2-Instance mit einer zugewiesenen Rolle starten. Anwendungen auf der Instance können über die Metadaten des Instance-Profils auf temporäre Anmeldeinformationen für die Rolle zugreifen. Die der Rolle zugeordneten Berechtigungsrichtlinien legen fest, welche Aktionen die Instance ausführen kann.

Beispiel 2

Amazon Relational Database Service (Amazon RDS) unterstützt die Feature namens „Verbesserte Überwachung“. Mit dieses Feature kann Amazon RDS eine Datenbank-Instance mithilfe eines Agenten überwachen. Außerdem kann Amazon RDS Metriken in Amazon CloudWatch Logs protokollieren. Um dieses Feature zu aktivieren, müssen Sie eine Servicerolle erstellen, um Amazon RDS die Berechtigung zum Überwachen und Speichern von Metriken in Ihren Protokollen zu gewähren.

So erstellen Sie eine IAM-Rolle für Enhanced Monitoring in Amazon RDS
  1. Melden Sie sich bei der AWS Management Console an, und öffnen Sie die IAM-Konsole unter https://console.aws.amazon.com/iam/.

  2. Wählen Sie Roles (Rollen) und anschließend Create role (Rolle erstellen).

  3. Wählen Sie den AWS-Service-Rollentyp aus und dann unter Use cases for other AWS-Services (Anwendungsfälle für andere ), wählen Sie den RDS-Service. Wählen Sie RDS – Enhanced Monitoring (RDS – erweiterte Überwachung) und Next (Weiter) aus.

  4. Wählen Sie die AmazonRDSEnhancedMonitoringRole-Berechtigungsrichtlinie aus.

  5. Wählen Sie Weiter aus.

  6. Geben Sie unter Role name (Rollenname) einen Rollennamen ein, der Ihnen hilft, den Zweck dieser Rolle zu identifizieren. Rollennamen müssen innerhalb Ihres AWS-Konto-Kontos eindeutig sein. Wenn ein Rollenname in einer Richtlinie oder als Teil eines ARN verwendet wird, muss die Groß-/Kleinschreibung des Rollennamens beachtet werden. Wenn Kunden in der Konsole ein Rollenname angezeigt wird, beispielsweise während des Anmeldevorgangs, wird die Groß-/Kleinschreibung des Rollennamens nicht beachtet. Da verschiedene Entitäten möglicherweise auf die Rolle verweisen, können Sie den Namen der Rolle nach der Erstellung nicht mehr bearbeiten.

  7. (Optional) Geben Sie unter Role description (Rollenbeschreibung) eine Beschreibung für die neue Rolle ein.

  8. (Optional) Fügen Sie dem Benutzer Metadaten hinzu, indem Sie Markierungen als Schlüssel-Wert-Paare anfügen. Weitere Informationen zur Verwendung von Tags in IAM finden Sie unter Markieren von IAM-Ressourcen.

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

Der Rolle wird automatisch eine Vertrauensrichtlinie zugewiesen, die dem Service monitoring.rds.amazonaws.com die Berechtigung zum Übernehmen der Rolle gewährt. Nun kann Amazon RDS; alle durch die Richtlinie AmazonRDSEnhancedMonitoringRole gewährten Aktionen ausführen.

Der Benutzer, der auf Enhanced Monitoring zugreifen soll, benötigt eine Richtlinie wie die folgende, die eine Anweisung enthält, die es dem Benutzer ermöglicht, die RDS-Rollen aufzulisten und eine Anweisung, die es dem Benutzer ermöglicht, die Rolle zu übergeben. Verwenden Sie Ihre Kontonummer und ersetzen Sie den Rollennamen durch den Namen, den Sie in Schritt 6 eingegeben haben.

{ "Sid": "PolicyStatementToAllowUserToListRoles", "Effect": "Allow", "Action": ["iam:ListRoles"], "Resource": "*" }, { "Sid": "PolicyStatementToAllowUserToPassOneSpecificRole", "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "arn:aws:iam::account-id:role/RDS-Monitoring-Role" }

Sie können diese Anweisung mit Anweisungen in einer anderen Richtlinie kombinieren oder eine eigene Richtlinie dafür erstellen. Um stattdessen festzulegen, dass der Benutzer jede Rolle übergeben kann, die mit RDS- beginnt, ersetzen Sie wie folgt den Rollennamen im Ressourcen-ARN durch einen Platzhalter.

"Resource": "arn:aws:iam::account-id:role/RDS-*"

iam:PassRole-Aktionen in AWS CloudTrail-Protokollen

PassRole ist kein API-Aufruf. PassRole ist eine Berechtigung, was bedeutet, dass keine CloudTrail Protokolle für IAM generiert werdenPassRole. Um zu überprüfen, welche Rollen an welche AWS-Services in übergeben werden CloudTrail, müssen Sie das CloudTrail Protokoll überprüfen, das die AWS Ressource erstellt oder geändert hat, die die Rolle empfängt. Beispielsweise wird eine Rolle an eine AWS Lambda-Funktion übergeben, wenn sie erstellt wird. Das Protokoll für die CreateFunction-Aktion zeigt eine Aufzeichnung der Rolle, die an die Funktion übergeben wurde.