AWSSupport-TroubleshootS3EventNotifications - AWS Systems Manager Referenz zum Automatisierungs-Runbook

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 Automation-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 bietet einen Bericht über die Konfigurationseinstellungen der verschiedenen Ressourcen, die mit dem Amazon S3 S3-Bucket konfiguriert wurden, als Zielereignisbenachrichtigung.

Wie funktioniert es?

Das Runbook führt die folgenden Schritte aus:

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

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

  • Überprüft, ob die Zielressource existiert, und überprüft dann die ressourcenbasierte Richtlinie der Zielressourcen, um festzustellen, ob Amazon S3 auf dem Ziel veröffentlichen darf.

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

  • Generiert einen Bericht über alle Prüfungen der Zielressourcen.

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

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

Führen Sie diese Automatisierung aus (Konsole)

Art des Dokuments

Automatisierung

Eigentümer

Amazon

Plattformen

Linux, macOS, Windows

Parameter

  • AutomationAssumeRole

    Typ: Zeichenfolge

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

  • S3 BucketName

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

    Beschreibung: (Erforderlich) Der Name des Amazon S3 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 Funktion „Automation Assume Role“

{ "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::::<bucket-name>" }, { "Sid": "SQSPermission", "Effect": "Allow", "Action": [ "sqs:GetQueueAttributes", "sqs:GetQueueUrl" ], "Resource": "arn:aws:sqs:<region>:123456789012:*" }, { "Sid": "SNSPermission", "Effect": "Allow", "Action": [ "sns:GetTopicAttributes" ], "Resource": "arn:aws:sns:<region>:123456789012:*" }, { "Sid": "KMSPermission", "Effect": "Allow", "Action": [ "kms:GetKeyPolicy", "kms:DescribeKey", "kms:ListAliases" ], "Resource": "arn:aws:kms:<region>:123456789012:key/<key-id>" }, { "Sid": "LambdaPermission", "Effect": "Allow", "Action": [ "lambda:GetPolicy", "lambda:GetFunction" ], "Resource": "arn:aws:lambda:<region>:123456789012:function:*" }, { "Sid": "IAMPermission", "Effect": "Allow", "Action": [ "iam:GetContextKeysForCustomPolicy", "iam:SimulateCustomPolicy", "iam:ListRoles" ], "Resource": "*" }, { "Sid": "SSMPermission", "Effect": "Allow", "Action": [ "ssm:DescribeAutomationStepExecutions" ], "Resource": "*" } ] }

Anweisungen

Gehen Sie wie folgt vor, um die Automatisierung zu konfigurieren:

  1. Navigieren Sie AWSSupport-TroubleshootS3EventNotificationsim 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 Rolle AWS AWS Identity and Access Management (IAM), der 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.

    • S3 BucketName (erforderlich):

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

    AWSSupport-TroubleshootS3 Eingabeparameter für die EventNotification 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 angegebene Amazon S3 S3-Bucket zu demselben Konto gehört, in 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 S3-Bucket konfigurierten Event-Benachrichtigungen zu überprüfen und formatiert die Ausgabe.

    • BranchOnSQSResourceRichtlinie

      Gibt an, ob Amazon SQS SQS-Ressourcen in Ereignisbenachrichtigungen enthalten sind.

    • Richtlinie validieren SQSResource

      Überprüft, ob die Ressourcenrichtlinie für Amazon SQS Queue-Attribute sqs:SendMessage berechtigt ist, Amazon S3 zu verwenden. Wenn die Amazon SQS SQS-Ressource verschlüsselt ist, wird geprüft, ob bei der Verschlüsselung kein AWS KMS Standardschlüssel verwendet wird, d. h.aws/sqs, ob die AWS KMS Schlüsselrichtlinie über Berechtigungen für Amazon S3 verfügt.

    • BranchOnSNSResourceRichtlinie

      Gibt an, ob Amazon SNS SNS-Ressourcen in Ereignisbenachrichtigungen enthalten sind.

    • Richtlinie validieren SNSResource

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

    • BranchOnLambdaFunctionResourcePolicy

      Gibt an, ob Ereignisbenachrichtigungen AWS Lambda Funktionen enthalten.

    • ValidateLambdaFunctionResourcePolicy

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

    • GenerateReport

      Gibt Details zu den Runbook-Schritten, Ausgaben und Empfehlungen zur Lösung von Problemen mit den mit dem Amazon S3 S3-Bucket konfigurierten Ereignisbenachrichtigungen zurück.

  7. Wenn der Vorgang abgeschlossen ist, finden Sie im Abschnitt „Ausgaben“ die detaillierten Ergebnisse der Ausführung:

    • Amazon SQS SQS-Ereignisbenachrichtigungen

      Wenn Amazon SQS SQS-Zielbenachrichtigungen für den Amazon S3 S3-Bucket konfiguriert sind, wird neben den Ergebnissen der Prüfungen eine Liste der Amazon SQS SQS-Warteschlangen angezeigt. Der Bericht umfasst die Amazon SQS SQS-Ressourcenprüfung, die Prüfung der Amazon SQS SQS-Zugriffsrichtlinien, die AWS KMS Schlüsselprüfung, die AWS KMS Schlüsselstatusprüfung und die Überprüfung der AWS KMS Schlüsselrichtlinien.

    • Amazon SNS SNS-Ereignisbenachrichtigungen

      Wenn Amazon SNS-Zielbenachrichtigungen für den Amazon S3-Bucket konfiguriert sind, wird neben den Ergebnissen der Prüfungen eine Liste der Amazon SNS SNS-Themen angezeigt. Der Bericht umfasst die Amazon SNS SNS-Ressourcenprüfung, die Prüfung der Amazon SNS SNS-Zugriffsrichtlinien, die AWS KMS Schlüsselprüfung, die AWS KMS Schlüsselstatusprüfung und die Überprüfung der AWS KMS Schlüsselrichtlinien.

    • AWS Lambda Benachrichtigungen über Ereignisse

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

    AWSSupport-TroubleshootSAusgabe mit 3 EventNotification Runbook-Beispielen für die Ausführung.

Referenzen

Systems Manager Automation