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 Netzwerkverbindung zwischen Google SecOps und den regionalen AWS S3-Dienstendpunkten.
Rufen Sie AWS-API-Anmeldedaten (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-Dienstendpunkte.
Proxy-Konfiguration: Wenn Ihre Organisation ausgehenden Traffic über einen HTTP/HTTPS-Proxy weiterleitet, konfigurieren Sie Standard-Proxy-Variablen für die Umgebung (
HTTP_PROXY,HTTPS_PROXY,NO_PROXY) auf dem Google SecOps-Server oder 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: Rufen Sie eine gültige AWS-Zugriffsschlüssel-ID und einen geheimen AWS-Schlüssel ab, die mit einem AWS-IAM-Nutzer oder einer AWS-IAM-Rolle verknüpft 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 die Berechtigungen auf die Aktionen und Bucket-Ressourcen, die für Ihre automatisierten Workflows erforderlich sind, und rotieren Sie die Anmeldedaten regelmäßig.
Weitere Informationen zu Sicherheitsempfehlungen finden Sie in der AWS-Dokumentation unter Best Practices für die Sicherheit in IAM.
Aktionsberechtigungen konfigurieren
Gewähren Sie der authentifizierenden AWS-IAM-Identität die spezifischen Berechtigungen, die für die Aktionen erforderlich sind, die Ihre Google SecOps-Playbooks ausführen.
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 |
– | Validiert die Integrationsverbindung. 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 für die Integration verwendet werden soll. |
| AWS Secret Key | Passwort | – | Ja | AWS-Secret-Key, der in der Integration verwendet werden soll. |
| AWS-Standardregion | String | – | Ja | AWS-Standardregion, die in der Integration verwendet werden soll, z. B. us-west-2. |
| Remote ausführen | Kästchen | Deaktiviert | Nein | Setzen Sie ein Häkchen, um die konfigurierte Integration remote auszuführen. Nachdem Sie das Häkchen gesetzt haben, wird die Option zum Auswählen des Remote-Nutzers (Agenten) angezeigt. |
Eine Anleitung zum Konfigurieren einer Integration in Google SecOps finden Sie unter Integrationen konfigurieren.
Sie können später bei Bedarf Ä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 Auf ausstehende Aktionen im Workdesk reagieren und Manuelle Aktion in einem Fall ausführen.
Datei aus Bucket herunterladen
Datei aus einem Bucket in AWS S3 herunterladen.
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, unter dem die Datei heruntergeladen werden soll. |
Ausführen am
Diese Aktion wird nicht für Entitäten ausgeführt.
Aktionsergebnisse
Scriptergebnis
| Name des Skriptergebnisses | 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 sollte 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) Bei einem anderen 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 des Playbooks beenden: Bei schwerwiegenden Fehlern, z. B. falschen Anmeldedaten, fehlender Verbindung zum Server, SDK-Fehlern oder anderen Fehlern: „Fehler beim Ausführen der Aktion ‚Datei aus Bucket herunterladen‘. Reason: {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 Entitäten ausgeführt.
Aktionsergebnisse
Scriptergebnis
| Name des Skriptergebnisses | 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 sollte die Ausführung eines Playbooks weder fehlschlagen lassen noch stoppen: If status code == 200 (is_success = true) "Successfully retrieved information about the policy of the "{0}" bucket in AWS S3".format(bucket_name) Bei einem anderen Statuscode (is_success=false): „Action wasn't able to return information about the policy of the '{0}' bucket in AWS S3“.format(bucket_name) Die Aktion sollte fehlschlagen und die Ausführung des Playbooks beenden: Bei einem schwerwiegenden Fehler, z. B. falsche Anmeldedaten, keine Verbindung zum Server, Sonstiges: „Fehler beim Ausführen der Aktion ‚Bucket-Richtlinie abrufen‘. Reason: {0}''.format(error.Stacktrace) |
Allgemein |
Bucket-Objekte auflisten
Ermöglicht dem Nutzer, ein Nutzerkonto zu deaktivieren. Der Anfragetext enthält den zu deaktivierenden Nutzer. Die Eigenschaft „accountEnabled“ 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 Entitäten ausgeführt.
Aktionsergebnisse
Scriptergebnis
| Name des Skriptergebnisses | 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 sollte nicht fehlschlagen oder die Ausführung eines Playbooks stoppen: Wenn Statuscode == 200 (is_success = true) „Successfully returned objects of the "{0}" bucket in AWS S3“.format(bucket_name) Bei einem anderen Statuscode (is_success=false): „Action wasn't able to return objects of the '{0}' bucket in AWS S3“.format(bucket_name) Die Aktion sollte fehlschlagen und die Ausführung des Playbooks beenden: Bei schwerwiegendem Fehler, z. B. falsche Anmeldedaten, keine Verbindung zum Server, Sonstiges: „Fehler beim Ausführen der Aktion ‚Bucket-Objekte auflisten‘. Reason: {0}''.format(error.Stacktrace) |
Allgemein |
| Tabelle mit Fall-Repository | Tabellenname: Bucket-Objekte „{0}“ Spalten:
|
Allgemein |
Buckets auflisten
Eine Liste der Buckets aus AWS S3 abrufen.
Ausführen am
Diese Aktion wird nicht für Entitäten ausgeführt.
Aktionsergebnisse
Scriptergebnis
| Name des Skriptergebnisses | 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 sollte nicht fehlschlagen oder die Ausführung eines Playbooks stoppen: If Statuscode == 200 (is_success = true) „Successfully listed available buckets in AWS S3“. Bei anderem Statuscode (is_success=false): „Die Aktion konnte die verfügbaren Buckets in AWS S3 nicht auflisten. Die Aktion sollte fehlschlagen und die Ausführung des Playbooks beenden: Bei schwerwiegendem Fehler, z. B. falsche Anmeldedaten, keine Verbindung zum Server, Sonstiges: „Fehler beim Ausführen der Aktion ‚Buckets auflisten‘. Reason: {0}''.format(error.Stacktrace) |
Allgemein |
Ping
Testen Sie die Verbindung zu AWS S3 mit den Parametern, die auf der Seite für die Integrationskonfiguration im Google SecOps Content Hub angegeben sind.
Anwendungsfälle
Verbindung testen
Ausführen am
Diese Aktion wird nicht für Entitäten ausgeführt.
Aktionsergebnisse
Scriptergebnis
| Name des Skriptergebnisses | Wertoptionen | Beispiel |
|---|---|---|
| is_success | Wahr/falsch | is_success:False |
Fall-Repository
| Ergebnistyp | Wert/Beschreibung | Typ |
|---|---|---|
| Ausgabenachricht* | Die Aktion sollte die Ausführung eines Playbooks weder fehlschlagen lassen noch stoppen: Wenn der Vorgang erfolgreich war: „Verbindung zum AWS S3-Server mit den angegebenen Verbindungsparametern erfolgreich hergestellt.“ Die Aktion sollte fehlschlagen und die Ausführung des Playbooks beenden: Wenn die Zahlung nicht erfolgreich ist: „Verbindung zum AWS S3-Server konnte nicht hergestellt werden! Error is {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 Entitäten ausgeführt.
Aktionsergebnisse
Scriptergebnis
| Name des Skriptergebnisses | 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 sollte nicht fehlschlagen oder die Ausführung eines Playbooks stoppen: If status code == 204 (is_success = true) "Successfully updated policy of the "{0}" bucket in AWS S3".format(bucket_name) Wenn ein 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 des Playbooks beenden: Bei schwerwiegendem Fehler, z. B. falsche Anmeldedaten, keine Verbindung zum Server, Sonstiges: „Fehler beim Ausführen der Aktion ‚Bucket-Richtlinie festlegen‘. Reason: {0}''.format(error.Stacktrace) |
Datei in Bucket hochladen
Laden Sie die Datei in den 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 soll. |
| Bucket-Upload-Pfad | 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 Entitäten ausgeführt.
Aktionsergebnisse
Scriptergebnis
| Name des Skriptergebnisses | 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 sollte die Ausführung eines Playbooks weder fehlschlagen lassen noch stoppen: Wenn Statuscode == 200 (is_success = true) „Successfully uploaded '{0}' to AWS S3 {1} bucket“.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 des Playbooks beenden: Bei schwerwiegenden Fehlern, z. B. falschen Anmeldedaten, fehlender Verbindung zum Server, SDK-Fehlern oder anderen Fehlern: „Fehler beim Ausführen der Aktion ‚Datei in Bucket hochladen‘. Reason: {0}''.format(error.Stacktrace) |
Allgemein |
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten