Ansichten:

Erfahren Sie, wie Sie Ihr AWS-Konto mit Cloud-Konten verbinden, wenn Sie die Stack-Vorlage nicht verwenden können.

Einige AWS-Konten erlauben nicht die Verwendung von Stack-Vorlagen, um Ressourcen innerhalb der Cloud-Umgebung bereitzustellen. Dies liegt in der Regel an Sicherheitsrichtlinien, die die automatische Erstellung von IAM-Richtlinien und -Rollen verhindern, die vom Bereitstellungsskripts innerhalb der Stack-Vorlage benötigt werden.
Um ein AWS-Konto manuell zu verbinden, nutzen Sie die API-Ressourcen im Automation Center. Die Bereitstellung mit dieser Methode ermöglicht die folgenden Funktionen und Berechtigungen:
  • Core Features and Cyber Risk Exposure Management: Der Kernsatz von Funktionen und Berechtigungen erforderlich, um Ihr AWS-Konto zu verbinden.
  • Container Protection for Amazon ECS (optional): Dieses Funktionsset ermöglicht es Container Security, eine Verbindung zu Ihrem AWS-Konto herzustellen und Komponenten bereitzustellen, um Ihre Container und Container-Images in Elastic Container Service (ECS)-Umgebungen zu schützen.
Wichtig
Wichtig
  • Die dem Benutzer zugewiesene Rolle zur Nutzung der TrendAI Vision One™-APIs muss über vollständige Berechtigungen zum Hinzufügen, Löschen und Bearbeiten von Cloud-Konten verfügen. Weitere Informationen zu Benutzerrollen finden Sie unter Benutzerrollen.
  • Die Schritte sind gültig für die AWS Console ab Februar 2026.

Schritt 1: Erstellen und Herunterladen der Stapelvorlage

Generieren Sie eine Stack-Vorlage entweder über die TrendAI Vision One™-Konsole oder durch Aufrufen einer API.

Prozedur

  1. Generieren und herunterladen der Stack-Vorlage:
    • Greifen Sie auf die TrendAI Vision One™-Konsole zu und erstellen Sie die Vorlage.
      1. Navigieren Sie in der TrendAI Vision One™ Konsole zu Cloud SecurityCloud AccountsAWS
      2. Klicken Sie auf Konto hinzufügen.
      3. Wählen Sie im Fenster Deployment Type CloudFormation und Single AWS Account aus.
      4. Klicken Sie auf Weiter.
      5. Geben Sie Account name, Beschreibung an und wählen Sie die AWS-Region für die Bereitstellung aus.
      6. Wenn Sie mehr als eine Server- & Workload-Protection-Manager-Instanz haben, wählen Sie die Instanz aus, die mit dem verbundenen Konto verknüpft werden soll, und klicken Sie auf Weiter.
      7. Klicken Sie auf Weiter, ohne das Fenster Features and Permissions zu konfigurieren.
      8. Klicken Sie auf Download and Review Template.
      Hinweis
      Hinweis
      Die Felder Name des Kontos und Beschreibung werden nicht in die Überprüfungsvorlage exportiert. Sie können diese Parameter beim Aufruf der Add AWS account API angeben.
    • Rufen Sie eine API auf, um die Vorlage abzurufen.
      1. Suchen Sie die Generate AWS CloudFormation template-API im Automatisierungszentrum.
      2. Wechseln Sie in die query_params-Zeichenfolgen.
      3. Geben Sie für awsRegion die AWS-Region an, in der Sie die Stack-Vorlage und die Kernfunktionen bereitstellen möchten. Die Standardregion basiert auf Ihrer TrendAI Vision One™-Region.
      4. Für features und featureAwsREgions lassen Sie die Parameter leer.
      5. Speichern Sie Ihre Änderungen und rufen Sie die API auf.
        Die API gibt Folgendes zurück:
        • templateUrl: Die URL zum Herunterladen der Vorlage.
        • visionOneOidcProviderUrl: Ein erforderlicher Parameter für die Bereitstellung der Vorlage.
        • createStackUrl: URL der AWS CloudFormation-Konsole, die auf die CloudFormation-Vorlage von TrendAI Vision One™ verweist.
      6. Vorlage herunterladen.

Schritt 2: Fügen Sie TrendAI Vision One™ als Identitätsanbieter hinzu

Verwenden Sie den Identity and Access Management (IAM)-Dienst in der AWS-Konsole, um TrendAI Vision One™ Zugriff auf Ihr AWS-Konto zu gewähren.
  1. Zugriff auf die AWS-Konsole.
  2. Fügen Sie TrendAI Vision One™ als Identitätsanbieter hinzu.
    1. Öffnen Sie im AWS-Console den Dienst Identity and Access Management (IAM).
    2. Navigieren Sie zu Access managementIdentity providers.
    3. Klicken Sie auf Add provider.
      Das Fenster Add an Identity provider screen wird angezeigt.
    4. Im Abschnitt Configure provider wählen Sie OpenID Connect aus.
    5. Für die Anbieter-URL geben Sie Provider URL ein oder fügen Sie sie ein.
      • Wenn Sie die API verwendet haben, um die Vorlage aufzurufen, kopieren und fügen Sie den Parameter visionOneOidcProviderUrl ein, den die API zurückgegeben hat.
      • Wenn Sie die Vorlage heruntergeladen haben, geben Sie cloudaccounts-{region}.xdr.trendmicro.com ein, wobei {region} Ihre TrendAI Vision One™-Region ist (us, eu, au, sg, in, oder jp)
        Zum Beispiel, wenn Ihre TrendAI Vision One™ Region die USA ist, ist Ihre visionOneOidcProviderUrl cloudaccounts-us.xdr.trendmicro.com
    6. Für Zielgruppe geben Sie arn:aws:iam::${AWSAccountId}:root ein.
      Ersetzen Sie ${AWSAccountId} durch Ihre AWS-Konto-ID.
      CAM-AWSManual_Provider=GUID-06b9b214-6b7f-44b0-be1f-886d95805770.png
    7. Klicken Sie auf Get thumbprint.
    8. Klicken Sie auf Add provider.
      Der Anbieter wird zur Identity providers-Liste hinzugefügt.
    9. Klicken Sie auf den Namen des Anbieters, den Sie erstellt haben.
      Der Bildschirm mit den Anbieterdetails öffnet sich.
    10. Kopieren Sie die Anbieter-ARN, um sie in einem späteren Schritt bei der Erstellung der Rolle zu verwenden.
    11. Suchen Sie den Abschnitt Thumbprints und klicken Sie auf Manage.
    12. Löschen Sie den beim Erstellen des Anbieters generierten Fingerabdruck und fügen Sie die folgenden Fingerabdrücke ein.
      Klicken Sie auf Add thumbprint, um jede neue Zeile hinzuzufügen.
      • 9e99a48a9960b14926bb7f3b02e22da2b0ab7280
      • 9565AD13689C2C4B4F018BE31767084D197F2692
      • 8CF427FD790C3AD166068DE81E57EFBB932272D4
      • F21C12F46CDB6B2E16F09F9419CDFF328437B2D7
      CAM-AWSManual_Thumbprint=GUID-f74acdc4-fa0c-4439-aadd-267a117fbb20.png
    13. Klicken Sie auf Änderungen speichern.

