View a markdown version of this page

AWSSupport-TroubleshootS3EventNotifications - AWS Systems Manager Runbook-Referenz für Automation

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.

AWSSupport-TroubleshootS3EventNotifications

Beschreibung

Das AWSSupport-TroubleshootS3EventNotifications AWS Systems Manager Automatisierungs-Runbook hilft bei der Fehlerbehebung bei Bucket-Ereignisbenachrichtigungen von Amazon Simple Storage Service (Amazon S3), die mit AWS Lambda Funktionen, Amazon Simple Notification Service (Amazon SNS) -Themen oder Amazon Simple Queue Service (Amazon SQS) -Warteschlangen konfiguriert sind. Es enthält einen Bericht über die Konfigurationseinstellungen der verschiedenen Ressourcen, die mit dem Amazon S3-Bucket als Benachrichtigung über Zielereignisse konfiguriert wurden.

Wie funktioniert es?

Das Runbook führt die folgenden Schritte aus:

  • Prüft, ob der Amazon S3-Bucket in demselben Konto existiert, in dem er ausgeführt AWSSupport-TroubleshootS3EventNotifications wird.

  • Ruft mithilfe der API die Zielressourcen (AWS Lambda Funktion oder Amazon SNS-Thema oder Amazon SQS-Warteschlange) ab, die als Ereignisbenachrichtigungen für den Amazon S3-Bucket konfiguriert sind. GetBucketNotificationConfiguration

  • Überprüft, ob die Zielressource existiert, und überprüft dann die ressourcenbasierte Richtlinie der Zielressourcen, um festzustellen, ob Amazon S3 zur Veröffentlichung am Ziel berechtigt ist.

  • Wenn Sie das Ziel mit einem AWS Key Management Service (AWS KMS) -Schlüssel verschlüsselt haben, wird die Schlüsselrichtlinie überprüft, um festzustellen, ob der Zugriff auf Amazon S3 zulässig ist.

  • Generiert einen Bericht über alle Überprüfungen der Zielressourcen.

Wichtig
  • Dieses Runbook kann Konfigurationen für Ereignisbenachrichtigungen nur auswerten, wenn der Besitzer des Amazon S3-Buckets derselbe ist wie der AWS-Konto Besitzer, auf dem das Automatisierungs-Runbook ausgeführt wird.

  • Darüber hinaus kann dieses Runbook keine Richtlinien für Zielressourcen auswerten, die in einer anderen gehostet werden. AWS-Konto

Führen Sie diese Automatisierung aus (Konsole)

Art des Dokuments

Automatisierung

Eigentümer

Amazon

Plattformen

LinuxmacOS, Windows

Parameter

  • AutomationAssumeRole

    Typ: Zeichenfolge

    Beschreibung: (Optional) Der Amazon-Ressourcenname (ARN) der AWS Identity and Access Management (IAM) -Rolle, die es Systems Manager Automation ermöglicht, die Aktionen in Ihrem Namen auszuführen. Wenn keine Rolle angegeben ist, verwendet Systems Manager Automation die Berechtigungen des Benutzers, der dieses Runbook startet.

  • S3BucketName

    Typ: AWS::S3::Bucket::Name

    Beschreibung: (Erforderlich) Der Name des Amazon S3-Buckets, der mit Ereignisbenachrichtigungen konfiguriert ist.

Erforderliche IAM-Berechtigungen

Der AutomationAssumeRole Parameter erfordert die folgenden Aktionen, um das Runbook erfolgreich zu verwenden.

  • s3:GetBucketLocation

  • s3:ListAllMyBuckets

  • s3:GetBucketNotification

  • sqs:GetQueueAttributes

  • sqs:GetQueueUrl

  • sns:GetTopicAttributes

  • kms:GetKeyPolicy

  • kms:DescribeKey

  • kms:ListAliases

  • lambda:GetPolicy

  • lambda:GetFunction

  • iam:GetContextKeysForCustomPolicy

  • iam:SimulateCustomPolicy

  • iam:ListRoles

  • ssm:DescribeAutomationStepExecutions

