AWS S3 in Google SecOps einbinden
In diesem Dokument wird beschrieben, wie Sie AWS S3 in Google Security Operations einbinden.
Anwendungsfälle
- Buckets verwalten
- Dateien aus Buckets herunterladen
- Dateien in Buckets hochladen
Hinweis
Bevor Sie die AWS S3-Integration in Google SecOps konfigurieren, müssen Sie prüfen, ob Ihre Netzwerkumgebung und Ihre AWS-Anmeldedaten alle betrieblichen Voraussetzungen erfüllen.
So bereiten Sie Ihre Umgebung für die Integration vor:
Prüfen Sie die direkte Sichtverbindung zwischen Google SecOps und den regionalen Dienstendpunkten von AWS S3.
Rufen Sie AWS-Anmeldedaten für die programmatische API (eine Zugriffsschlüssel-ID und einen geheimen Zugriffsschlüssel) mit den entsprechenden IAM-Berechtigungen ab.
Konfigurieren und testen Sie die Integrationsinstanz in Google SecOps.
Netzwerkanforderungen
Google SecOps kommuniziert direkt mit dem AWS S3-Dienst über HTTPS-REST-APIs und das AWS Python SDK (boto3).
Ihre Netzwerkumgebung muss die folgenden Verbindungsregeln erfüllen:
Ausgehender HTTPS-Zugriff: Aktivieren Sie die ausgehende HTTPS-Kommunikation von Ihrer Google SecOps-Instanz oder Ihrem Remote Agent zum regionalen AWS S3-Endpunkt (
s3.<region>.amazonaws.comoders3.amazonaws.com) über Port443/TCP.Weitere Informationen finden Sie in der AWS-Dokumentation unter AWS-Service-Endpunkte.
Proxykonfiguration: Wenn Ihre Organisation ausgehenden Traffic über einen HTTP-/HTTPS-Proxy weiterleitet, konfigurieren Sie die Standard-Umgebungsproxyvariablen (
HTTP_PROXY,HTTPS_PROXY,NO_PROXY) auf dem Google SecOps-Server oder dem Remote Agent-Host.
Authentifizierung und Anmeldedaten
Für die AWS S3-Integration sind programmatische API-Anmeldedaten erforderlich, um Anfragen mit AWS Signature Version 4 zu authentifizieren.
Ihre AWS-Umgebung muss die folgenden Authentifizierungsanforderungen erfüllen:
Programmatische Anmeldedaten: Besorgen Sie sich eine gültige AWS-Zugriffsschlüssel-ID und einen AWS-Secret-Key, die einem AWS IAM-Nutzer oder einer AWS IAM-Rolle zugeordnet sind.
Informationen zum Erstellen von IAM-Identitäten und zum Generieren von Anmeldedaten finden Sie in der AWS-Dokumentation unter Zugriffsschlüssel für IAM-Nutzer verwalten und IAM-Identitäten.
Geringste Berechtigung: Beschränken Sie Berechtigungen auf die Aktionen und Bucket-Ressourcen, die für Ihre automatisierten Workflows erforderlich sind, und rotieren Sie Anmeldedaten regelmäßig.
Details zu Sicherheitsempfehlungen finden Sie in der AWS-Dokumentation unter Best Practices für die Sicherheit in IAM.
Aktionsberechtigungen konfigurieren
Weisen Sie der authentifizierenden AWS IAM-Identität die spezifischen Berechtigungen zu, die für die Aktionen erforderlich sind, die von Ihren Google SecOps-Playbooks ausgeführt werden.
In der folgenden Tabelle finden Sie die Mindestberechtigungen für AWS S3-Aktionen:
| Aktionsname | Erforderliche AWS IAM-Berechtigung
(ActionName:Permission) |
Erforderliche Berechtigung | Beschreibung / Ressourcenbereich |
|---|---|---|---|
| Datei aus Bucket herunterladen | s3:GetObject |
s3:ListAllMyBuckets |
Lädt ein Objekt aus einem S3-Bucket herunter. Ressource:
arn:aws:s3:::<bucket-name>/*. |
| Bucket-Richtlinie abrufen | s3:GetBucketPolicy |
s3:ListAllMyBuckets |
Ruft die Bucket-Zugriffsrichtlinie ab. Ressource:
arn:aws:s3:::<bucket-name>. |
| Bucket-Objekte auflisten | s3:ListBucket |
s3:ListAllMyBuckets |
Listet Objekte in einem S3-Bucket auf. Ressource:
arn:aws:s3:::<bucket-name>. |
| Buckets auflisten | s3:ListAllMyBuckets |
– | Listet alle S3-Buckets auf, die dem Konto gehören. Ressource: *. |
| Ping | s3:ListAllMyBuckets |
– | Prüft die Konnektivität der Integration. Ressource: *. |
| Bucket-Richtlinie festlegen | s3:PutBucketPolicy |
s3:ListAllMyBuckets |
Legt eine S3-Bucket-Richtlinie fest oder ändert sie. Ressource:
arn:aws:s3:::<bucket-name>. |
| Datei in Bucket hochladen | s3:PutObject |
s3:ListAllMyBuckets |
Lädt ein Objekt in einen S3-Bucket hoch. Ressource:
arn:aws:s3:::<bucket-name>/*. |
Kurzreferenz (ActionName:Permission)
In der folgenden Kurzübersicht finden Sie die erforderlichen Berechtigungen für die einzelnen Aktionen:
Ping: s3:ListAllMyBuckets
Download File From Bucket: s3:GetObject, s3:ListAllMyBuckets
Get Bucket Policy: s3:GetBucketPolicy, s3:ListAllMyBuckets
List Bucket Objects: s3:ListBucket, s3:ListAllMyBuckets
List Buckets: s3:ListAllMyBuckets
Set Bucket Policy: s3:PutBucketPolicy, s3:ListAllMyBuckets
Upload File To Bucket: s3:PutObject, s3:ListAllMyBuckets
Beispiel für eine IAM-Richtlinie (geringste Berechtigung)
Die folgende Beispielrichtlinie zeigt die Berechtigungen, die zum Ausführen aller AWS S3-Aktionen in Google SecOps erforderlich sind.
Eine Anleitung zum Erstellen und Anhängen von IAM-Richtlinien finden Sie in der AWS-Dokumentation unter IAM-Richtlinien erstellen.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "SecOpsS3Discovery",
"Effect": "Allow",
"Action": [
"s3:ListAllMyBuckets"
],
"Resource": "*"
},
{
"Sid": "SecOpsS3BucketOperations",
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:GetBucketPolicy",
"s3:PutBucketPolicy"
],
"Resource": "arn:aws:s3:::*"
},
{
"Sid": "SecOpsS3ObjectOperations",
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:PutObject"
],
"Resource": "arn:aws:s3:::*/*"
}
]
}
Integrationsparameter
Verwenden Sie die folgenden Parameter, um die Integration zu konfigurieren:
| Anzeigename des Parameters | Typ | Standardwert | Ist obligatorisch | Beschreibung |
|---|---|---|---|---|
| AWS-Zugriffsschlüssel-ID | String | – | Ja | AWS-Zugriffsschlüssel-ID, die in der Integration verwendet werden soll. |
| Geheimer AWS-Schlüssel | Passwort | – | Ja | Der geheime AWS-Schlüssel, der in der Integration verwendet werden soll. |
| Standard-AWS-Region | String | – | Ja | Die AWS-Standardregion, die in der Integration verwendet werden soll, z. B. „us-west-2“. |
| Remote ausführen | Kästchen | Deaktiviert | Nein | Aktivieren Sie das Feld, um die konfigurierte Integration remote auszuführen. Nachdem Sie das Kästchen angekreuzt haben, wird die Option zum Auswählen des Remote-Nutzers (Kundenservicemitarbeiters) angezeigt. |
Eine Anleitung zum Konfigurieren einer Integration in Google SecOps finden Sie unter Integrationen konfigurieren.
Bei Bedarf können Sie später Änderungen vornehmen. Nachdem Sie eine Integrationsinstanz konfiguriert haben, können Sie sie in Playbooks verwenden. Weitere Informationen zum Konfigurieren und Unterstützen mehrerer Instanzen finden Sie unter Mehrere Instanzen unterstützen.
Aktionen
Weitere Informationen zu Aktionen finden Sie unter Ausstehende Aktionen über „Mein Arbeitsbereich“ bearbeiten und Manuelle Maßnahme ausführen.
Datei aus Bucket herunterladen
Laden Sie eine Datei aus einem Bucket in AWS S3 herunter.
Parameter
| Anzeigename des Parameters | Typ | Standardwert | Ist obligatorisch | Beschreibung |
|---|---|---|---|---|
| Bucket-Dateipfad | String | s3://{bucket_name}/{file_name} | Ja | Geben Sie den Pfad zur Datei im Bucket an. Beispiel: s3://siemplify/syslog/log.txt |
| Downloadpfad | String | – | Ja | Geben Sie den Pfad an, in den die Datei heruntergeladen werden soll. |
Ausführen am
Diese Aktion wird nicht für Elemente ausgeführt.
Aktionsergebnisse
Scriptergebnis
| Name des Scriptergebnisses | Wertoptionen | Beispiel |
|---|---|---|
| is_success | Wahr/falsch | is_success:False |
JSON-Ergebnis
{
"bucket_file_path": "s3://testsiemplify/test/123.txt"
"download_path": "/usr/bin/share/download.txt"
}
Fall-Repository
| Ergebnistyp | Wert / Beschreibung | Typ |
|---|---|---|
| Ausgabenachricht* | Die Aktion darf nicht fehlschlagen oder die Ausführung eines Playbooks stoppen: If status code == 200 (is_success = true) "Successfully downloaded '{0}' from AWS S3".format(bucket_file_path) Wenn anderer Statuscode (is_success=false): „Die Aktion konnte ‚{0}‘ nicht von AWS S3 herunterladen. Grund: Eine Datei mit diesem Downloadpfad ist bereits vorhanden.“ Die Aktion sollte fehlschlagen und die Ausführung eines Playbooks beenden: Bei schwerwiegenden Fehlern wie falschen Anmeldedaten, keiner Verbindung zum Server, SDK-Fehlern oder anderen: „Fehler beim Ausführen der Aktion ‚Datei aus Bucket herunterladen‘. Grund: {0}''.format(error.Stacktrace) |
Allgemein |
Bucket-Richtlinie abrufen
Rufen Sie Informationen zur Bucket-Richtlinie aus AWS S3 ab.
Parameter
| Anzeigename des Parameters | Typ | Standardwert | Ist obligatorisch | Beschreibung |
|---|---|---|---|---|
| Bucket-Name | String | – | Ja | Geben Sie den Namen des Buckets an, aus dem Richtlinieninformationen abgerufen werden sollen. |
Ausführen am
Diese Aktion wird nicht für Elemente ausgeführt.
Aktionsergebnisse
Scriptergebnis
| Name des Scriptergebnisses | Wertoptionen | Beispiel |
|---|---|---|
| is_success | Wahr/falsch | is_success:False |
JSON-Ergebnis
{
"Policy": {
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AddPerm",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::testsiemplify/*"
}
]
}
Fall-Repository
| Ergebnistyp | Wert / Beschreibung | Typ |
|---|---|---|
| Ausgabenachricht* | Die Aktion darf nicht fehlschlagen oder die Ausführung eines Playbooks stoppen: Wenn Statuscode == 200 (is_success = true) „Informationen zur Richtlinie des Buckets ‚{0}‘ in AWS S3 wurden erfolgreich abgerufen.“format(bucket_name) Wenn anderer Statuscode (is_success=false): „Die Aktion konnte keine Informationen zur Richtlinie des Buckets ‚{0}‘ in AWS S3 zurückgeben.“format(bucket_name) Die Aktion sollte fehlschlagen und die Ausführung eines Playbooks beenden: Bei schwerwiegenden Fehlern wie falschen Anmeldedaten, keiner Verbindung zum Server usw.: „Fehler beim Ausführen der Aktion ‚Bucket-Richtlinie abrufen‘. Grund: {0}''.format(error.Stacktrace) |
Allgemein |
Bucket-Objekte auflisten
Ermöglicht dem Nutzer, ein Nutzerkonto zu deaktivieren. Der Anfragetext enthält den Nutzer, der deaktiviert werden soll. Die Eigenschaft „account enabled“ des Kontos sollte auf „false“ gesetzt sein.
Parameter
| Anzeigename des Parameters | Typ | Standardwert | Ist obligatorisch | Beschreibung |
|---|---|---|---|---|
| Bucket-Name | String | – | Ja | Geben Sie den Namen des Buckets an, aus dem Objekte abgerufen werden sollen. |
| Maximale Anzahl zurückzugebender Objekte | Ganzzahl | – | Nein | Geben Sie an, wie viele Objekte zurückgegeben werden sollen. |
Ausführen am
Diese Aktion wird nicht für Elemente ausgeführt.
Aktionsergebnisse
Scriptergebnis
| Name des Scriptergebnisses | Wertoptionen | Beispiel |
|---|---|---|
| is_success | Wahr/falsch | is_success:False |
JSON-Ergebnis
"Contents": [
{
"Key": "text.txt",
"LastModified": %Y-%m-%dT%H:%M:%S,
"ETag": "d41d8cd98f00b204e9800998ecf8427e",
"Size": 0,
"StorageClass": "STANDARD",
"Owner": {
"DisplayName": "lab_aws",
"ID": "935dc3fed0e1d2c5b12242cf9927370824f2438681a2d3c0523f254dbde41aba"
}
},
{
"Key": "text_1.txt",
"LastModified": %Y-%m-%dT%H:%M:%S,
"ETag": "d41d8cd98f00b204e9800998ecf8427e",
"Size": 0,
"StorageClass": "STANDARD",
"Owner": {
"DisplayName": "lab_aws",
"ID": "935dc3fed0e1d2c5b12242cf9927370824f2438681a2d3c0523f254dbde41aba"
}
}
]
Fall-Repository
| Ergebnistyp | Wert / Beschreibung | Typ |
|---|---|---|
| Ausgabenachricht* | Die Aktion darf nicht fehlschlagen oder die Ausführung eines Playbooks stoppen: Wenn status_code == 200 (is_success = true) "Successfully returned objects of the "{0}" bucket in AWS S3".format(bucket_name) Wenn anderer Statuscode (is_success=false): „Die Aktion konnte keine Objekte des Buckets ‚{0}‘ in AWS S3 zurückgeben.“format(bucket_name) Die Aktion sollte fehlschlagen und die Ausführung eines Playbooks beenden: Bei schwerwiegenden Fehlern, z. B. falsche Anmeldedaten, keine Verbindung zum Server, Sonstiges: „Fehler beim Ausführen der Aktion ‚Bucket-Objekte auflisten‘. Grund: {0}''.format(error.Stacktrace) |
Allgemein |
| Tabelle „Fall-Repository“ | Tabellenname:Bucket-Objekte „{0}“ Spalten:
|
Allgemein |
Buckets auflisten
Eine Liste von Buckets aus AWS S3 abrufen.
Ausführen am
Diese Aktion wird nicht für Elemente ausgeführt.
Aktionsergebnisse
Scriptergebnis
| Name des Scriptergebnisses | Wertoptionen | Beispiel |
|---|---|---|
| is_success | Wahr/falsch | is_success:False |
JSON-Ergebnis
{
"Buckets": [
{
"CreationDate": %Y-%m-%dT%H:%M:%S,
"Name": "testsiemplify"
}
],
"Owner": {
"DisplayName": "lab_aws",
"ID": "935dc3fed0e1d2c5b12242cf9927370824f2438681a2d3c0523f254dbde41aba"
},
Fall-Repository
| Ergebnistyp | Wert / Beschreibung | Typ |
|---|---|---|
| Ausgabenachricht* | Die Aktion darf nicht fehlschlagen oder die Ausführung eines Playbooks stoppen: Wenn Statuscode == 200 (is_success = true) „Verfügbare Buckets in AWS S3 wurden erfolgreich aufgelistet“. Wenn anderer Statuscode (is_success=false): „Die Aktion konnte keine verfügbaren Buckets in AWS S3 auflisten. Die Aktion sollte fehlschlagen und die Ausführung eines Playbooks beenden: Bei schwerwiegenden Fehlern wie falschen Anmeldedaten, fehlender Verbindung zum Server oder anderen: „Fehler beim Ausführen der Aktion ‚List Buckets‘. Grund: {0}''.format(error.Stacktrace) |
Allgemein |
Ping
Testen Sie die Verbindung zu AWS S3 mit den Parametern, die auf der Seite mit der Integrationskonfiguration auf dem Tab „Google Security Operations Marketplace“ angegeben sind.
Anwendungsfälle
Verbindung testen
Ausführen am
Diese Aktion wird nicht für Elemente ausgeführt.
Aktionsergebnisse
Scriptergebnis
| Name des Scriptergebnisses | Wertoptionen | Beispiel |
|---|---|---|
| is_success | Wahr/falsch | is_success:False |
Fall-Repository
| Ergebnistyp | Wert / Beschreibung | Typ |
|---|---|---|
| Ausgabenachricht* | Die Aktion darf nicht fehlschlagen oder die Ausführung eines Playbooks stoppen: Bei Erfolg: „Die Verbindung zum AWS S3-Server wurde mit den angegebenen Verbindungsparametern hergestellt.“ Die Aktion sollte fehlschlagen und die Ausführung eines Playbooks beenden: Wenn das nicht funktioniert: „Verbindung zum AWS S3-Server konnte nicht hergestellt werden. Fehler: {0}".format(exception.stacktrace) |
Allgemein |
Bucket-Richtlinie festlegen
Legen Sie eine Richtlinie im Bucket von AWS S3 fest.
Parameter
| Anzeigename des Parameters | Typ | Standardwert | Ist obligatorisch | Beschreibung |
|---|---|---|---|---|
| Bucket-Name | String | – | Ja | Geben Sie den Namen des Buckets an, für den Sie die Richtlinie aktualisieren möchten. |
| Richtlinien-JSON-Objekt | String | – | Ja | Geben Sie das JSON-Objekt der Richtlinie an, die Sie für den Bucket festlegen möchten. Beispiele finden Sie hier: https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html. |
Ausführen am
Diese Aktion wird nicht für Elemente ausgeführt.
Aktionsergebnisse
Scriptergebnis
| Name des Scriptergebnisses | Wertoptionen | Beispiel |
|---|---|---|
| is_success | Wahr/falsch | is_success:False |
JSON-Ergebnis
bucket_policy = {
'Version': '2012-10-17',
'Statement': [{
'Sid': 'AddPerm',
'Effect': 'Allow',
'Principal': '*',
'Action': ['s3:GetObject'],
'Resource': f'arn:aws:s3:::{bucket_name}/*'
}]
}
Fall-Repository
| Ergebnistyp | Wert / Beschreibung | Typ |
|---|---|---|
| Ausgabenachricht* | Die Aktion darf nicht fehlschlagen oder die Ausführung eines Playbooks stoppen: Wenn Statuscode == 204 (is_success = true) „Die Richtlinie des Buckets {0} in AWS S3 wurde erfolgreich aktualisiert.“format(bucket_name) Wenn anderer Statuscode (is_success=false): „Action wasn't able to update the policy of the '{0}' bucket in AWS S3“.format(bucket_name) Die Aktion sollte fehlschlagen und die Ausführung eines Playbooks beenden: Bei schwerwiegenden Fehlern wie falschen Anmeldedaten, fehlender Verbindung zum Server usw.: „Fehler beim Ausführen der Aktion ‚Bucket-Richtlinie festlegen‘. Grund: {0}''.format(error.Stacktrace) |
Datei in Bucket hochladen
Laden Sie die Datei in einen Bucket in AWS S3 hoch.
Parameter
| Anzeigename des Parameters | Typ | Standardwert | Ist obligatorisch | Beschreibung |
|---|---|---|---|---|
| Dateipfad | String | – | Ja | Geben Sie den Pfad zur Datei an, die hochgeladen werden muss. |
| Bucket-Uploadpfad | String | s3://{bucket_name}/{file_name} | Ja | Geben Sie den Pfad im Bucket an, in den der Pfad hochgeladen werden soll. Beispiel: s3://siemplify/syslog/log.txt |
Ausführen am
Diese Aktion wird nicht für Elemente ausgeführt.
Aktionsergebnisse
Scriptergebnis
| Name des Scriptergebnisses | Wertoptionen | Beispiel |
|---|---|---|
| is_success | Wahr/falsch | is_success:False |
JSON-Ergebnis
{
"bucket_upload_path": "s3://testsiemplify/test/123.txt"
"file_path": "/usr/bin/share/download.txt"
}
Fall-Repository
| Ergebnistyp | Wert / Beschreibung | Typ |
|---|---|---|
| Ausgabenachricht* | Die Aktion darf nicht fehlschlagen oder die Ausführung eines Playbooks stoppen: Wenn Statuscode == 200 (is_success = true) „{0} wurde erfolgreich in den AWS S3-Bucket {1} hochgeladen“.format(file_path, bucket name aka first string after s3://) Wenn die Datei nicht vorhanden ist (is_success = false) „Die Aktion konnte ‚{0}‘ nicht in AWS S3 hochladen. Grund: Datei mit diesem Uploadpfad ist nicht vorhanden.“ Die Aktion sollte fehlschlagen und die Ausführung eines Playbooks beenden: Bei schwerwiegenden Fehlern wie falschen Anmeldedaten, fehlender Verbindung zum Server, SDK-Fehlern usw.: „Fehler beim Ausführen der Aktion ‚Datei in Bucket hochladen‘. Grund: {0}''.format(error.Stacktrace) |
Allgemein |
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten