Erstellen, aktualisieren und verwalten Sie CloudTrail Lake-Integrationen mit dem AWS CLI - AWS CloudTrail

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.

Erstellen, aktualisieren und verwalten Sie CloudTrail Lake-Integrationen mit dem AWS CLI

Sie können die verwenden, AWS CLI um Ihre CloudTrail Lake-Integrationen zu erstellen, zu aktualisieren und zu verwalten. Denken Sie bei der Verwendung von daran AWS CLI, dass Ihre Befehle in der für Ihr Profil AWS-Region konfigurierten Version ausgeführt werden. Wenn Sie die Befehle in einer anderen Region ausführen möchten, ändern Sie entweder die Standardregion für Ihr Profil, oder verwenden Sie den --region-Parameter mit dem Befehl.

Verfügbare Befehle für CloudTrail Lake-Integrationen

Zu den Befehlen zum Erstellen, Aktualisieren und Verwalten von Integrationen in CloudTrail Lake gehören:

Eine Liste der verfügbaren Befehle für CloudTrail Lake-Ereignisdatenspeicher finden Sie unter. Verfügbare Befehle für Ereignisdatenspeicher

Eine Liste der verfügbaren Befehle für CloudTrail Lake-Abfragen finden Sie unterVerfügbare Befehle für CloudTrail Lake-Abfragen.

Erstellen Sie eine Integration zur Protokollierung von Ereignissen von außen AWS mit dem AWS CLI

