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 Netzwerkverbindung zwischen Google SecOps und den regionalen AWS S3-Dienstendpunkten.

  2. Rufen Sie AWS-API-Anmeldedaten (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-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:

  • Schlüssel (als Schlüssel zugeordnet)
  • Last Modified (zugeordnet als LastModified)
  • Größe (Byte) (zugeordnet als „Größe“)
  • Inhaber (zugeordnet als Owner/DisplayName)
  • Speicherklasse (zugeordnet als Speicherklasse)
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