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 Trend 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-Konsole ab Oktober 2025.

Schritt 1: Erstellen und Herunterladen der Stapelvorlage

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

Prozedur

  1. Generieren und herunterladen der Stack-Vorlage:
    • Greifen Sie auf die Trend Vision One-Konsole zu und erstellen Sie die Vorlage.
      1. Navigieren Sie in der Trend 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 Trend 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 Trend Vision One verweist.
      6. Vorlage herunterladen.

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

Verwenden Sie den Identity and Access Management (IAM)-Dienst in der AWS-Konsole, um Trend Vision One Zugriff auf Ihr AWS-Konto zu gewähren.
  1. Zugriff auf die AWS-Konsole.
  2. Fügen Sie Trend 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 Trend Vision One-Region ist (us, eu, au, sg, in, oder jp)
        Zum Beispiel, wenn Ihre Trend 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 Trend Vision One-Richtlinien hinzu

Fügen Sie Trend 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.
Mit dieser Methode können Sie Container Security auf Ihrem AWS-Konto aktivieren, ohne auf die Trend Vision One console zugreifen zu müssen. Wenn Sie Container Security nicht mit Terraform aktivieren möchten, können Sie es auf dem AWS-Konto in Trend Vision One aktivieren, nachdem das Konto verbunden wurde. Weitere Informationen finden Sie unter Amazon ECS-Cluster mit einem bestehenden AWS-Konto verbinden.

Prozedur

  1. Zugriff auf die AWS-Konsole.
  2. Laden Sie das Vorlagenpaket mit dem folgenden Befehl in Ihre Umgebung herunter:
    curl https://container-security-us-east-1-484917860638.s3.amazonaws.com/templates/terraform/ecs_container_security_tf.zip --output container-security-terraform-package.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. Stellen Sie den vision_one_endpoint_parameter_value so ein, dass er mit Ihrer Trend Vision One-Region übereinstimmt, indem Sie die folgenden Endpunktwerte verwenden:
    2. 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 Trend Vision One-Rolle hinzu

  1. Fügen Sie die Trend 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 Trend Vision One als Identitätsanbieter hinzu erstellt haben.
      Zum Beispiel, wenn Ihre Trend 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 Trend Vision One als Identitätsanbieter hinzu verwendet haben.
      Wenn Ihre Trend 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 Trend Vision One-Region (us, eu, au, sg, in, oder jp)
      • ${visionOneAccountID} Ihre Trend Vision One Geschäfts-ID. Stellen Sie sicher, dass beide Instanzen ersetzt werden.
      Wenn Ihre Trend 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.
Im letzten Schritt geben Sie Parameterwerte an und rufen die Add AWS account-API auf, um Ihr AWS-Konto mit Trend 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 = []
    
    # 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 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
    roleArn
    Die ARN für die Rolle, die Sie in Schritt 5: Fügen Sie die Trend Vision One-Rolle hinzu erstellt haben.
    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.
    Funktionen
    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.
    verbundene_Sicherheitsdienste
    Wenn Sie mindestens eine Server & Workload Protection-Instanz bereitgestellt haben, müssen Sie die folgenden Parameter für connectedSecurityServices 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 Trend 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 roleArn oder 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 die Cloud-Konten-App in Trend Vision One sich mit Ihrem AWS-Konto. Sie können die Verbindung in der Cloud-Konten-App überprüfen oder indem Sie die Get Connected AccountsAPI aufrufen.

Nächste Schritte

Zeigen Sie das AWS-Konto in Trend Vision One an, indem Sie zu Cloud SecurityCloud Accounts gehen. Optional können Sie zusätzliche Sicherheitsfunktionen für das Konto auf der AWS-Stack-Aktualisierung-Registerkarte in den Cloud-Kontoeinstellungen 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 Trend 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 Trend 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/*"
      ]
    }
  ]
}