AWS S3 in Google SecOps einbinden

In diesem Dokument wird beschrieben, wie Sie AWS S3 in Google Security Operations einbinden.

Anwendungsfälle

  1. Buckets verwalten
  2. Dateien aus Buckets herunterladen
  3. 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:

  1. Prüfen Sie die direkte Sichtverbindung zwischen Google SecOps und den regionalen Dienstendpunkten von AWS S3.

  2. Rufen Sie AWS-Anmeldedaten für die programmatische API (eine Zugriffsschlüssel-ID und einen geheimen Zugriffsschlüssel) mit den entsprechenden IAM-Berechtigungen ab.

  3. 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.com oder s3.amazonaws.com) über Port 443/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:

  • Schlüssel (als „Key“ zugeordnet)
  • Letzte Änderung (als „LastModified“ zugeordnet)
  • Größe (Byte) (als „Größe“ zugeordnet)
  • Eigentümer (als „Owner/DisplayName“ zugeordnet)
  • Speicherklasse (als „Speicherklasse“ zugeordnet)
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