Beispiel für eine IAM-Richtlinie für die Rolle Automation Assume

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "S3Permission", "Effect": "Allow", "Action": [ "s3:GetBucketLocation", "s3:ListAllMyBuckets" ], "Resource": "*" }, { "Sid": "S3PermissionGetBucketNotification", "Effect": "Allow", "Action": [ "s3:GetBucketNotification" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket" }, { "Sid": "SQSPermission", "Effect": "Allow", "Action": [ "sqs:GetQueueAttributes", "sqs:GetQueueUrl" ], "Resource": "arn:aws:sqs:us-east-1:111122223333:*" }, { "Sid": "SNSPermission", "Effect": "Allow", "Action": [ "sns:GetTopicAttributes" ], "Resource": "arn:aws:sns:us-east-1:111122223333:*" }, { "Sid": "KMSPermission", "Effect": "Allow", "Action": [ "kms:GetKeyPolicy", "kms:DescribeKey", "kms:ListAliases" ], "Resource": "arn:aws:kms:us-east-1:111122223333:key/key-id" }, { "Sid": "LambdaPermission", "Effect": "Allow", "Action": [ "lambda:GetPolicy", "lambda:GetFunction" ], "Resource": "arn:aws:lambda:us-east-1:111122223333:function:*" }, { "Sid": "IAMPermission", "Effect": "Allow", "Action": [ "iam:GetContextKeysForCustomPolicy", "iam:SimulateCustomPolicy", "iam:ListRoles" ], "Resource": "*" }, { "Sid": "SSMPermission", "Effect": "Allow", "Action": [ "ssm:DescribeAutomationStepExecutions" ], "Resource": "*" } ] }

Anweisungen

Folgen Sie diesen Schritten, um die Automatisierung zu konfigurieren:

  1. Navigieren Sie AWSSupport-TroubleshootS3EventNotifications im Systems Manager unter Dokumente zu.

  2. Wählen Sie Execute automation (Automatisierung ausführen).

  3. Geben Sie für die Eingabeparameter Folgendes ein:

    • AutomationAssumeRole (Fakultativ):

      Der Amazon-Ressourcenname (ARN) der AWS AWS Identity and Access Management (IAM) -Rolle, die es Systems Manager Automation ermöglicht, die Aktionen in Ihrem Namen durchzuführen. Wenn keine Rolle angegeben ist, verwendet Systems Manager Automation die Berechtigungen des Benutzers, der dieses Runbook startet.

    • S3BucketName (Erforderlich):

      Der Name des Amazon S3-Buckets, der mit Ereignisbenachrichtigungen konfiguriert ist.

    AWSSupport-TroubleshootS3EventNotification Eingabeparameter für die Runbook-Ausführung.
  4. Wählen Sie Ausführen aus.

  5. Die Automatisierung wird initiiert.

  6. Das Dokument führt die folgenden Schritte aus:

    • ValidateInputs

      Überprüft, ob der Amazon S3-Bucket zu demselben Konto gehört, auf dem die Automatisierung ausgeführt wird, und ruft die Region ab, in der der Bucket gehostet wird.

    • GetBucketNotificationConfiguration

      Ruft die GetBucketNotificationConfiguration API auf, um die mit dem Amazon S3-Bucket konfigurierten Ereignisbenachrichtigungen zu überprüfen und die Ausgabe zu formatieren.

    • BranchOnSQSResourcePolicy

      Verzweigt darüber, ob in den Ereignisbenachrichtigungen Amazon SQS-Ressourcen enthalten sind.

    • ValidateSQSResourcePolicy

      Überprüft die Ressourcenrichtlinie für Amazon SQS-Warteschlangenattribute und besitzt die sqs:SendMessage Berechtigung für Amazon S3. Wenn die Amazon SQS-Ressource verschlüsselt ist, prüft, ob für die Verschlüsselung kein AWS KMS Standardschlüssel verwendet wird, d. h. aws/sqs und es wird überprüft, ob die AWS KMS Schlüsselrichtlinie über Berechtigungen für Amazon S3 verfügt.

    • BranchOnSNSResourcePolicy

      In den Ereignisbenachrichtigungen wird angegeben, ob Amazon SNS-Ressourcen vorhanden sind.

    • ValidateSNSResourcePolicy

      Überprüft die Ressourcenrichtlinie für Amazon SNS-Themenattribute hat die sns:Publish Berechtigung für Amazon S3. Wenn die Amazon SNS-Ressource verschlüsselt ist, prüft, ob für die Verschlüsselung kein AWS KMS Standardschlüssel verwendet wird, d. h. aws/sns und es wird überprüft, ob die AWS KMS Schlüsselrichtlinie über Berechtigungen für Amazon S3 verfügt.

    • BranchOnLambdaFunctionResourcePolicy

      Verzweigt, ob Event-Benachrichtigungen AWS Lambda Funktionen enthalten.

    • ValidateLambdaFunctionResourcePolicy

      Überprüft die Ressourcenrichtlinie, wenn die AWS Lambda Funktion über eine lambda:InvokeFunction Genehmigung für Amazon S3 verfügt.

    • GenerateReport

      Gibt Details zu den Ausgaben der Runbook-Schritte und Empfehlungen zur Behebung von Problemen mit den mit dem Amazon S3-Bucket konfigurierten Ereignisbenachrichtigungen zurück.

  7. Wenn Sie fertig sind, finden Sie im Abschnitt Ausgaben die detaillierten Ergebnisse der Ausführung:

    • Amazon SQS-Ereignisbenachrichtigungen

      Wenn Amazon SQS-Zielbenachrichtigungen mit dem Amazon S3-Bucket konfiguriert sind, wird neben den Ergebnissen der Prüfungen eine Liste der Amazon SQS-Warteschlangen angezeigt. Der Bericht umfasst die Überprüfung der Amazon SQS-Ressourcen, die Überprüfung der Amazon SQS-Zugriffsrichtlinien, die Schlüsselprüfung, die Überprüfung des AWS KMS AWS KMS Schlüsselstatus und die Überprüfung der wichtigsten Richtlinien. AWS KMS

    • Amazon SNS-Benachrichtigungen über Ereignisse

      Wenn Amazon SNS-Zielbenachrichtigungen mit dem Amazon S3-Bucket konfiguriert sind, wird neben den Ergebnissen der Prüfungen eine Liste der Amazon SNS-Themen angezeigt. Der Bericht umfasst die Überprüfung der Amazon SNS-Ressourcen, die Überprüfung der Amazon SNS-Zugriffsrichtlinien, die AWS KMS Schlüsselüberprüfung, die Überprüfung des AWS KMS Schlüsselstatus und AWS KMS die Überprüfung der wichtigsten Richtlinien.

    • AWS Lambda Benachrichtigungen über Ereignisse

      Wenn mit dem Amazon S3-Bucket AWS Lambda Zielbenachrichtigungen konfiguriert sind, wird neben den Ergebnissen der Prüfungen eine Liste der Lambda-Funktionen angezeigt. Der Bericht umfasst die Lambda-Ressourcenprüfung und die Lambda-Zugriffsrichtlinien-Überprüfung.

    AWSSupport-TroubleshootS3EventNotification Ausgabe einer Runbook-Beispielausführung.

Referenzen

Systems Manager Automation