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.
In diesem Abschnitt wird beschrieben, wie Sie die verwenden können AWS CLI , um eine CloudTrail Lake-Integration zu erstellen, um Ereignisse von außerhalb von zu protokollieren AWS.
In der AWS CLI erstellen Sie eine Integration in vier Befehlen (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 regionsübergreifend sein, sie können keine Ereignisse für Organisationen protokollieren und sie können nur Aktivitätsereignisse enthalten. AWS Organizations Der Ereignistyp in der Konsole muss Events from integrations (Ereignisse aus Integrationen) sein. In der API muss der eventCategory
Wert sein. ActivityAuditLog
Weitere Informationen über Integrationen finden Sie unter Erstellen Sie eine Integration mit einer Ereignisquelle außerhalb von AWS.
-
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. Der folgende AWS CLI Beispielbefehl erstellt einen Ereignisdatenspeicher, der Ereignisse von außen protokolliert AWS. Für Aktivitätsereignisse lautet der
eventCategory
-FeldauswahlwertActivityAuditLog
. 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 ID des Ereignisdatenspeichers (das Suffix von oder
EXAMPLEf852-4e8f-8bd1-bcf6cEXAMPLE
im vorherigen Antwortbeispiel)ARN, um mit dem nächsten Schritt fortzufahren und Ihren Kanal zu erstellen. -
Führen Sie den create-channel
Befehl aus, um einen Kanal zu erstellen, der es einer Partner- oder Quellanwendung ermöglicht, Ereignisse an einen Ereignisdatenspeicher in CloudTrail zu senden. 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 IDs imLocation
Attribut des--destinations
Parameters durch sie repräsentiert 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 SieCustom
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 in der Antwort auf Ihren create-channel Befehl den ARN des neuen Kanals. Sie benötigen dieARN, um die
put-audit-events
Befehleput-resource-policy
und in den nächsten Schritten auszuführen. -
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 auf der Ressource ausführen kann und unter welchen Bedingungen. Die Konten, die in der Ressourcenrichtlinie des Kanals als Principals definiert sind, können diese aufrufen
PutAuditEvents
API, um Ereignisse auszulösen.Anmerkung
Wenn du keine Ressourcenrichtlinie für den Kanal erstellst, kann nur der Kanalbesitzer die
PutAuditEvents
API auf dem Kanal aufrufen.Die für die Richtlinie erforderlichen Informationen werden durch den Integrationstyp bestimmt.
-
Für eine direkte Integration CloudTrail muss die Richtlinie das AWS Konto IDs des Partners enthalten und du musst die vom Partner bereitgestellte eindeutige externe ID eingeben. CloudTrail fügt das AWS Konto des Partners automatisch IDs 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:
-
Die in der Richtlinie ARN definierte Ressource muss mit dem Kanal übereinstimmen, an ARN 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.
-
-
Führen Sie den aus
PutAuditEvents
API, in den Sie Ihre Aktivitätsereignisse aufnehmen möchten. 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 in die Payload aufnehmen. CloudTrail Beachten Sie, dass der den EndpunktPutAuditEvents
API verwendet, nicht dencloudtrail-data
CLI Endpunkt.cloudtrail
Die folgenden Beispiele zeigen, wie der put-audit-events CLI Befehl verwendet wird. 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-events
enthält eine erforderliche ID aus dem Ereignis, die erforderliche Nutzlast des Ereignisses als Wert von und eine optionale Prüfsumme EventData, mit deren Hilfe die Integrität des Ereignisses nach der Aufnahme in überprüft werden kann. CloudTrailaws 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 zur Angabe einer JSON Datei (custom-events.json
) mit der Ereignisnutzlast hinzu.aws cloudtrail-data put-audit-events --channel-arn $channelArn --external-id $UniqueExternalIDFromPartner --cli-input-json file://custom-events.json --region us-east-1
Im Folgenden finden Sie den Beispielinhalt der JSON Beispieldatei,
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 CloudTrail Ereignisse aus der Quelle korrekt aufnimmt, indem Sie den get-channel
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 SHA256 Base64-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