Schritt 3: Fügen Sie die TrendAI Vision One™-Richtlinien hinzu

Fügen Sie TrendAI Vision One™-Richtlinien zum Identity and Access Management (IAM)-Dienst hinzu, um Zugriffsberechtigungen festzulegen. Um die Richtlinien anzuzeigen und zu kopieren, siehe AWS-Richtlinien im JSON-Format.
Wichtig
Wichtig
Stellen Sie bei jeder Richtlinie sicher, dass die zweite Zeile des Codes "Version": "2012-10-17" beibehalten wird. Das Löschen der Zeile könnte dazu führen, dass die Richtlinie nicht korrekt funktioniert.

Prozedur

  1. Gehen Sie im Identity and Access Management-Dienst zu Access managementRichtlinien.
  2. Erstellen Sie die VisionOnePolicyPart1-Richtlinie:
    1. Klicken Sie auf Create policy.
    2. Für Policy editor wählen Sie JSON.
    3. Kopieren und ersetzen Sie den Statement-Parameter mit demselben Parameter aus VisionOnePolicyPart1 in Ihrer heruntergeladenen Vorlagendatei.
      Sie können auch auf diesen Link klicken, um den JSON-Code direkt anzuzeigen und zu kopieren.
    4. Klicken Sie auf Weiter.
    5. Für Richtlinienname geben Sie VisionOnePolicyPart1 ein.
    6. Klicken Sie auf Create policy.
      Die Richtlinie VisionOnePolicyPart1 wird erstellt und der Bildschirm Richtlinien erscheint.
  3. Erstellen Sie die VisionOnePolicyPart2-Richtlinie:
    1. Klicken Sie auf Create policy.
    2. Für Policy editor wählen Sie JSON.
      Sie können auch diesen Link anklicken, um den JSON-Code direkt anzuzeigen und zu kopieren.
    3. Klicken Sie auf Weiter.
    4. Für Richtlinienname geben Sie VisionOnePolicyPart2 ein.
    5. Klicken Sie auf Create policy.
      Die Richtlinie VisionOnePolicyPart2 wird erstellt und der Bildschirm Richtlinien erscheint.
  4. Erstellen Sie die VisionOnePolicyPart3-Richtlinie:
    1. Klicken Sie auf Create policy.
    2. Für Policy editor wählen Sie JSON.
      Sie können auch auf diesen Link klicken, um den JSON-Code direkt anzuzeigen und zu kopieren.
    3. Klicken Sie auf Weiter.
    4. Für Richtlinienname geben Sie VisionOnePolicyPart3 ein.
    5. Klicken Sie auf Create policy.
      Die VisionOnePolicyPart3-Richtlinie wird erstellt und der Richtlinien-Bildschirm erscheint.
  5. Erstellen Sie die VisionOneFeaturesPolicy-Richtlinie:
    1. Klicken Sie auf Create policy.
    2. Für Policy editor wählen Sie JSON.
      Sie können auch auf diesen Link klicken, um den JSON-Code direkt anzusehen und zu kopieren.
      Wichtig
      Wichtig
      Sie müssen alle Platzhalterinstanzen von <AWS-Account-ID> durch Ihre AWS-Konto-ID ersetzen.
    3. Klicken Sie auf Weiter.
    4. Für Richtlinienname geben Sie VisionOneFeaturesPolicy ein.
    5. Klicken Sie auf Create policy.
      Die VisionOneFeaturesPolicy-Richtlinie wird erstellt und der Richtlinien-Bildschirm erscheint.

Schritt 4: Container Security mit Terraform bereitstellen (optional)

In diesem optionalen Schritt verwenden Sie Terraform, um Container Security in Ihrem AWS-Konto bereitzustellen, um Ihre Amazon ECS-Container und Container-Images zu schützen.
Diese Methode ermöglicht es Ihnen, Container Security auf Ihrem AWS-Konto zu aktivieren, ohne auf die TrendAI Vision One™-Konsole zugreifen zu müssen. Wenn Sie sich entscheiden, Container Security nicht mit Terraform zu aktivieren, können Sie es auf dem AWS-Konto in TrendAI Vision One™ aktivieren, nachdem das Konto verbunden wurde. Weitere Informationen finden Sie unter Schützen Sie Amazon ECS-Cluster mit einem bestehenden AWS-Konto.

Prozedur

  1. Zugriff auf die AWS-Konsole.
  2. Laden Sie das Vorlagenpaket mit dem folgenden Befehl in Ihre Umgebung herunter:
    curl https://vcs-cloudaccounts-us-east-1-484917860638.s3.us-east-1.amazonaws.com/templates/aws/terraform/ContainerSecurityEcsTemplate.zip --output container-security-ecs-template.zip
  3. Extrahieren Sie die Vorlage mit folgendem Befehl:
    unzip -o container-security-terraform-package.zip -d container-security-terraform-package
    Hinweis
    Hinweis
    Sie müssen die Berechtigung haben, Dateien in Ihrer Umgebung zu entpacken.
  4. Greifen Sie mit folgendem Befehl auf den extrahierten Ordner zu:
    cd container-security-terraform-package
  5. Kopieren Sie die terraform.tfvars.example nach terraform.tfvars mit dem folgenden Befehl:
    cp terraform.tfvars.example terraform.tfvars
  6. Ändern Sie die Variablen in der terraform.tfvars-Datei basierend auf Ihrer gewünschten Konfiguration:
    1. Setzen Sie vision_one_endpoint_parameter_value so, dass es mit Ihrer TrendAI Vision One™-Region übereinstimmt, indem Sie die folgenden Endpunktwerte verwenden:
    2. Aus der CloudFormation-Vorlage, die Sie in Schritt 1 heruntergeladen haben, finden Sie das VisionOneBootstrapToken und kopieren Sie dessen Wert in die vision_one_bootstrap_token-Variable in Ihrer terraform.tfvars-Datei.
    3. Setzen Sie die anderen Variablen nach Bedarf. Verwenden Sie beispielsweise stackset_regions, um alle AWS-Regionen anzugeben, in denen Container Security installiert werden soll, oder verwenden Sie common_tags, um benutzerdefinierte Tags für alle Ressourcen festzulegen.
  7. Verwenden Sie die folgenden Befehle, um die Terraform-Vorlage bereitzustellen:
    terraform init
    terraform plan
    terraform apply
    Hinweis
    Hinweis
    Sie müssen Terraform installiert haben, um diesen Schritt abzuschließen.

