Erteilen Sie einem Benutzer die Erlaubnis, eine Rolle an einen AWS Dienst zu übergeben - 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 Sie einem Benutzer die Erlaubnis, eine Rolle an einen AWS Dienst zu übergeben

Um viele AWS Dienste zu konfigurieren, müssen Sie dem Dienst 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. Nehmen wir beispielsweise an, dass Sie eine Anwendung auf einer EC2 Amazon-Instance ausführen. 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 sie mit der Instance verwenden kann, die diese Anmeldeinformationen bereitstellt. Sie definieren die Berechtigungen für die Anwendungen, die auf der Instance ausgeführt werden, indem Sie der Rolle eine IAM Richtlinie zuordnen. Die Anwendung nimmt die Rolle immer an, wenn die Aktionen im Rahmen der Rolle ausgeführt werden.

Um eine Rolle (und ihre Berechtigungen) an einen AWS Dienst zu übergeben, muss ein Benutzer über die erforderlichen Berechtigungen verfügen, um die Rolle an den Dienst weiterzugeben. 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 Dienst weitergeben kann, müssen Sie dem Benutzer, der Rolle oder der Gruppe des IAM Benutzers die PassRole entsprechende Berechtigung erteilen.

Warnung
  • Sie können die PassRole Berechtigung nur verwenden, um eine IAM Rolle an einen Dienst zu übergeben, der dasselbe AWS Konto verwendet. Um eine Rolle in Konto A an einen Dienst 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 Dienst übergeben werden. Details hierzu finden Sie unter Kontoübergreifender Ressourcenzugriff 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 weitergibt, bei der die Rolle über mehr Berechtigungen verfügt, als Sie dem Benutzer zuweisen möchten. Beispielsweise darf Alice möglicherweise keine Amazon S3 S3-Aktionen ausführen. Wenn Alice eine Rolle an einen Service übergeben könnte, der Amazon S3 S3-Aktionen zulässt, könnte der Service bei der Ausführung des Jobs Amazon S3 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. Beispielsweise erstellt Amazon EC2 Auto Scaling die AWSServiceRoleForAutoScaling serviceverknüpfte Rolle für Sie, wenn Sie zum ersten Mal eine Auto Scaling 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 funktionieren mit IAM. 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 eine Rolle ARN als Parameter in jedem API Vorgang übergeben, der die Rolle verwendet, um dem Service Berechtigungen zuzuweisen. Der Service überprüft dann, ob der betreffende Benutzer über die Berechtigung iam:PassRole verfügt. Um den Benutzer darauf zu beschränken, nur genehmigte Rollen weiterzugeben, können Sie die iam:PassRole Berechtigung anhand des Resources Elements der IAM Richtlinienerklärung 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 Anfragen enthalten sind. Weitere Informationen zur Verwendung von Bedingungsschlüsseln in einer Richtlinie finden Sie unter IAMJSONpolitische Elemente: 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 Möglichkeit geben, beim Starten einer Instance eine der genehmigten Rollen an den EC2 Amazon-Service zu übergeben. Dafür sind drei Elemente nötig:

  • Eine der Rolle zugeordnete IAM Berechtigungsrichtlinie, die festlegt, welche Funktionen die Rolle ausführen 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 eine AWS verwaltete oder 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. Diese Vertrauensrichtlinie ermöglicht es AmazonEC2, die Rolle und die mit der Rolle verknüpften Berechtigungen zu verwenden.

    { "Version": "2012-10-17", "Statement": { "Sid": "TrustPolicyStatementThatAllowsEC2ServiceToAssumeTheAttachedRole", "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } }
  • Eine dem IAM Benutzer zugeordnete IAM Berechtigungsrichtlinie, die es dem Benutzer ermöglicht, nur die genehmigten 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-*" }] }

Jetzt kann der Benutzer eine EC2 Amazon-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 (AmazonRDS) unterstützt eine Funktion namens Enhanced Monitoring. Diese Funktion ermöglicht es AmazonRDS, eine Datenbank-Instance mithilfe eines Agenten zu überwachen. Es ermöglicht Amazon auchRDS, Metriken in Amazon Logs zu CloudWatch protokollieren. Um diese Funktion zu aktivieren, müssen Sie eine Servicerolle erstellen, um Amazon die Erlaubnis zu RDS erteilen, Metriken zu überwachen und in Ihre Logs zu schreiben.

Um eine Rolle für Amazon RDS Enhanced Monitoring zu erstellen
  1. Melden Sie sich bei der an AWS Management Console 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 Rollentyp AWS Service und dann unter Anwendungsfälle für andere AWS-Services den RDSDienst aus. Wählen Sie RDS— Erweiterte Überwachung und dann Weiter.

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

  5. Wählen Sie Weiter.

  6. Geben Sie unter Role name (Rollenname) einen Rollennamen ein, der Ihnen hilft, den Zweck dieser Rolle zu identifizieren. Rollennamen müssen innerhalb Ihres Unternehmens eindeutig sein AWS-Konto. Wenn ein Rollenname in einer Richtlinie oder als Teil einer verwendet wirdARN, unterscheidet der Rollenname zwischen Groß- und Kleinschreibung. 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 Hinweise zur Verwendung von Tags in IAM finden Sie unterTags für AWS Identity and Access Management 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. Danach RDS kann Amazon alle Aktionen ausführen, die die AmazonRDSEnhancedMonitoringRole Richtlinie zulässt.

Der Benutzer, auf den Sie Enhanced Monitoring zugreifen möchten, benötigt eine Richtlinie, 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, wie im Folgenden. 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 anzugeben, dass der Benutzer jede Rolle übergeben kann, die mit beginntRDS-, können Sie den Rollennamen in der Ressource ARN wie folgt durch einen Platzhalter ersetzen.

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

iam:PassRole-Aktionen in AWS CloudTrail -Protokollen

PassRoleist kein API Anruf. PassRoleist eine Erlaubnis, was bedeutet, dass keine CloudTrail Protokolle für generiert werden IAMPassRole. Um zu überprüfen, welche Rollen an welche AWS-Services übergeben wurden CloudTrail, müssen Sie das CloudTrail Protokoll überprüfen, das die AWS Ressource, der die Rolle zugewiesen wurde, erstellt oder geändert hat. Beispielsweise wird eine Rolle bei ihrer Erstellung an eine AWS Lambda Funktion übergeben. Das Protokoll für die CreateFunction-Aktion zeigt eine Aufzeichnung der Rolle, die an die Funktion übergeben wurde.