In der erstellen Sie eine Integration AWS CLI, die Ereignisse von außen AWS in vier Befehlen protokolliert (drei, wenn Sie bereits über einen Ereignisdatenspeicher verfügen, der die Kriterien erfüllt). Ereignisdatenspeicher, die Sie als Ziele für eine Integration verwenden, müssen für eine einzelne Region und ein einzelnes Konto bestimmt sein. Sie können nicht für mehrere Regionen verwendet werden, sie können keine Ereignisse für Organisationen protokollieren, in denen sie sich befinden AWS Organizations, und sie können nur Aktivitätsereignisse enthalten. Der Ereignistyp in der Konsole muss Events from integrations (Ereignisse aus Integrationen) sein. In der API muss der eventCategory-Wert ActivityAuditLog sein. Weitere Informationen über Integrationen finden Sie unter Erstellen Sie eine Integration mit einer Ereignisquelle außerhalb von AWS.

  1. Führen Sie den Vorgang create-event-data-store aus, um einen Ereignisdatenspeicher zu erstellen, falls Sie nicht bereits über einen oder mehrere Ereignisdatenspeicher verfügen, die Sie für die Integration verwenden können.

    Mit dem folgenden AWS CLI Beispielbefehl wird ein Ereignisdatenspeicher erstellt, der Ereignisse von außen AWS protokolliert. Für Aktivitätsereignisse lautet der eventCategory-Feldauswahlwert ActivityAuditLog. Der Aufbewahrungszeitraum des Ereignisdatenspeichers beträgt 90 Tage. Standardmäßig sammelt der Ereignisdatenspeicher Ereignisse aus allen Regionen. Da es sich jedoch um AWS Nichtereignisse handelt, legen Sie ihn auf eine einzelne Region fest, indem Sie die --no-multi-region-enabled Option hinzufügen. Der Kündigungsschutz ist standardmäßig aktiviert, und der Ereignisdatenspeicher erfasst keine Ereignisse für Konten in einer Organisation.

    aws cloudtrail create-event-data-store \ --name my-event-data-store \ --no-multi-region-enabled \ --retention-period 90 \ --advanced-event-selectors '[ { "Name": "Select all external events", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["ActivityAuditLog"] } ] } ]'

    Nachfolgend finden Sie eine Beispielantwort.

    { "EventDataStoreArn": "arn:aws:cloudtrail:us-east-1:123456789012:eventdatastore/EXAMPLEf852-4e8f-8bd1-bcf6cEXAMPLE", "Name": "my-event-data-store", "AdvancedEventSelectors": [ { "Name": "Select all external events", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "ActivityAuditLog" ] } ] } ], "MultiRegionEnabled": true, "OrganizationEnabled": false, "BillingMode": "EXTENDABLE_RETENTION_PRICING", "RetentionPeriod": 90, "TerminationProtectionEnabled": true, "CreatedTimestamp": "2023-10-27T10:55:55.384000-04:00", "UpdatedTimestamp": "2023-10-27T10:57:05.549000-04:00" }

    Sie benötigen die Ereignisdatenspeicher-ID (das Suffix des ARN oder EXAMPLEf852-4e8f-8bd1-bcf6cEXAMPLE im vorherigen Antwortbeispiel), um mit dem nächsten Schritt fortzufahren und Ihren Kanal zu erstellen.

  2. Führen Sie den create-channelBefehl aus, um einen Kanal zu erstellen, der es einer Partner- oder Quellanwendung ermöglicht, Ereignisse an einen Ereignisdatenspeicher in zu senden CloudTrail.

    Ein Kanal umfasst die folgenden Komponenten:

    Quelle

    CloudTrail verwendet diese Informationen, um die Partner zu ermitteln, an die in CloudTrail Ihrem Namen Ereignisdaten gesendet werden. Eine Quelle ist erforderlich und kann entweder Custom für alle gültigen Nicht-AWS -Ereignisse oder für den Namen einer Partnerereignisquelle verwendet werden. Pro Quelle ist maximal ein Kanal zulässig.

    Informationen zu den Source-Werten für verfügbare Partner finden Sie unter Zusätzliche Informationen über Integrationspartner.

    Status der Aufnahme

    Der Kanalstatus zeigt an, wann die letzten Ereignisse von einer Kanalquelle empfangen wurden.

    Ziele

    Die Ziele sind die CloudTrail Lake-Ereignisdatenspeicher, die Ereignisse vom Kanal empfangen. Sie können die Zielereignisdatenspeicher für einen Kanal ändern.

    Um keine Ereignisse mehr von einer Quelle zu empfangen, löschen Sie den Kanal.

    Sie benötigen die ID von mindestens einem Zielereignisdatenspeicher, um diesen Befehl auszuführen. Der gültige Zieltyp ist EVENT_DATA_STORE. Sie können aufgenommene Ereignisse an mehr als einen Ereignisdatenspeicher senden. Mit dem folgenden Beispielbefehl wird ein Kanal erstellt, der Ereignisse an zwei Ereignisdatenspeicher sendet, die durch ihre IDs im Location-Attribut des --destinations-Parameters dargestellt werden. Die Parameter --destinations, --name und --source müssen angegeben werden. Um Ereignisse von einem CloudTrail Partner aufzunehmen, geben Sie den Namen des Partners als Wert von an--source. Wenn Sie Ereignisse aus Ihren eigenen externen Anwendungen aufnehmen möchten AWS, geben Sie Custom den Wert von an. --source

    aws cloudtrail create-channel \ --region us-east-1 \ --destinations '[{"Type": "EVENT_DATA_STORE", "Location": "EXAMPLEf852-4e8f-8bd1-bcf6cEXAMPLE"}, {"Type": "EVENT_DATA_STORE", "Location": "EXAMPLEg922-5n2l-3vz1- apqw8EXAMPLE"}]' --name my-partner-channel \ --source $partnerSourceName \

    Kopieren Sie als Antwort auf Ihren create-channel-Befehl den ARN des neuen Kanals. Sie benötigen den ARN, um die put-resource-policy- und put-audit-events-Befehle und in den nächsten Schritten auszuführen.

  3. Führen Sie den put-resource-policyBefehl aus, um eine Ressourcenrichtlinie an den Kanal anzuhängen. Ressourcenrichtlinien sind JSON-Richtliniendokumente, die angeben, welche Aktionen ein bestimmter Prinzipal unter welchen Bedingungen für die Ressource ausführen kann. Die in der Ressourcenrichtlinie des Kanals als Prinzipale definierten Konten können die PutAuditEvents-API aufrufen, um Ereignisse zu übermitteln.

    Anmerkung

    Wenn Sie keine Ressourcenrichtlinie für den Kanal erstellen, kann nur der Kanalbesitzer die PutAuditEvents-API auf dem Kanal aufrufen.

    Die für die Richtlinie erforderlichen Informationen werden durch den Integrationstyp bestimmt.

    • Bei einer Direktionsintegration CloudTrail muss die Richtlinie die AWS Konto-IDs des Partners enthalten und Sie müssen die vom Partner bereitgestellte eindeutige externe ID eingeben. CloudTrail fügt automatisch die AWS Konto-IDs des Partners zur Ressourcenrichtlinie hinzu, wenn Sie eine Integration mithilfe der CloudTrail Konsole erstellen. In der Dokumentation des Partners erfahren Sie, wie Sie die für die Richtlinie erforderlichen AWS Kontonummern erhalten.

    • Für eine Lösungsintegration müssen Sie mindestens eine AWS Konto-ID als Principal angeben und können optional eine externe ID eingeben, um zu verhindern, dass der Stellvertreter verwirrt wird.

    Die folgenden Anforderungen sind für die Ressourcenrichtlinie erforderlich:

    • Der in der Richtlinie definierte Ressourcen-ARN muss mit dem Kanal-ARN übereinstimmen, an den die Richtlinie angehängt ist.

    • Die Richtlinie enthält nur eine Aktion: cloudtrail-data: PutAuditEvents

    • Jede Richtlinie muss mindestens eine Aussage enthalten. Die Richtlinie kann maximal 20 Aussagen umfassen.

    • Jede Aussage enthält mindestens einen Prinzipal. Eine Aussage kann maximal 50 Prinzipale haben.

    aws cloudtrail put-resource-policy \ --resource-arn "channelARN" \ --policy "{ "Version": "2012-10-17", "Statement": [ { "Sid": "ChannelPolicy", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:root", "arn:aws:iam::444455556666:root", "arn:aws:iam::123456789012:root" ] }, "Action": "cloudtrail-data:PutAuditEvents", "Resource": "arn:aws:cloudtrail:us-east-1:777788889999:channel/EXAMPLE-80b5-40a7-ae65-6e099392355b", "Condition": { "StringEquals": { "cloudtrail:ExternalId": "UniqueExternalIDFromPartner" } } } ] }"

    Weitere Informationen zu Ressourcenrichtlinien finden Sie unter AWS CloudTrail Beispiele für ressourcenbasierte Richtlinien.

  4. Führen Sie die PutAuditEventsAPI aus, in die Ihre Aktivitätsereignisse aufgenommen werden sollen. CloudTrail Sie benötigen die Payload der Ereignisse, die Sie hinzufügen CloudTrail möchten. Stellen Sie sicher, dass die Event-Payload keine sensiblen oder persönlich identifizierbaren Informationen enthält, bevor Sie sie aufnehmen. CloudTrail Beachten Sie, dass die PutAuditEvents-API den cloudtrail-data-CLI-Endpunkt verwendet, nicht den cloudtrail-Endpunkt.

    Die folgenden Beispiele demonstrieren die Verwendung des CLI-Befehls put-audit-events. Die Parameter --audit-events und --channel-arn müssen angegeben werden. Der --external-id-Parameter ist erforderlich, wenn in der Ressourcenrichtlinie eine externe ID definiert ist. Sie benötigen den ARN des Kanals, den Sie im vorherigen Schritt erstellt haben. Der Wert von --audit-events ist ein JSON-Array von Ereignisobjekten. --audit-eventsenthält eine erforderliche ID aus dem Ereignis, die erforderliche Nutzlast des Ereignisses als Wert von und eine optionale Prüfsumme EventData, um die Integrität des Ereignisses nach der Aufnahme in zu überprüfen. CloudTrail

    aws cloudtrail-data put-audit-events \ --channel-arn $ChannelArn \ --external-id $UniqueExternalIDFromPartner \ --audit-events \ id="event_ID",eventData='"{event_payload}"' \ id="event_ID",eventData='"{event_payload}"',eventDataChecksum="optional_checksum"

    Nachfolgend finden Sie einen Beispielbefehl mit zwei Ereignisbeispielen.

    aws cloudtrail-data put-audit-events \ --channel-arn arn:aws:cloudtrail:us-east-1:123456789012:channel/EXAMPLE8-0558-4f7e-a06a-43969EXAMPLE \ --external-id UniqueExternalIDFromPartner \ --audit-events \ id="EXAMPLE3-0f1f-4a85-9664-d50a3EXAMPLE",eventData='"{\"eventVersion\":\0.01\",\"eventSource\":\"custom1.domain.com\", ... \}"' \ id="EXAMPLE7-a999-486d-b241-b33a1EXAMPLE",eventData='"{\"eventVersion\":\0.02\",\"eventSource\":\"custom2.domain.com\", ... \}"',eventDataChecksum="EXAMPLE6e7dd61f3ead...93a691d8EXAMPLE"

    Der folgende Beispielbefehl fügt den --cli-input-json-Parameter hinzu, um eine JSON-Datei (custom-events.json) mit Ereignis-Nutzlast anzugeben.

    aws cloudtrail-data put-audit-events --channel-arn $channelArn --external-id $UniqueExternalIDFromPartner --cli-input-json file://custom-events.json --region us-east-1

    Es folgen Beispiele für den Inhalt der Beispiel-JSON–Datei custom-events.json.

    { "auditEvents": [ { "eventData": "{\"version\":\"eventData.version\",\"UID\":\"UID\", \"userIdentity\":{\"type\":\"CustomUserIdentity\",\"principalId\":\"principalId\", \"details\":{\"key\":\"value\"}},\"eventTime\":\"2021-10-27T12:13:14Z\",\"eventName\":\"eventName\", \"userAgent\":\"userAgent\",\"eventSource\":\"eventSource\", \"requestParameters\":{\"key\":\"value\"},\"responseElements\":{\"key\":\"value\"}, \"additionalEventData\":{\"key\":\"value\"}, \"sourceIPAddress\":\"12.34.56.78\",\"recipientAccountId\":\"152089810396\"}", "id": "1" } ] }