Schritt 5: Fügen Sie die TrendAI Vision One™-Rolle hinzu

  1. Fügen Sie die TrendAI Vision One™-Rolle hinzu.
    1. Gehen Sie im Identity and Access Management-Dienst zu Access managementRollen.
    2. Klicken Sie auf Create role.
    3. Für Trusted entity type wählen Sie Custom trust policy.
      The Custom trust policy JSON editor appears.
    4. Ersetzen Sie den Platzhaltercode durch den folgenden JSON-Code:
      {
        "Version": "2012-10-17",
        "Statement": [
          {
            "Effect": "Allow",
            "Principal": {
              "Federated": "${visionOneOIDCProvider}"
            },
            "Action": [
              "sts:AssumeRoleWithWebIdentity",
              "sts:SetSourceIdentity"
            ],
            "Condition": {
              "StringEquals": {
                "${visionOneOIDCProviderURL}:aud": "arn:aws:iam::${AWSAccountId}:root",
                "${visionOneOIDCProviderURL}:sub": [
                  "urn:visionone:identity:${visionOneRegion}:${visionOneAccountID}:account/${visionOneAccountID}"
                ]
              }
            }
          }
        ]
      }
    5. Ersetzen Sie die Zeichenfolgen für die folgenden Parameter:
      Parameter
      Beschreibung
      Beispiel
      "Föderiert"
      Ersetzen Sie "${visionOneOIDCProvider}" durch die Anbieter-ARN für den Anbieter, den Sie in Schritt 2: Fügen Sie TrendAI Vision One™ als Identitätsanbieter hinzu erstellt haben.
      Zum Beispiel, wenn Ihre TrendAI Vision One™ Region die USA ist, folgt die ARN dem Format "arn:aws:iam::1xxxxxxxxxx1:oidc-provider/cloudaccounts-us.xdr.trendmicro.com"
      "StringEquals"
      Ersetzen Sie beide Instanzen von "${visionOneOIDCProviderURL}" durch den Wert, den Sie bei der Erstellung des Anbieters in Schritt 2: Fügen Sie TrendAI Vision One™ als Identitätsanbieter hinzu verwendet haben.
      Wenn Ihre TrendAI Vision One™-Region beispielsweise die USA ist, verwenden Sie cloudaccounts-us.xdr.trendmicro.com
      Ersetzen Sie in der Zeichenfolge "arn:aws:iam::${AWSAccountID}:root" ${AWS::AccountID} durch Ihre AWS-Konto-ID.
      Der String sollte dem Format "arn:aws:iam::1xxxxxxxxxx1:root" folgen
      Im String, der mit "urn:visionone:identity:..." beginnt, ersetzen Sie die folgenden Parameter:
      • ${visionOneRegion}: Ihre TrendAI Vision One™-Region (us, eu, au, sg, in, oder jp)
      • ${visionOneAccountID} Ihre TrendAI Vision One™ Geschäfts-ID. Stellen Sie sicher, dass Sie beide Instanzen ersetzen.
      Wenn Ihre TrendAI Vision One™-Region die USA ist, sieht die Zeichenfolge wie folgt aus: "urn:visionone:identity:us:1#####1:account/1#####1"
    6. Klicken Sie auf Weiter.
    7. Auf dem Add permissions-Bildschirm suchen Sie nach den von Ihnen erstellten Richtlinien und wählen Sie alle aus.
    8. Klicken Sie auf Weiter.
    9. Geben Sie auf dem Bildschirm Name, review, and create VisionOneRole für die Role name ein.
    10. Unter Step 3: Add tags die folgenden Tags hinzufügen.
      Schlüssel
      Wert
      VisionOneFunktionen
      Geben Sie einen der folgenden Werte ein:
      VisionOneCloudFormationStackName
      Vision-One-Cloud-Kontoverwaltung
      VisionOneCloudFormationStackRegion
      Geben Sie die AWS-Region ein, in der Sie die Ressourcen bereitstellen möchten. Zum Beispiel us-east-1.
    11. Klicken Sie auf Create role.
    12. Sobald die Erstellung abgeschlossen ist, klicken Sie auf den Rollennamen für die Rolle, die Sie erstellt haben.
    13. In der Rollendetailansicht kopieren Sie die ARN, um sie in einem späteren Schritt mit der Add AWS account API zu verwenden.
In diesem letzten Schritt geben Sie Parameterwerte an und rufen die Add AWS account-API auf, um Ihr AWS-Konto mit TrendAI Vision One™ zu verbinden.

