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.
Spot-Flotten-Berechtigungen
Wichtig
Spot Fleet verwendet eine veraltete API ohne geplante Investitionen. Wir empfehlen, stattdessen EC2 Fleet oder eine Auto Scaling Scaling-Gruppe zu verwenden. Weitere Informationen finden Sie unter Was ist die beste Flottenmethode?.
Wenn Ihre Benutzer eine Spot-Flotte erstellen oder verwalten sollen, müssen Sie diesen die erforderlichen Berechtigungen gewähren.
Wenn Sie die Amazon EC2-Konsole zum Erstellen einer Spot-Flotte verwenden, erstellt sie zwei serviceverknüpfte Rollen namens AWSServiceRoleForEC2SpotFleet und AWSServiceRoleForEC2Spot und eine Rolle namens aws-ec2-spot-fleet-tagging-role, die der Spot-Flotte die Berechtigungen zum Anfordern, Launchen, Beenden und Markieren von Ressourcen in Ihrem Namen erteilen. Wenn Sie die AWS CLI oder eine API verwenden, müssen Sie sicherstellen, dass diese Rollen existieren.
Verwenden Sie die folgenden Anweisungen, um die erforderlichen Berechtigungen zu erteilen und die Rollen zu erstellen.
Berechtigungen und Rollen
Benutzern die Berechtigung für Spot-Flotte gewähren
Wenn Ihre Benutzer eine Spot-Flotte erstellen oder verwalten, stellen Sie sicher, dass Sie ihnen die erforderlichen Berechtigungen gewähren.
So erstellen Sie eine Richtlinie für Spot-Flotte
Öffnen Sie unter https://console.aws.amazon.com/iam/
die IAM-Konsole. -
Wählen Sie im Navigationsbereich Policies und Create policy aus.
-
Wählen Sie auf der Seite Richtlinie erstellen die Option JSON aus und ersetzen Sie den Text durch Folgendes.
Die vorangehende Beispielrichtlinie gewährt einem Benutzer die Berechtigungen, die für die meisten Spot-Flotten-Anwendungsfälle erforderlich sind. Um den Benutzer auf bestimmte API-Aktionen zu beschränken, geben Sie stattdessen nur diese API-Aktionen an.
Erforderliche EC2- und IAM-APIs
Die folgenden APIs müssen in der Richtlinie enthalten sein:
-
ec2:RunInstances– erforderlich zum Launchen von Instances in einer Spot-Flotte -
ec2:CreateTags– erforderlich zum Markieren der Spot-Flotten-Anforderung, der Instances oder der Volumes -
iam:PassRole– erforderlich, um die Spot-Flotten-Rolle anzugeben -
iam:CreateServiceLinkedRole– erforderlich zum Erstellen der serviceverknüpften Rolle -
iam:ListRoles– erforderlich zum Aufzählen vorhandener IAM-Rollen -
iam:ListInstanceProfiles– erforderlich zum Aufzählen vorhandener Instance-Profile
Wichtig
Wenn Sie in der Startspezifikation oder Startvorlage eine Rolle für das IAM-Instance-Profil angeben, müssen Sie dem Benutzer die Berechtigung gewähren, die Rolle an den Service zu übergeben. Schließen Sie hierzu in der IAM-Richtlinie
"arn:aws:iam::*:role/als Ressource für die AktionIamInstanceProfile-role"iam:PassRoleein. Weitere Informationen finden Sie im IAM-Benutzerhandbuch unter Gewähren von Benutzerberechtigungen zur AWS Übergabe einer Rolle an einen Dienst.APIs für Spot-Flotten
Fügen Sie Ihrer Richtlinie bei Bedarf die folgenden Spot Fleet API-Aktionen hinzu:
-
ec2:RequestSpotFleet -
ec2:ModifySpotFleetRequest -
ec2:CancelSpotFleetRequests -
ec2:DescribeSpotFleetRequests -
ec2:DescribeSpotFleetInstances -
ec2:DescribeSpotFleetRequestHistory
Optionale IAM-APIs
(Optional) Um einem Benutzer das Erstellen von Rollen oder Instance-Profilen mithilfe der IAM-Konsole zu ermöglichen, müssen Sie der Richtlinie die folgenden Aktionen hinzufügen:
-
iam:AddRoleToInstanceProfile -
iam:AttachRolePolicy -
iam:CreateInstanceProfile -
iam:CreateRole -
iam:GetRole -
iam:ListPolicies
-
-
Wählen Sie Review policy (Richtlinie prüfen) aus.
-
Geben Sie auf der Seite Review policy (Richtlinie überprüfen) einen Richtlinienamen und eine Beschreibung ein und wählen Sie anschließend Create policy (Richtlinie erstellen) aus.
-
Um Zugriff zu gewähren, fügen Sie Ihren Benutzern, Gruppen oder Rollen Berechtigungen hinzu:
-
Benutzer und Gruppen in AWS IAM Identity Center:
Erstellen Sie einen Berechtigungssatz. Befolgen Sie die Anweisungen unter Erstellen eines Berechtigungssatzes im AWS IAM Identity Center -Benutzerhandbuch.
-
Benutzer, die in IAM über einen Identitätsanbieter verwaltet werden:
Erstellen Sie eine Rolle für den Identitätsverbund. Befolgen Sie die Anleitung unter Eine Rolle für einen externen Identitätsanbieter (Verbund) erstellen im IAM-Benutzerhandbuch.
-
IAM-Benutzer:
-
Erstellen Sie eine Rolle, die Ihr Benutzer annehmen kann. Befolgen Sie die Anleitung unter Eine Rolle für einen IAM-Benutzer erstellen im IAM-Benutzerhandbuch.
-
(Nicht empfohlen) Weisen Sie einem Benutzer eine Richtlinie direkt zu oder fügen Sie einen Benutzer zu einer Benutzergruppe hinzu. Befolgen Sie die Anweisungen unter Hinzufügen von Berechtigungen zu einem Benutzer (Konsole) im IAM-Benutzerhandbuch.
-
-
Service-linked Rolle für Spot Fleet
Amazon EC2 nutzt serviceverknüpfte Rollen für die Berechtigungen, die für den Aufruf anderer AWS -Services in Ihrem Namen benötigt werden. Eine serviceverknüpfte Rolle ist ein einzigartiger Typ von IAM-Rolle, die direkt mit einem AWS Service verknüpft ist. Service-linked Rollen bieten eine sichere Möglichkeit, Berechtigungen an AWS Dienste zu delegieren, da nur der verknüpfte Dienst eine dienstbezogene Rolle übernehmen kann. Weitere Informationen finden Sie im IAM-Benutzerhandbuch unter Service-linkedRollen.
Amazon EC2 verwendet die serviceverknüpfte Rolle namens AWSServiceRoleForEC2SpotFleet, um Instances in Ihrem Namen zu starten und zu verwalten.
Wichtig
Wenn Sie in Ihrer Spot-Flotte ein verschlüsseltes AMI oder einen verschlüsselten Amazon EBS-Snapshot angeben, müssen Sie der AWSServiceRoleForEC2SpotFlottenrolle die Berechtigung zur Verwendung des CMK erteilen, damit Amazon EC2 Instances in Ihrem Namen starten kann. Weitere Informationen finden Sie unter Gewähren von Zugriff auf CMKs für die Verwendung mit verschlüsselten AMIs und EBS-Snapshots.
Berechtigungen erteilt von AWSServiceRoleForEC2SpotFleet
Die AWSServiceRoleForEC2SpotFlottenrolle gewährt der Spot-Flotte die Berechtigung, Instances in Ihrem Namen anzufordern, zu starten, zu beenden und zu taggen. Amazon EC2 verwendet diese serviceverknüpfte Rolle, um die folgenden Aktionen durchzuführen:
-
ec2:RequestSpotInstances- Spot-Instances-Anforderung -
ec2:RunInstances– Starten von Instances -
ec2:TerminateInstances– Beenden von Instances -
ec2:DescribeImages– Beschreiben von Amazon Machine Images (AMIs) für die Instances -
ec2:DescribeInstanceStatus– Beschreiben des Status der Instances -
ec2:DescribeSubnets– Beschreiben der Subnetze für die Instances -
ec2:CreateTags– Hinzufügen von Tags zur Spot-Flotten-Anforderung, zu Instances und zu Volumes -
elasticloadbalancing:RegisterInstancesWithLoadBalancer– Hinzufügen der angegebenen Instances zum angegebenen Load Balancer -
elasticloadbalancing:RegisterTargets– Registrieren der die angegebenen Ziele bei der angegebenen Zielgruppe
Erstellen der serviceverknüpften Rolle
Größtenteils müssen Sie die serviceverknüpfte Rolle nicht manuell erstellen. Amazon EC2 erstellt die mit dem Service verknüpfte AWSServiceRoleForEC2SpotFlottenrolle, wenn Sie zum ersten Mal eine Spot-Flotte über die Konsole erstellen.
Wenn Sie vor Oktober 2017, als Amazon EC2 begann, diese servicebezogene Rolle zu unterstützen, eine aktive Spot-Flotte-Anfrage hatten, hat Amazon EC2 die AWSServiceRoleForEC2SpotFlottenrolle in Ihrem Konto erstellt. AWS Weitere Informationen finden Sie unter Eine neue Rolle wurde in meinem AWS Konto angezeigt im IAM-Benutzerhandbuch.
Wenn Sie die AWS CLI oder eine API verwenden, um eine Spot-Flotte zu erstellen, müssen Sie zunächst sicherstellen, dass diese Rolle existiert.
Um die AWSServiceRoleForEC2SpotFleet Rolle für Spot-Flotte mithilfe der Konsole zu erstellen
Öffnen Sie unter https://console.aws.amazon.com/iam/
die IAM-Konsole. -
Wählen Sie im Navigationsbereich Rollen aus.
-
Wählen Sie Create role (Rolle erstellen) aus.
-
Gehen Sie auf der Seite Select trusted entity (Vertrauenswürdige Entität auswählen) wie folgt vor:
-
Wählen Sie unter Vertrauenswürdiger Entitätstyp die Option AWS -Service aus.
-
Wählen Sie unter Anwendungsfall für Service oder Anwendungsfall EC2.
-
Wählen Sie für Anwendungsfall EC2-Spot-Flotte aus.
Anmerkung
Im Anwendungsfall EC2 — Spot Fleet wird automatisch eine Richtlinie mit den erforderlichen IAM-Berechtigungen erstellt und AWSEC2SpotFleetServiceRolePolicyals Rollennamen vorgeschlagen.
-
Wählen Sie Weiter aus.
-
-
Wählen Sie auf der Seite Add permissions (Berechtigungen hinzufügen) die Option Next (Weiter) aus.
-
Wählen Sie auf der Seite Benennen, Überprüfen und Erstellen die Option Rolle erstellen aus.
Um die AWSServiceRoleForEC2SpotFleet Rolle für Spot Fleet mit dem zu erstellen AWS CLI
Verwenden Sie den Befehl create-service-linked-role wie folgt.
aws iam create-service-linked-role --aws-service-name spotfleet.amazonaws.com
Wenn Sie Spot Fleet nicht mehr verwenden müssen, empfehlen wir Ihnen, die AWSServiceRoleForEC2SpotFleet-Rolle zu löschen. Nachdem diese Rolle in Ihrem Konto gelöscht wurde, erstellt Amazon EC2 die Rolle erneut, wenn Sie eine Spot-Flotte über die Konsole anfordern. Weitere Informationen finden Sie unter Löschen einer serviceverknüpften Rolle im IAM-Benutzerhandbuch.
Gewähren von Zugriff auf CMKs für die Verwendung mit verschlüsselten AMIs und EBS-Snapshots
Wenn Sie in Ihrer Spot-Flottenanfrage ein verschlüsseltes AMI oder einen verschlüsselten Amazon EBS-Snapshot angeben und einen vom Kunden verwalteten Schlüssel für die Verschlüsselung verwenden, müssen Sie der AWSServiceRoleForEC2SpotFlottenrolle die Berechtigung zur Verwendung des CMK erteilen, damit Amazon EC2 Instances in Ihrem Namen starten kann. Dazu müssen Sie eine Erteilung zum CMK hinzufügen, wie im Folgenden gezeigt:
Bei der Einrichtung von Berechtigungen ist die Erteilung von Berechtigung eine Alternative zu Schüsselrichtlinien. Weitere Informationen finden Sie unter Verwenden von Erteilungen und Verwenden von Schlüsselrichtlinien in AWS KMS im Developer-Handbuch für AWS Key Management Service .
Um der AWSServiceRoleForEC2SpotFleet Rolle Berechtigungen zur Verwendung des CMK zu erteilen
-
Verwenden Sie den Befehl create-grant, um dem CMK einen Grant hinzuzufügen und den Principal (die mit dem AWSServiceRoleForEC2SpotFleet-Dienst verknüpfte Rolle) anzugeben, dem die Berechtigung erteilt wird, die mit dem Grant erlaubten Operationen auszuführen. Der CMK wird durch den Parameter
key-idund den ARN des CMK spezifiziert. Der Principal wird durch dengrantee-principalParameter und den ARN der mit dem AWSServiceRoleForEC2SpotFleet-Service verknüpften Rolle angegeben.aws kms create-grant \ --regionus-east-1\ --key-id arn:aws:kms:us-east-1:444455556666:key/1234abcd-12ab-34cd-56ef-1234567890ab\ --grantee-principal arn:aws:iam::111122223333:role/aws-service-role/spotfleet.amazonaws.com/AWSServiceRoleForEC2SpotFleet \ --operations "Decrypt" "Encrypt" "GenerateDataKey" "GenerateDataKeyWithoutPlaintext" "CreateGrant" "DescribeKey" "ReEncryptFrom" "ReEncryptTo"
Service-linked Rolle für Spot-Instances
Amazon EC2 verwendet die angegebene serviceverknüpfte Rolle AWSServiceRoleForEC2Spot, um Spot-Instances in Ihrem Namen zu starten und zu verwalten. Weitere Informationen finden Sie unter Serviceverknüpfte Rolle für Spot-Instance-Anforderungen.
IAM-Rolle zum Markieren einer Spot-Flotte
Die IAM-Rolle aws-ec2-spot-fleet-tagging-role gewährt der Spot-Flotte die Berechtigung, die Spot-Flotten-Anforderung, -Instances und -Volumes zu markieren. Weitere Informationen finden Sie unter Eine neue Spot-Flotte sowie die Instances und Volumes, die sie startet, markieren.
Wichtig
Wenn Sie sich dafür entscheiden, Instances in der Flotte zu markieren und gleichzeitig die Zielkapazität beizubehalten (die Spot-Flotten-Anfrage ist vom Typ maintain), können die Unterschiede in den Berechtigungen, die für den Benutzer und die IamFleetRole festgelegt sind, zu einem inkonsistenten Tag-Verhalten der Instances in der Flotte führen. Wenn IamFleetRole die CreateTags-Berechtigung nicht enthält, werden einige der von der Flotte gestarteten Instances möglicherweise nicht markiert. Während wir daran arbeiten, diese Inkonsistenz zu beheben, um sicherzustellen, dass alle Instances, die von der Flotte gestartet werden, markiert sind, empfehlen wir, die aws-ec2-spot-fleet-tagging-role-Rolle für die IamFleetRole zu verwenden. Um eine bestehende Rolle zu verwenden, fügen Sie alternativ die AmazonEC2SpotFleetTaggingRole AWS verwaltete Richtlinie der vorhandenen Rolle hinzu. Andernfalls müssen Sie die CreateTags-Berechtigung manuell zu Ihrer vorhandenen Richtlinie hinzufügen.
So erstellen Sie die IAM-Rolle zum Markieren einer Spot-Flotte:
Öffnen Sie unter https://console.aws.amazon.com/iam/
die IAM-Konsole. -
Wählen Sie im Navigationsbereich Rollen aus.
-
Wählen Sie Create role (Rolle erstellen) aus.
-
Wählen Sie auf der Seite Select trusted entity (Auswahl der vertrauenswürdigen Entität) unter Trusted entity type (Auswahl der vertrauenswürdigen Entität) die Option AWS service (-Service) aus.
-
Unter Use case (Anwendungsfall) wählen Sie ausgehend von Use cases for other AWS services (Anwendungsfälle für andere -Services) die Option EC2 und danach EC2 - Spot Fleet Tagging (EC2 – Spot-Flotten-Markierung) aus.
-
Wählen Sie Weiter aus.
-
Wählen Sie auf der Seite Add permissions (Berechtigungen hinzufügen) die Option Next (Weiter) aus.
-
Geben Sie auf der Seite Name, review, and create (Benennen, überprüfen und erstellen) für Role name (Rollenname) einen Namen für die Rolle ein (z. B.
aws-ec2-spot-fleet-tagging-role). -
Überprüfen Sie die Informationen auf der Seite, und wählen Sie dann Create role (Rolle erstellen) aus.
Cross-service verwirrter Stellvertreter, Prävention
Das Confused-Deputy-Problem ist ein Sicherheitsproblem, bei dem eine Entität, die nicht über die Berechtigung zum Ausführen einer Aktion verfügt, eine Entität mit größeren Rechten zwingen kann, die Aktion auszuführen. Wir empfehlen, dass Sie die globalen Bedingungskontext-Schlüssel aws:SourceArn und aws:SourceAccount in der aws-ec2-spot-fleet-tagging-role-Vertrauensrichtlinie verwenden, um die Berechtigungen, welche die Spot-Flotte einem anderen Service erteilt, auf die Ressource zu beschränken.
Um die SourceAccount Bedingungsschlüssel aws: SourceArn und aws: zur Vertrauensrichtlinie aws-ec2-spot-fleet-tagging-role hinzuzufügen
-
Öffnen Sie unter https://console.aws.amazon.com/iam/
die IAM-Konsole. -
Wählen Sie im Navigationsbereich Rollen.
-
Suchen Sie die
aws-ec2-spot-fleet-tagging-role, die Sie zuvor erstellt haben, und wählen Sie den Link (nicht das Kontrollkästchen) aus. -
Wählen Sie unter Summary (Zusammenfassung) die Registerkarte Trust Relationships (Vertrauensstellungen) und dann Edit trust policy (Vertrauensrichtlinie bearbeiten) aus.
-
Fügen Sie in der JSON-Anweisung ein
Condition-Element hinzu, das Ihre globalenaws:SourceAccount- undaws:SourceArn-Bedingungskontextschlüssel zur Verhinderung des Confused-Deputy-Problems folgendermaßen festlegt:"Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:ec2:us-east-1:111122223333:spot-fleet-request/sfr-*" }, "StringEquals": { "aws:SourceAccount": "111122223333" }Anmerkung
Wenn der
aws:SourceArn-Wert die Konto-ID enthält und Sie beide globalen Bedingungskontextschlüssel verwenden, müssen deraws:SourceAccount-Wert und das Konto imaws:SourceArn-Wert dieselbe Konto-ID verwenden, wenn sie in der gleichen Richtlinienanweisung verwendet wird.Die endgültige Vertrauensrichtlinie wird folgendermaßen aussehen:
-
Wählen Sie Richtlinie aktualisieren.
Die folgende Tabelle enthält potenzielle Werte für aws:SourceArn, um den Umfang Ihrer aws-ec2-spot-fleet-tagging-role in unterschiedlichem Grad an Spezifität einzuschränken.
| API-Operation | Aufgerufener Service | Scope | aws:SourceArn |
|---|---|---|---|
| RequestSpotFleet | AWS STS (AssumeRole) |
Begrenzen Sie die AssumeRole-Funktion in aws-ec2-spot-fleet-tagging-role auf Spot-Flotten-Anforderungen im angegebenen Konto. |
arn:aws:ec2:*: |
| RequestSpotFleet | AWS STS (AssumeRole) |
Begrenzen Sie die AssumeRole-Funktion in aws-ec2-spot-fleet-tagging-role auf Spot-Flotten-Anforderungen im angegebenen Konto und in der angegebenen Region. Beachten Sie, dass diese Rolle in anderen Regionen nicht verwendbar ist. |
arn:aws:ec2: |
| RequestSpotFleet | AWS STS (AssumeRole) |
Begrenzen Sie die AssumeRole-Funktion in aws-ec2-spot-fleet-tagging-role nur auf Maßnahmen, welche die Flotte sfr-11111111-1111-1111-1111-111111111111 betreffen. Beachten Sie, dass diese Rolle möglicherweise nicht für andere Spot-Flotten verwendbar ist. Diese Rolle kann auch nicht verwendet werden, um neue Spot-Flotten über RequestSpotFleet zu starten. |
arn:aws:ec2: |