Sie können überprüfen, ob die Integration funktioniert und Ereignisse aus der Quelle CloudTrail korrekt aufnimmt, indem Sie den Befehl ausführen. get-channel Die Ausgabe von get-channel zeigt den letzten Zeitstempel, mit dem Ereignisse CloudTrail empfangen wurden.

aws cloudtrail get-channel --channel arn:aws:cloudtrail:us-east-1:01234567890:channel/EXAMPLE8-0558-4f7e-a06a-43969EXAMPLE

(Optional) Berechnen Sie einen Prüfsummenwert

Anhand der Prüfsumme, die Sie EventDataChecksum in einer PutAuditEvents Anforderung als Wert angeben, können Sie überprüfen, ob das Ereignis CloudTrail empfangen wird, das mit der Prüfsumme übereinstimmt. Sie hilft Ihnen dabei, die Integrität von Ereignissen zu überprüfen. Der Prüfsummenwert ist ein Base64-SHA256-Algorithmus, den Sie berechnen, indem Sie den folgenden Befehl ausführen.

printf %s "{"eventData": "{\"version\":\"eventData.version\",\"UID\":\"UID\", \"userIdentity\":{\"type\":\"CustomUserIdentity\",\"principalId\":\"principalId\", \"details\":{\"key\":\"value\"}},\"eventTime\":\"2021-10-27T12:13:14Z\",\"eventName\":\"eventName\", \"userAgent\":\"userAgent\",\"eventSource\":\"eventSource\", \"requestParameters\":{\"key\":\"value\"},\"responseElements\":{\"key\":\"value\"}, \"additionalEventData\":{\"key\":\"value\"}, \"sourceIPAddress\":\"source_IP_address\", \"recipientAccountId\":\"recipient_account_ID\"}", "id": "1"}" \ | openssl dgst -binary -sha256 | base64