Prozedur

  1. Greifen Sie über das Automation Center auf die API zu oder kopieren Sie den folgenden Code zur Anpassung:
    import json
    import requests
    
    BASE_URL = "https://api.xdr.trendmicro.com" # Modify this to the correct endpoint for your region following https://automation.trendmicro.com/xdr/Guides/Regional-domains/
    ACCOUNTS_PATH = "/beta/xdr/cam/awsAccounts"
    TOKEN = "API Keys"
    
    # Required inputs
    ROLE_ARN = "YOUR_ROLEARN"          # e.g. arn:aws:iam::123456789012:role/VisionOneRole
    ACCOUNT_NAME = "YOUR_ACCOUNT_NAME" # Display name in Cloud Accounts
    DESCRIPTION = "YOUR_DESCRIPTION"   # Optional description
    
    # Features: # Leave empty to skip features will not enable any
    # Example structure
    # FEATURES = [
    #     {
    #         "id": "container-security",
    #         "regions": ["us-east-1"]
    #     }
    # ]
    FEATURES = []  # Leave empty to skip features (will not enable V1CS)
    
    # Optional connected security services (example placeholder)
    # CONNECTED_SECURITY_SERVICES = [
    #     {
    #         "name": "workload",
    #         "instanceIds": ["INSTANCE_ID_1"]
    #     }
    # ]
    CONNECTED_SECURITY_SERVICES = []
    
    # Server Workload Protection settings
    # User can enable any AWS commercial region listed in https://docs.aws.amazon.com/general/latest/gr/rande.html
    # (the US GovCloud regions in that list are not supported).
    # Example structure (must match the regions you enable for the workload service):
    # SERVER_WORKLOAD_PROTECTION_REGIONS = ["us-east-1", "eu-west-1"]
    SERVER_WORKLOAD_PROTECTION_REGIONS = []  # Required when enabling Workload Security via workload service
    
    # Timeouts / settings
    REQUEST_TIMEOUT = 30
    
    headers = {
        "Authorization": f"Bearer {TOKEN}",
        "Content-Type": "application/json;charset=utf-8",
    }
    
    # Base body (mirrors original script structure)
    body = {
        "roleArn": ROLE_ARN,
        "name": ACCOUNT_NAME,
        "description": DESCRIPTION,
    }
    
    if FEATURES:
        body["features"] = FEATURES
    
    if CONNECTED_SECURITY_SERVICES:
        body["connectedSecurityServices"] = CONNECTED_SECURITY_SERVICES
    
    
    def workload_service_selected(services):
        """Return True when workload service is present with at least one instance ID."""
        for service in services:
            service_name = str(service.get("name", "")).strip().lower()
            instance_ids = service.get("instanceIds") or service.get("InstanceIDs")
            if service_name == "workload" and instance_ids:
                return True
        return False
    
    workload_selected = workload_service_selected(CONNECTED_SECURITY_SERVICES)
    
    if SERVER_WORKLOAD_PROTECTION_REGIONS:
        if not workload_selected:
            raise SystemExit(
                "SERVER_WORKLOAD_PROTECTION_REGIONS can only be specified when the workload connected security service is provided."
            )
        body["serverWorkloadProtectionRegions"] = SERVER_WORKLOAD_PROTECTION_REGIONS
    elif workload_selected:
        raise SystemExit(
            "SERVER_WORKLOAD_PROTECTION_REGIONS must include at least one AWS region when Workload Security features are enabled."
        )
    
    def list_accounts():
        """Return list of existing AWS accounts or None if request fails."""
        try:
            resp = requests.get(f"{BASE_URL}{ACCOUNTS_PATH}", headers=headers, timeout=REQUEST_TIMEOUT)
            if resp.status_code // 100 == 2:
                data = resp.json()
                if isinstance(data, dict) and "items" in data:
                    return data.get("items", [])
                if isinstance(data, list):
                    return data
            return None
        except Exception:
            return None
    
    def find_existing(accounts, role_arn, name):
        """Find existing account by roleArn or name; returns account dict or None."""
        if not accounts:
            return None
        for acct in accounts:
            if acct.get("roleArn") == role_arn or acct.get("name") == name:
                return acct
        return None
    
    def _print_request(method: str, url: str, payload: dict):
        """Standardized pre-request logging to mimic legacy verbose output."""
        print(f"Request URL: {url}")
        print(f"Request Headers: {headers}")
        if payload is not None:
            try:
                print("Request Body:")
                print(json.dumps(payload, indent=2))
            except Exception:
                print(f"Request Body (raw): {payload}")
    
    def add_account(payload):
        url = f"{BASE_URL}{ACCOUNTS_PATH}"
        _print_request("POST", url, payload)
        return requests.post(
            url,
            headers=headers,
            params={},
            json=payload,
            timeout=REQUEST_TIMEOUT,
        )
    
    def patch_account(account_id, payload):
        url = f"{BASE_URL}{ACCOUNTS_PATH}/{account_id}"
        _print_request("PATCH", url, payload)
        return requests.patch(
            url,
            headers=headers,
            params={},
            json=payload,
            timeout=REQUEST_TIMEOUT,
        )
    
    def main():
        print("Starting AWS account onboarding (idempotent)...")
        response = None
    
        accounts = list_accounts()
        if accounts is not None:
            existing = find_existing(accounts, ROLE_ARN, ACCOUNT_NAME)
            if existing and existing.get("id"):
                acct_id = existing["id"]
                print(f"Existing account found (id={acct_id}). Sending PATCH...")
                try:
                    response = patch_account(acct_id, body)
                except Exception as e:
                    print(f"PATCH failed ({e}); falling back to POST")
                    response = add_account(body)
            else:
                print("No matching account found. Sending POST...")
                response = add_account(body)
        else:
            print("List call failed or returned nothing. Sending POST (original behavior)...")
            response = add_account(body)
    
        # Output diagnostics
        print("Status:", response.status_code)
        for k, v in response.headers.items():
            print(f"{k}: {v}")
        print()
        ctype = response.headers.get("Content-Type", "")
        if "application/json" in ctype:
            try:
                print(json.dumps(response.json(), indent=4))
            except Exception:
                print(response.text)
        else:
            print(response.text)
    
        if not (response.status_code // 100 == 2):
            raise SystemExit("Request failed. See output above.")
    
    if __name__ == "main" or __name__ == "__main__":
        main()
    
  2. Geben Sie die Werte für die folgenden Parameter im API-Code an:
  3. Parameter
    Wert
    ROLE_ARN
    Die ARN für die Rolle, die Sie in Schritt 5: Fügen Sie die TrendAI Vision One™-Rolle hinzu erstellt haben.
    ACCOUNT_NAME
    Der Name des Kontos, wie er in der Cloud-Konten-App erscheint.
    Der Name muss innerhalb der Cloud-Konten-App eindeutig sein.
    DESCRIPTION
    Die Beschreibung des Kontos, wie sie in der Cloud-Konten-App erscheint.
    FEATURES
    Wählen Sie eine der folgenden Optionen:
    • Wenn Sie Container Security in Schritt 4: Container Security mit Terraform bereitstellen (optional) nicht aktiviert haben, lassen Sie diesen Wert leer.
    • Um Container Security zu aktivieren, geben Sie die folgenden Werte an:
      • "id": "container-sicherheit"
      • "regions": ["us-east-1", "another region"]. Fügen Sie alle Regionen hinzu, in denen Sie Container Security aktivieren möchten.
    TOKEN
    Der Wert, der angezeigt wird, wenn Sie einen API-Schlüssel in Server & Workload Protection erstellen. Für weitere Informationen siehe Erstellen Sie einen API-Schlüssel mit der Server- und Workload Protection-Konsole.
    Hinweis
    Hinweis
    Das Token wird nur einmal angezeigt, wenn ein API-Schlüssel erstellt wird. Wenn Sie es nicht bestätigen können, erstellen Sie einen neuen Schlüssel zur Verifizierung.
    CONNECTED_SECURITY_SERVICES
    Wenn Sie mindestens eine Server- & Workload Protection-Instanz bereitgestellt haben, müssen Sie die folgenden Parameter für CONNECTED_SECURITY_SERVICES angeben:
    • "name": "Arbeitslast"
    • Instanz-ID: Die Instanz-ID für die Server- & Workload Protection-Instanz, die Sie mit Ihrem verbundenen AWS-Konto verknüpfen möchten
      Sie finden die Instanz-ID in der TrendAI Vision One™-Konsole, indem Sie zu Service ManagementProduct Instance gehen.
      Wichtig
      Wichtig
      Sie können nur eine Server- und Workload-Protection-Instanz mit einer AWS-Kontoverbindung verknüpfen.
  4. Rufen Sie die Add AWS account-API auf. Die API gibt eine Liste der vorhandenen verbundenen AWS-Konten zurück und führt eine der folgenden Aktionen aus:
    • Wenn ein AWS-Konto mit einem passenden ROLE_ARN oder ACCOUNT_NAME existiert, aktualisiert die API das Konto, um den Namen und die Beschreibung zu aktualisieren, und aktiviert Container Security, wenn Sie die erforderlichen Werte für den FEATURES-Parameter angegeben haben.
    • Wenn keine passenden AWS-Konten zurückgegeben werden, verbindet sich die Cloud-Konten-App in TrendAI Vision One™ mit Ihrem AWS-Konto. Sie können die Verbindung in der Cloud-Konten-App oder durch Aufrufen der Get Connected AccountsAPI überprüfen.

Nächste Schritte

Sehen Sie das AWS-Konto in TrendAI Vision One™ ein, indem Sie zu Cloud SecurityCloud Accounts gehen. Optional können Sie zusätzliche Sicherheitsfunktionen auf dem Konto im AWS-Stack-Aktualisierung-Tab in den Cloud-Kontoeinstellungen aktivieren.

Container Security für ECS auf v2 aktualisieren

Aktualisieren Sie eine bestehende Container Security für ECS v1.x.x-Bereitstellung auf v2 mit Terraform.

Vorbereitungen

  • Sie müssen die vorherige Version von Container Security v1.x.x mit den Terraform-Installationsschritten installiert haben.
  • Sie müssen die generierten Terraform-Zustandsdateien (terraform.tfstate) für die Installation, die Sie aktualisieren möchten, haben. Das Upgrade schlägt ohne diese Datei fehl.
Wenn Sie zuvor Container Security für ECS mit Terraform bereitgestellt haben, können Sie auf v2 upgraden, indem Sie die neue Vorlage herunterladen und im selben Verzeichnis wie Ihre vorhandene terraform.tfstate-Datei ausführen. Der Upgrade-Prozess aktualisiert die bereitgestellten Ressourcen auf die neueste Version.

Prozedur

  1. Laden Sie die neueste CloudFormation-Vorlage von Cloud AccountsAWS_accountStack Update herunter.
    Sie benötigen den Wert VisionOneBootstrapToken aus dieser Vorlage für das Upgrade.
  2. Ersetzen Sie die VisionOneFeaturesPolicy durch die aktualisierte Richtlinie.
    Suchen Sie im Identity and Access Management-Dienst die vorhandene VisionOneFeaturesPolicy und ersetzen Sie deren JSON-Inhalt mit der aktualisierten Version. Für die aktualisierte Richtlinien-JSON siehe AWS-Richtlinien im JSON-Format.
    Wichtig
    Wichtig
    Sie müssen alle Platzhalterinstanzen von <AWS-Account-ID> durch Ihre AWS-Konto-ID ersetzen.
  3. Laden Sie die neue Terraform-Vorlage mit dem folgenden Befehl herunter:
    curl https://vcs-cloudaccounts-us-east-1-484917860638.s3.us-east-1.amazonaws.com/templates/aws/terraform/ContainerSecurityEcsTemplate.zip --output container-security-ecs-template.zip
  4. Extrahieren Sie die Vorlage in denselben Ordner wie die terraform.tfstate aus Ihrer vorherigen Installation mit dem folgenden Befehl:
    unzip -o container-security-terraform-package.zip -d container-security-terraform-package
  5. Greifen Sie mit folgendem Befehl auf den extrahierten Ordner zu:
    cd container-security-terraform-package
  6. Kopieren Sie die Datei terraform.tfvars.example mit dem folgenden Befehl nach terraform.tfvars:
    cp terraform.tfvars.example terraform.tfvars
    Hinweis
    Hinweis
    Sie können die vorhandene terraform.tfvars-Datei sichern, um einen Teil der bestehenden Konfiguration wiederzuverwenden.
  7. Ändern Sie die Variablen in der Datei terraform.tfvars basierend auf Ihrer gewünschten Konfiguration:
    1. Setzen Sie den vision_one_endpoint_parameter_value so, dass er mit Ihrer TrendAI Vision One™-Region übereinstimmt, indem Sie die folgenden Endpunktwerte verwenden:
    2. Suchen Sie im CloudFormation-Template, das Sie in Schritt 1 heruntergeladen haben, nach dem VisionOneBootstrapToken und kopieren Sie dessen Wert in die Variable vision_one_bootstrap_token in Ihrer terraform.tfvars-Datei.
    3. Setzen Sie die anderen Variablen nach Bedarf. Verwenden Sie zum Beispiel stackset_regions, um alle AWS Regions anzugeben, in denen Container Security installiert werden soll, oder verwenden Sie common_tags, um benutzerdefinierte Tags für alle Ressourcen festzulegen.
  8. Verwenden Sie die folgenden Befehle, um die Terraform-Vorlage bereitzustellen:
    terraform init
    terraform plan
    terraform apply
    Hinweis
    Hinweis
    Sie müssen Terraform installiert haben, um diesen Schritt abzuschließen.
  9. Überprüfen Sie, ob das Upgrade erfolgreich war.
    Überprüfen Sie, ob das Konto über die Cloud-Kontoseite auf TrendAI Vision One™ verbunden ist, und prüfen Sie die installierte Vorlagenversion auf der Container SecurityInventoryAWS_accountcluster-Seite.

Nächste Schritte

Nach einem erfolgreichen Upgrade können Sie die Laufzeitsicherheit und Sicherheitslückenfunktionen auf der Container Security-Seite aktivieren.

AWS-Richtlinien im JSON-Format

Die für die Verbindung von Cloud-Konten mit Ihrem AWS-Konto erforderlichen AWS-IAM-Richtlinien werden in JSON-Codeblöcken bereitgestellt.

Die folgenden JSON-Codeblöcke sind erforderlich, wenn Sie Ihr AWS-Konto manuell mit der TrendAI Vision One™ Cloud-Konten-App verbinden. Sie finden diese Codeblöcke in der Stack-Vorlagendatei, wenn Sie sie von Cloud-Konten herunterladen oder eine API verwenden, um die Vorlage abzurufen. Die Richtlinien sind nicht einzigartig für Ihr AWS-Konto oder TrendAI Vision One™-Konto. Weitere Informationen zur Verwendung des Codes finden Sie unter Ein AWS-Konto manuell verbinden.
Verwenden Sie die Links, um zum benötigten Richtliniencode zu springen:
Richtlinie 1: VisionOnePolicyPart1
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "access-analyzer:ListAnalyzers",
                "access-analyzer:ListFindings",
                "acm:DescribeCertificate",
                "acm:ListCertificates",
                "acm:ListTagsForCertificate",
                "apigateway:GET",
                "appflow:DescribeFlow",
                "appflow:ListFlows",
                "application-autoscaling:DescribeScalableTargets",
                "application-autoscaling:DescribeScalingActivities",
                "application-autoscaling:DescribeScalingPolicies",
                "application-autoscaling:DescribeScheduledActions",
                "athena:GetQueryExecution",
                "athena:ListQueryExecutions",
                "athena:ListTagsForResource",
                "autoscaling:DescribeAccountLimits",
                "autoscaling:DescribeAutoScalingGroups",
                "autoscaling:DescribeAutoScalingInstances",
                "autoscaling:DescribeLaunchConfigurations",
                "autoscaling:DescribeLoadBalancerTargetGroups",
                "autoscaling:DescribeLoadBalancers",
                "autoscaling:DescribeNotificationConfigurations",
                "autoscaling:DescribeTags",
                "backup:DescribeBackupVault",
                "backup:GetBackupVaultAccessPolicy",
                "backup:ListBackupVaults",
                "ce:GetAnomalies",
                "ce:GetAnomalyMonitors",
                "cloudformation:DescribeAccountLimits",
                "cloudformation:DescribeStackDriftDetectionStatus",
                "cloudformation:DescribeStackEvents",
                "cloudformation:DescribeStackResources",
                "cloudformation:DescribeStacks",
                "cloudformation:DetectStackDrift",
                "cloudformation:GetStackPolicy",
                "cloudformation:GetTemplate",
                "cloudformation:ListStackInstances",
                "cloudformation:ListStackResources",
                "cloudformation:ListStacks",
                "cloudfront:GetDistribution",
                "cloudfront:ListDistributions",
                "cloudfront:ListTagsForResource",
                "cloudtrail:DescribeTrails",
                "cloudtrail:GetEventSelectors",
                "cloudtrail:GetTrailStatus",
                "cloudtrail:ListTags",
                "cloudwatch:DescribeAlarms",
                "cloudwatch:DescribeAlarmsForMetric",
                "cloudwatch:GetMetricStatistics",
                "cloudwatch:ListMetrics",
                "comprehend:ListDocumentClassificationJobs",
                "comprehend:ListDominantLanguageDetectionJobs",
                "comprehend:ListEntitiesDetectionJobs",
                "comprehend:ListKeyPhrasesDetectionJobs",
                "comprehend:ListSentimentDetectionJobs",
                "comprehend:ListTopicsDetectionJobs",
                "compute-optimizer:GetAutoScalingGroupRecommendations",
                "compute-optimizer:GetEC2InstanceRecommendations",
                "config:DescribeComplianceByConfigRule",
                "config:DescribeConfigRules",
                "config:DescribeConfigurationRecorderStatus",
                "config:DescribeConfigurationRecorders",
                "config:DescribeDeliveryChannelStatus",
                "config:DescribeDeliveryChannels",
                "config:GetComplianceDetailsByConfigRule",
                "config:GetResourceConfigHistory",
                "config:SelectResourceConfig",
                "dax:DescribeClusters",
                "dax:ListTags",
                "dms:DescribeReplicationInstances",
                "dms:ListTagsForResource",
                "ds:DescribeDirectories",
                "ds:ListTagsForResource",
                "dynamodb:DescribeContinuousBackups",
                "dynamodb:DescribeLimits",
                "dynamodb:DescribeTable",
                "dynamodb:ListBackups",
                "dynamodb:ListTables",
                "dynamodb:ListTagsOfResource",
                "ec2:DescribeAccountAttributes",
                "ec2:DescribeAddresses",
                "ec2:DescribeAvailabilityZones",
                "ec2:DescribeEgressOnlyInternetGateways",
                "ec2:DescribeFlowLogs",
                "ec2:DescribeImages",
                "ec2:DescribeInstanceAttribute",
                "ec2:DescribeInstanceStatus",
                "ec2:DescribeInstances",
                "ec2:DescribeInternetGateways",
                "ec2:DescribeKeyPairs",
                "ec2:DescribeManagedPrefixLists",
                "ec2:DescribeNatGateways",
                "ec2:DescribeNetworkAcls",
                "ec2:DescribeNetworkInterfaces",
                "ec2:DescribeRegions",
                "ec2:DescribeReservedInstances",
                "ec2:DescribeRouteTables",
                "ec2:DescribeSecurityGroupReferences",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeSnapshotAttribute",
                "ec2:DescribeSnapshots",
                "ec2:DescribeSubnets",
                "ec2:DescribeTags",
                "ec2:DescribeTransitGatewayPeeringAttachments",
                "ec2:DescribeTransitGatewayRouteTables",
                "ec2:DescribeTransitGateways",
                "ec2:DescribeVolumes",
                "ec2:DescribeVpcAttribute",
                "ec2:DescribeVpcEndpoints",
                "ec2:DescribeVpcPeeringConnections",
                "ec2:DescribeVpcs",
                "ec2:DescribeVpnConnections",
                "ec2:DescribeVpnGateways",
                "ec2:GetEbsEncryptionByDefault",
                "ec2:SearchTransitGatewayRoutes",
                "ecr:DescribeImages",
                "ecr:DescribeRepositories",
                "ecr:GetLifecyclePolicy",
                "ecr:GetRepositoryPolicy",
                "ecs:DescribeClusters",
                "ecs:DescribeContainerInstances",
                "ecs:DescribeServices",
                "ecs:DescribeTaskDefinition",
                "ecs:DescribeTasks",
                "ecs:ListClusters",
                "ecs:ListContainerInstances",
                "ecs:ListServices",
                "ecs:ListTagsForResource",
                "ecs:ListTaskDefinitions",
                "ecs:ListTasks",
                "eks:DescribeCluster",
                "eks:ListClusters",
                "elasticache:DescribeCacheClusters",
                "elasticache:DescribeReplicationGroups",
                "elasticache:DescribeReservedCacheNodes",
                "elasticache:ListTagsForResource",
                "elasticbeanstalk:DescribeConfigurationSettings",
                "elasticbeanstalk:DescribeEnvironments",
                "elasticfilesystem:DescribeFileSystems",
                "elasticfilesystem:DescribeTags",
                "elasticloadbalancing:DescribeListeners",
                "elasticloadbalancing:DescribeLoadBalancerAttributes",
                "elasticloadbalancing:DescribeLoadBalancerPolicies",
                "elasticloadbalancing:DescribeLoadBalancers",
                "elasticloadbalancing:DescribeRules",
                "elasticloadbalancing:DescribeTags",
                "elasticloadbalancing:DescribeTargetGroups",
                "elasticloadbalancing:DescribeTargetHealth",
                "elasticmapreduce:DescribeCluster",
                "elasticmapreduce:ListClusters",
                "elasticmapreduce:ListInstances",
                "es:DescribeElasticsearchDomain",
                "es:DescribeElasticsearchDomainConfig",
                "es:DescribeElasticsearchDomains",
                "es:DescribeElasticsearchInstanceTypeLimits",
                "es:DescribeReservedElasticsearchInstanceOfferings",
                "es:DescribeReservedElasticsearchInstances",
                "es:ListDomainNames",
                "es:ListElasticsearchInstanceTypes",
                "es:ListElasticsearchVersions",
                "es:ListTags",
                "events:DescribeEventBus",
                "events:ListRules",
                "firehose:DescribeDeliveryStream",
                "firehose:ListDeliveryStreams",
                "firehose:ListTagsForDeliveryStream",
                "glue:GetDataCatalogEncryptionSettings",
                "glue:GetDatabases",
                "glue:GetSecurityConfiguration",
                "glue:GetSecurityConfigurations",
                "guardduty:GetDetector",
                "guardduty:GetFindings",
                "guardduty:ListDetectors",
                "guardduty:ListFindings",
                "health:DescribeAffectedEntities",
                "health:DescribeEventDetails",
                "health:DescribeEvents",
                "iam:GenerateCredentialReport",
                "iam:GetAccessKeyLastUsed",
                "iam:GetAccountAuthorizationDetails",
                "iam:GetAccountPasswordPolicy",
                "iam:GetAccountSummary",
                "iam:GetCredentialReport",
                "iam:GetGroup",
                "iam:GetGroupPolicy",
                "iam:GetLoginProfile",
                "iam:GetOpenIDConnectProvider"
            ],
            "Resource": [
                "*"
            ],
            "Effect": "Allow"
        }
    ]
}
Richtlinie 2: VisionOnePolicyPart2
{
          "Version": "2012-10-17",
          "Statement": [
            {
              "Action": [
                "iam:GetPolicy",
                "iam:GetPolicyVersion",
                "iam:GetRole",
                "iam:GetRolePolicy",
                "iam:GetSAMLProvider",
                "iam:GetServerCertificate",
                "iam:GetUser",
                "iam:GetUserPolicy",
                "iam:ListAccessKeys",
                "iam:ListAccountAliases",
                "iam:ListAttachedGroupPolicies",
                "iam:ListAttachedRolePolicies",
                "iam:ListAttachedUserPolicies",
                "iam:ListEntitiesForPolicy",
                "iam:ListGroupPolicies",
                "iam:ListGroups",
                "iam:ListInstanceProfiles",
                "iam:ListInstanceProfilesForRole",
                "iam:ListMFADevices",
                "iam:ListOpenIDConnectProviders",
                "iam:ListPolicies",
                "iam:ListPolicyTags",
                "iam:ListPolicyVersions",
                "iam:ListRolePolicies",
                "iam:ListRoleTags",
                "iam:ListRoles",
                "iam:ListSAMLProviders",
                "iam:ListSSHPublicKeys",
                "iam:ListServerCertificates",
                "iam:ListUserPolicies",
                "iam:ListUserTags",
                "iam:ListUsers",
                "iam:ListVirtualMFADevices",
                "inspector:DescribeAssessmentRuns",
                "inspector:DescribeAssessmentTargets",
                "inspector:DescribeAssessmentTemplates",
                "inspector:DescribeExclusions",
                "inspector:DescribeFindings",
                "inspector:DescribeResourceGroups",
                "inspector:ListAssessmentRuns",
                "inspector:ListAssessmentTargets",
                "inspector:ListAssessmentTemplates",
                "inspector:ListExclusions",
                "inspector:ListFindings",
                "inspector:PreviewAgents",
                "kafka:DescribeCluster",
                "kafka:ListClusters",
                "kafka:ListNodes",
                "kinesis:DescribeStream",
                "kinesis:ListStreams",
                "kinesis:ListTagsForStream",
                "kms:DescribeKey",
                "kms:GetKeyPolicy",
                "kms:GetKeyRotationStatus",
                "kms:ListAliases",
                "kms:ListGrants",
                "kms:ListKeyPolicies",
                "kms:ListKeys",
                "kms:ListResourceTags",
                "lambda:GetAccountSettings",
                "lambda:GetFunctionConfiguration",
                "lambda:GetPolicy",
                "lambda:ListEventSourceMappings",
                "lambda:ListFunctionUrlConfigs",
                "lambda:ListFunctions",
                "lambda:ListLayers",
                "lambda:ListTags",
                "logs:DescribeLogGroups",
                "logs:DescribeLogStreams",
                "logs:DescribeMetricFilters",
                "macie2:GetClassificationExportConfiguration",
                "macie2:GetFindingStatistics",
                "macie2:ListClassificationJobs",
                "mq:DescribeBroker",
                "mq:ListBrokers",
                "organizations:DescribeAccount",
                "organizations:DescribeCreateAccountStatus",
                "organizations:DescribeHandshake",
                "organizations:DescribeOrganization",
                "organizations:DescribeOrganizationalUnit",
                "organizations:DescribePolicy",
                "organizations:ListAWSServiceAccessForOrganization",
                "organizations:ListAccounts",
                "organizations:ListAccountsForParent",
                "organizations:ListChildren",
                "organizations:ListCreateAccountStatus",
                "organizations:ListHandshakesForAccount",
                "organizations:ListHandshakesForOrganization",
                "organizations:ListOrganizationalUnitsForParent",
                "organizations:ListParents",
                "organizations:ListPolicies",
                "organizations:ListPoliciesForTarget",
                "organizations:ListRoots",
                "organizations:ListTargetsForPolicy",
                "rds:DescribeAccountAttributes",
                "rds:DescribeDBClusters",
                "rds:DescribeDBInstances",
                "rds:DescribeDBParameterGroups",
                "rds:DescribeDBParameters",
                "rds:DescribeDBSecurityGroups",
                "rds:DescribeDBSnapshotAttributes",
                "rds:DescribeDBSnapshots",
                "rds:DescribeEventSubscriptions",
                "rds:DescribeEvents",
                "rds:DescribeReservedDBInstances",
                "rds:ListTagsForResource",
                "redshift:DescribeClusterParameterGroups",
                "redshift:DescribeClusterParameters",
                "redshift:DescribeClusters",
                "redshift:DescribeLoggingStatus",
                "redshift:DescribeReservedNodes",
                "redshift:DescribeTags",
                "route53:GetDNSSEC",
                "route53:GetGeoLocation",
                "route53:ListHostedZones",
                "route53:ListResourceRecordSets",
                "route53:ListTagsForResource",
                "route53domains:GetDomainDetail",
                "route53domains:ListDomains",
                "route53domains:ListTagsForDomain",
                "s3:GetAccelerateConfiguration",
                "s3:GetAccountPublicAccessBlock",
                "s3:GetBucketAcl",
                "s3:GetBucketLocation",
                "s3:GetBucketLogging",
                "s3:GetBucketObjectLockConfiguration",
                "s3:GetBucketPolicy",
                "s3:GetBucketPolicyStatus",
                "s3:GetBucketPublicAccessBlock",
                "s3:GetBucketTagging",
                "s3:GetBucketVersioning",
                "s3:GetBucketWebsite",
                "s3:GetEncryptionConfiguration",
                "s3:GetLifecycleConfiguration",
                "s3:ListAllMyBuckets",
                "s3:ListBucket",
                "sagemaker:DescribeNotebookInstance",
                "sagemaker:ListNotebookInstances",
                "sagemaker:ListTags",
                "secretsmanager:DescribeSecret",
                "secretsmanager:ListSecrets",
                "securityhub:DescribeHub",
                "securityhub:GetEnabledStandards",
                "securityhub:GetFindings",
                "securityhub:GetInsightResults",
                "securityhub:GetInsights",
                "securityhub:GetMasterAccount",
                "securityhub:GetMembers",
                "securityhub:ListEnabledProductsForImport",
                "securityhub:ListInvitations",
                "securityhub:ListMembers",
                "servicequotas:ListServiceQuotas",
                "ses:GetIdentityDkimAttributes",
                "ses:GetIdentityPolicies",
                "ses:GetIdentityVerificationAttributes",
                "ses:ListIdentities",
                "ses:ListIdentityPolicies",
                "shield:DescribeSubscription",
                "sns:GetTopicAttributes",
                "sns:ListSubscriptionsByTopic",
                "sns:ListTagsForResource",
                "sns:ListTopics",
                "sqs:GetQueueAttributes",
                "sqs:ListQueueTags",
                "sqs:ListQueues",
                "ssm:AddTagsToResource",
                "ssm:DeleteParameter",
                "ssm:DescribeInstanceInformation",
                "ssm:DescribeParameters",
                "ssm:DescribeSessions",
                "ssm:GetParameters",
                "ssm:PutParameter",
                "ssm:RemoveTagsFromResource",
                "storagegateway:DescribeNFSFileShares",
                "storagegateway:DescribeSMBFileShares",
                "storagegateway:DescribeTapes",
                "storagegateway:ListFileShares",
                "storagegateway:ListTagsForResource",
                "storagegateway:ListTapes",
                "support:DescribeSeverityLevels",
                "support:DescribeTrustedAdvisorCheckRefreshStatuses",
                "support:DescribeTrustedAdvisorCheckResult",
                "support:DescribeTrustedAdvisorChecks",
                "support:RefreshTrustedAdvisorCheck",
                "tag:GetResources",
                "tag:GetTagKeys",
                "tag:GetTagValues",
                "transfer:DescribeServer",
                "transfer:ListServers",
                "waf:GetWebACL",
                "waf:ListWebACLs",
                "wafv2:ListWebACLs",
                "wellarchitected:GetWorkload",
                "wellarchitected:ListWorkloads",
                "workspaces:DescribeTags",
                "workspaces:DescribeWorkspaceBundles",
                "workspaces:DescribeWorkspaceDirectories",
                "workspaces:DescribeWorkspaces",
                "workspaces:DescribeWorkspacesConnectionStatus",
                "xray:GetEncryptionConfig"
              ],
              "Effect": "Allow",
              "Resource": [
                "*"
              ]
            }
          ]
        }
