Überprüfung der Berechtigungen für API-Aufrufe von Application Auto Scaling für Zielressourcen - Application Auto Scaling

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.

Überprüfung der Berechtigungen für API-Aufrufe von Application Auto Scaling für Zielressourcen

Um autorisierte Anfragen für API-Aktionen von Application Auto Scaling zu stellen, muss der API-Aufrufer über Berechtigungen für den Zugriff auf AWS Ressourcen im Zieldienst und in CloudWatch verfügen. Application Auto Scaling validiert die Berechtigungen für Anfragen, die sowohl mit dem Zieldienst verknüpft sind, als auch CloudWatch bevor mit der Anfrage fortgefahren wird. Dazu führen wir eine Reihe von Aufrufen durch, um die IAM-Berechtigungen der Zielressourcen zu überprüfen. Wenn eine Antwort zurückgegeben wird, wird sie von Application Auto Scaling gelesen. Wenn die IAM-Berechtigungen eine bestimmte Aktion nicht zulassen, schlägt Application Auto Scaling die Anfrage fehl und gibt dem Benutzer eine Fehlermeldung mit Informationen über die fehlende Berechtigung zurück. Dadurch wird sichergestellt, dass die Skalierungskonfiguration, die der Benutzer bereitstellen möchte, wie beabsichtigt funktioniert, und dass ein nützlicher Fehler zurückgegeben wird, wenn die Anfrage fehlschlägt.

Als Beispiel dafür, wie dies funktioniert, finden Sie in den folgenden Informationen Informationen darüber, wie Application Auto Scaling Berechtigungsüberprüfungen mit Aurora und durchführt. CloudWatch

Wenn ein Benutzer die RegisterScalableTarget-API für einen Aurora-DB-Cluster aufruft, führt Application Auto Scaling alle folgenden Prüfungen durch, um zu überprüfen, ob der Benutzer über die erforderlichen Berechtigungen verfügt (fett gedruckt).

  • rds:CreateDBInstance: Um festzustellen, ob der Benutzer diese Berechtigung hat, senden wir eine Anfrage an die API-Operation CreateDBInstance und versuchen, eine DB-Instance mit ungültigen Parametern (leere Instance-ID) in dem vom Benutzer angegebenen Aurora-DB-Cluster zu erstellen. Für einen autorisierten Benutzer gibt die API nach der Prüfung der Anfrage eine Antwort mit dem Fehlercode InvalidParameterValue zurück. Bei einem nicht autorisierten Benutzer erhalten wir jedoch einen AccessDenied-Fehler und die Anforderung für Application Auto Scaling schlägt mit dem ValidationException-Fehler für den Benutzer fehl, in der die fehlenden Berechtigungen aufgeführt sind.

  • rds:DeleteDBInstance: Wir senden eine leere Instance-ID an den DeleteDBInstance API-Vorgang. Für einen autorisierten Benutzer führt diese Anforderung zu einem InvalidParameterValue-Fehler. Für einen nicht autorisierten Benutzer führt sie zu einem Fehler AccessDenied und sendet eine Validierungsausnahme an den Benutzer (gleiche Behandlung wie im ersten Aufzählungspunkt beschrieben).

  • rds: AddTagsToResource: Da für den AddTagsToResource API-Vorgang ein Amazon-Ressourcenname (ARN) erforderlich ist, ist es erforderlich, eine „Dummy“ -Ressource mit einer ungültigen Konto-ID (12345) und einer Dummy-Instance-ID (non-existing-db) anzugeben, um den ARN () zu erstellen. arn:aws:rds:us-east-1:12345:db:non-existing-db Für einen autorisierten Benutzer führt diese Anforderung zu einem InvalidParameterValue-Fehler. Für einen nicht autorisierten Benutzer führt sie zu AccessDenied und sendet eine Validierungsausnahme an den Benutzer.

  • rds:DescribeDBCluster: Wir beschreiben den Clusternamen für die Ressource, die für Auto Scaling registriert wird. Für einen autorisierten Benutzer erhalten wir ein gültiges Beschreibungsergebnis. Für einen nicht autorisierten Benutzer führt sie zu AccessDenied und sendet eine Validierungsausnahme an den Benutzer.

  • RDS:DescribeBInstance. Wir rufen die API DescribeDBInstance mit einem Filter db-cluster-id auf, der nach dem Clusternamen filtert, der vom Benutzer zur Registrierung des skalierbaren Ziels angegeben wurde. Einem autorisierten Benutzer ist es erlaubt, alle DB-Instances im DB-Cluster zu beschreiben. Bei einem nicht autorisierten Benutzer ergibt dieser Aufruf AccessDenied und sendet eine Validierungsausnahme an den Benutzer.

  • cloudwatch: PutMetric Alarm: Wir rufen die API ohne Parameter auf. PutMetricAlarm Da der Name des Alarms fehlt, ergibt die Anfrage für einen autorisierten Benutzer den Wert ValidationError. Für einen nicht autorisierten Benutzer führt sie zu AccessDenied und sendet eine Validierungsausnahme an den Benutzer.

  • cloudwatch:DescribeAlarms: Wir rufen die DescribeAlarms API auf, wobei der Wert für die maximale Anzahl von Datensätzen auf 1 gesetzt ist. Für einen autorisierten Benutzer erwarten wir Informationen über einen Alarm in der Antwort. Für einen nicht autorisierten Benutzer ergibt dieser Aufruf AccessDenied und sendet eine Validierungsausnahme an den Benutzer.

  • cloudwatch:DeleteAlarms: Ähnlich wie PutMetricAlarm oben stellen wir keine Parameter zur Anfrage bereitDeleteAlarms. Da ein Alarmname in der Anfrage fehlt, schlägt dieser Aufruf mit ValidationError für einen autorisierten Benutzer fehl. Für einen nicht autorisierten Benutzer führt sie zu AccessDenied und sendet eine Validierungsausnahme an den Benutzer.

Jedes Mal, wenn eine dieser Überprüfungsausnahmen auftritt, wird sie protokolliert. Mithilfe AWS CloudTrail von. Sie können Schritte unternehmen, um manuell zu ermitteln, bei welchen Anrufen die Überprüfung fehlgeschlagen ist. Weitere Informationen finden Sie im AWS CloudTrail -Benutzerhandbuch.

Anmerkung

Wenn Sie Benachrichtigungen für Application Auto Scaling Scaling-Ereignisse mit erhalten CloudTrail, enthalten diese Benachrichtigungen standardmäßig die Application Auto Scaling Scaling-Aufrufe zur Überprüfung von Benutzerberechtigungen. Um diese Warnungen herauszufiltern, verwenden Sie das invokedBy-Feld, das für diese Validierungsprüfungen application-autoscaling.amazonaws.com enthält.