Der Befehl gibt die Prüfsumme zurück. Im Folgenden wird ein Beispiel gezeigt.

EXAMPLEDHjkI8iehvCUCWTIAbNYkOgO/t0YNw+7rrQE=

Der Prüfsummenwert wird der Wert von EventDataChecksum in Ihrer PutAuditEvents-Anfrage. Wenn die Prüfsumme nicht mit der für das angegebene Ereignis übereinstimmt, wird das Ereignis mit einem CloudTrail Fehler zurückgewiesen. InvalidChecksum

Aktualisiere einen Kanal mit AWS CLI

Führen Sie den update-channel-Befehl aus, um den Namen oder die Zielereignisdatenspeicher eines Kanals zu aktualisieren. Der Parameter --channel muss angegeben werden. Sie können die Quelle eines Kanals nicht aktualisieren. Im Folgenden wird ein Beispiel gezeigt.

aws cloudtrail update-channel \ --channel aws:cloudtrail:us-east-1:123456789012:channel/EXAMPLE8-0558-4f7e-a06a-43969EXAMPLE \ --name "new-channel-name" \ --destinations '[{"Type": "EVENT_DATA_STORE", "Location": "EXAMPLEf852-4e8f-8bd1-bcf6cEXAMPLE"}, {"Type": "EVENT_DATA_STORE", "Location": "EXAMPLEg922-5n2l-3vz1- apqw8EXAMPLE"}]'

Löschen Sie einen Kanal, um eine Integration mit dem zu löschen AWS CLI

Um zu verhindern, dass Partner- oder andere Aktivitätsereignisse von außerhalb aufgenommen werden AWS, löschen Sie den Kanal, indem Sie den delete-channel Befehl ausführen. Der ARN oder die Kanal-ID (das ARN-Suffix) des Kanals, den Sie löschen möchten, ist erforderlich. Im Folgenden wird ein Beispiel gezeigt.

aws cloudtrail delete-channel \ --channel EXAMPLE8-0558-4f7e-a06a-43969EXAMPLE