Richtlinie 3: VisionOnePolicyPart3
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "sqs:ListQueueTags",
                "sqs:ListQueues",
                "ssm:DescribeInstanceInformation",
                "ssm:DescribeParameters",
                "ssm:DescribeSessions",
                "ssm:GetParameter",
                "ssm:GetParameters",
                "ssm:GetParametersByPath",
                "ssm:PutParameter",
                "storagegateway:DescribeNFSFileShares",
                "storagegateway:DescribeSMBFileShares",
                "storagegateway:DescribeTapes",
                "storagegateway:ListFileShares",
                "storagegateway:ListTagsForResource",
                "storagegateway:ListTapes",
                "support:DescribeSeverityLevels",
                "support:DescribeTrustedAdvisorCheckRefreshStatuses",
                "support:DescribeTrustedAdvisorCheckResult",
                "support:DescribeTrustedAdvisorChecks",
                "support:RefreshTrustedAdvisorCheck",
                "tag:GetResources",
                "tag:GetTagKeys",
                "tag:GetTagValues",
                "transfer:DescribeServer",
                "transfer:ListServers",
                "waf:GetWebACL",
                "waf:ListWebACLs",
                "wafv2:GetWebACL",
                "wafv2:ListWebACLs",
                "wellarchitected:GetWorkload",
                "wellarchitected:ListWorkloads",
                "workspaces:DescribeTags",
                "workspaces:DescribeWorkspaceBundles",
                "workspaces:DescribeWorkspaceDirectories",
                "workspaces:DescribeWorkspaces",
                "workspaces:DescribeWorkspacesConnectionStatus",
                "xray:GetEncryptionConfig"
            ],
            "Resource": [
                "*"
            ],
            "Effect": "Allow"
        }
    ]
}
Richtlinie 4: VisionOneFeaturesPolicy
Wichtig
Wichtig
Sie müssen alle Platzhalterinstanzen von <AWS-Account-ID> durch Ihre AWS-Konto-ID ersetzen.
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Action": [
        "lambda:ListTags"
      ],
      "Effect": "Allow",
      "Resource": [
        "*"
      ]
    },
    {
      "Action": [
        "sqs:SendMessage"
      ],
      "Effect": "Allow",
      "Resource": [
        "arn:aws:sqs:*:<Aws-Account-ID>:StackSet-V1CSStackSet-*"
      ]
    },
    {
      "Action": [
        "ecs:DescribeServices",
        "ecs:DeleteService",
        "ecs:UpdateService",
        "ecs:CreateService",
        "ecs:TagResource",
        "ecs:UntagResource"
      ],
      "Effect": "Allow",
      "Resource": [
        "arn:aws:ecs:*:<Aws-Account-ID>:service/*/trendmicro-scout"
      ]
    },
    {
      "Action": [
        "ssm:PutParameter",
        "ssm:DeleteParameters",
        "ssm:AddTagsToResource",
        "ssm:RemoveTagsFromResource"
      ],
      "Effect": "Allow",
      "Resource": [
        "arn:aws:ssm:*:<Aws-Account-ID>:parameter/V1CS/*"
      ]
    },
    {
      "Action": [
        "iam:PassRole"
      ],
      "Effect": "Allow",
      "Resource": [
        "arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy",
        "arn:aws:iam::<Aws-Account-ID>:role/StackSet-V1CSStackSet-*-ExecutionRole-*",
        "arn:aws:iam::<Aws-Account-ID>:role/StackSet-V1CSStackSet-*-TaskRole-*"
      ]
    },
    {
      "Action": [
        "ecs:StopTask"
      ],
      "Effect": "Allow",
      "Resource": [
        "arn:aws:ecs:*:<Aws-Account-ID>:task/*"
      ]
    },
    {
      "Action": [
        "sqs:SendMessage"
      ],
      "Effect": "Allow",
      "Resource": [
        "arn:aws:sqs:*:<Aws-Account-ID>:trendmicro-container-security-ecs-mitigation-queue"
      ]
    }
  ]
}