ビュー:

スタックテンプレートを使用できない場合に、AWSアカウントをCloud Accountsに接続する方法を学びましょう。

一部のAWSアカウントでは、スタックテンプレートを使用してクラウド環境内にリソースをデプロイできません。これは通常、スタックテンプレート内のデプロイスクリプトで必要なIAMポリシーとロールの自動作成をセキュリティポリシーが妨げていることが原因です。
AWSアカウントを手動で接続するには、Automation CenterのAPIリソースを活用してください。この方法を使用したデプロイメントにより、次の機能と権限が有効になります。
  • Core Features and Cyber Risk Exposure Management: AWSアカウントを接続するために必要な基本的な機能と権限のセット。
  • [Amazon ECSのコンテナ保護] (オプション): この機能セットにより、Container SecurityはAWSアカウントに接続し、コンポーネントをデプロイしてElastic Container Service (ECS) 環境内のコンテナおよびコンテナイメージを保護します。
重要
重要
  • Trend Vision One APIを使用するために割り当てられたユーザーロールには、クラウドアカウントの追加、削除、および編集の完全な権限が必要です。ユーザーロールの詳細については、User Rolesを参照してください。
  • この手順は2025年10月時点のAWSコンソールに有効です。

手順1: スタックテンプレートを生成してダウンロードする

Trend Vision Oneコンソールから、またはAPIを呼び出してスタックテンプレートを生成します。

手順

  1. スタックテンプレートを生成してダウンロード:
    • Trend Vision Oneコンソールにアクセスしてテンプレートを作成してください。
      1. Trend Vision Oneのコンソールで、[Cloud Security]Cloud Accounts[AWS] に移動します
      2. [アカウントを追加]をクリックしてください。
      3. [デプロイメントタイプ] 画面で、[CloudFormation] を選択し、[単一のAWSアカウント]
      4. [次へ] をクリックします。
      5. [アカウント名][説明]を指定し、デプロイのためのAWSリージョンを選択してください。
      6. 複数のServer & Workload Protection Managerインスタンスがある場合は、接続されたアカウントに関連付けるインスタンスを選択し、[次へ]をクリックしてください。
      7. [次へ] をクリックして、[機能と権限] 画面を設定せずに進みます。
      8. [テンプレートをダウンロードして確認]をクリックします。
      注意
      注意
      [アカウント名]フィールドと[説明]フィールドはレビューのテンプレートにエクスポートされません。[Add AWS account]APIを呼び出す際にこれらのパラメータを提供できます。
    • テンプレートを取得するためにAPIを呼び出します。
      1. オートメーションセンターで[Generate AWS CloudFormation template]APIを見つけてください。
      2. query_params 文字列を探します。
      3. awsRegionには、スタックテンプレートとコア機能をデプロイしたいAWSリージョンを指定してください。デフォルトのリージョンはTrend Vision Oneリージョンに基づいています。
      4. featuresfeatureAwsREgionsのパラメータは空白のままにしてください。
      5. 変更内容を保存してAPIを呼び出します。
        APIは次の内容を返します:
        • templateUrl: テンプレートをダウンロードするためのURL。
        • visionOneOidcProviderUrl: テンプレートをデプロイするために必要なパラメータです。
        • createStackUrl: Trend Vision OneのCloudFormationテンプレートを指すAWS CloudFormationコンソールのURL。
      6. テンプレートをダウンロードしてください。

手順2: Trend Vision Oneをアイデンティティプロバイダとして追加

AWSコンソールでIdentity and Access Management (IAM) サービスを使用して、Trend Vision OneにAWSアカウントへのアクセスを許可します。
  1. AWSコンソールへのアクセス
  2. Trend Vision Oneをアイデンティティプロバイダとして追加します。
    1. AWSコンソールで[Identity and Access Management (IAM)]サービスを開きます。
    2. [Access management][Identity Providers] に移動します。
    3. [プロバイダを追加]をクリックしてください。
      [Add an Identity provider screen] が開きます。
    4. [Configure provider] で、[OpenID Connect] を選択します。
    5. プロバイダURLには、[Provider URL]を入力または貼り付けてください。
      • APIを使用してテンプレートを呼び出した場合、APIが返したvisionOneOidcProviderUrlパラメータをコピーして貼り付けてください。
      • テンプレートをダウンロードした場合、cloudaccounts-{region}.xdr.trendmicro.com と入力してください。ここで、{region}Trend Vision One のリージョンを示します (us, eu, au, sg, in, または jp)
        例えば、Trend Vision Oneの地域が米国の場合、visionOneOidcProviderUrlcloudaccounts-us.xdr.trendmicro.comです
    6. [Audience]の入力にarn:aws:iam::${AWSAccountId}:rootを使用します。
      ${AWSAccountId}をあなたのAWSアカウントIDに置き換えてください。
      CAM-AWSManual_Provider=GUID-06b9b214-6b7f-44b0-be1f-886d95805770.png
    7. [Get thumbprint]をクリックします。
    8. [プロバイダを追加]をクリックしてください。
      プロバイダが [Identity Providers] リストに追加されます。
    9. 作成したプロバイダの名前をクリックしてください。
      プロバイダの詳細画面が開きます。
    10. 後の手順でロールを作成する際に使用するために、プロバイダARNをコピーしてください。
    11. [Thumbprints]セクションを見つけて[管理]をクリックしてください。
    12. プロバイダを作成する際に生成されたサムプリントを削除し、次のサムプリントを貼り付けてください。
      [Add thumbprint] をクリックして各新しい行を追加します。
      • 9e99a48a9960b14926bb7f3b02e22da2b0ab7280
      • 9565AD13689C2C4B4F018BE31767084D197F2692
      • 8CF427FD790C3AD166068DE81E57EFBB932272D4
      • F21C12F46CDB6B2E16F09F9419CDFF328437B2D7
      CAM-AWSManual_Thumbprint=GUID-f74acdc4-fa0c-4439-aadd-267a117fbb20.png
    13. [変更を保存]をクリックしてください。

手順3: Trend Vision Oneポリシーを追加

Trend Vision OneポリシーをIdentity and Access Management (IAM) サービスに追加してアクセス権限を定義します。ポリシーの表示とコピーについては、JSON形式のAWSポリシーを参照してください。
重要
重要
各ポリシーについて、コードの2行目"Version": "2012-10-17"を必ず保持してください。この行を削除すると、ポリシーが正しく機能しない可能性があります。

手順

  1. [Identity and Access Management]サービスで、[Access management][ポリシー]に移動します。
  2. VisionOnePolicyPart1ポリシーを作成します。
    1. [ポリシーを作成]をクリックしてください。
    2. [Policy editor][JSON] を選択します。
    3. ダウンロードしたテンプレートファイル内で、VisionOnePolicyPart1の同じパラメータを使用してStatementパラメータをコピーして置き換えてください。
      このリンクをクリックして、JSONコードを直接表示およびコピーすることもできます。
    4. [次へ] をクリックします。
    5. [ポリシー名]VisionOnePolicyPart1と入力します。
    6. [ポリシーを作成]をクリックしてください。
      VisionOnePolicyPart1ポリシーが作成され、[ポリシー]画面が表示されます。
  3. VisionOnePolicyPart2ポリシーを作成します。
    1. [ポリシーを作成]をクリックしてください。
    2. [Policy editor][JSON] を選択します。
      このリンクをクリックして、JSONコードを直接表示およびコピーすることもできます。
    3. [次へ] をクリックします。
    4. [ポリシー名]VisionOnePolicyPart2と入力します。
    5. [ポリシーを作成]をクリックしてください。
      VisionOnePolicyPart2ポリシーが作成され、[ポリシー]画面が表示されます。
  4. VisionOnePolicyPart3ポリシーを作成します。
    1. [ポリシーを作成]をクリックしてください。
    2. [Policy editor][JSON] を選択します。
      このリンクをクリックして、JSONコードを直接表示およびコピーすることもできます。
    3. [次へ] をクリックします。
    4. [ポリシー名]VisionOnePolicyPart3と入力します。
    5. [ポリシーを作成]をクリックしてください。
      VisionOnePolicyPart3ポリシーが作成され、[ポリシー]画面が表示されます。
  5. VisionOneFeaturesPolicyポリシーを作成します。
    1. [ポリシーを作成]をクリックしてください。
    2. [Policy editor][JSON] を選択します。
      このリンクをクリックして、JSONコードを直接表示およびコピーすることもできます。
      重要
      重要
      すべてのプレースホルダーインスタンス<AWS-Account-ID>をあなたのAWSアカウントIDに置き換える必要があります。
    3. [次へ] をクリックします。
    4. [ポリシー名]VisionOneFeaturesPolicyと入力します。
    5. [ポリシーを作成]をクリックしてください。
      VisionOneFeaturesPolicyポリシーが作成され、[ポリシー]画面が表示されます。

手順4: Terraformを使用してContainer Securityをデプロイする (オプション)

このオプションの手順では、Terraformを使用してContainer SecurityをAWSアカウントにデプロイし、Amazon ECSコンテナとコンテナイメージを保護します。
この方法では、Trend Vision OneコンソールにアクセスせずにAWSアカウントでContainer Securityを有効にすることができます。Terraformを使用してContainer Securityを有効にしない場合は、アカウントが接続された後にTrend Vision OneでAWSアカウントで有効にすることができます。詳細については、既存のAWSアカウントを使用してAmazon ECSクラスターに接続するを参照してください。

手順

  1. AWSコンソールへのアクセス
  2. 次のコマンドを使用してテンプレートパッケージを環境にダウンロードしてください。
    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. 次のコマンドを使用して、テンプレートを解凍します。
    unzip -o container-security-terraform-package.zip -d container-security-terraform-package
    注意
    注意
    ファイルを解凍するには、環境での許可が必要です。
  4. 次のコマンドを使用して抽出されたフォルダにアクセスします:
    cd container-security-terraform-package
  5. 次のコマンドを使用してterraform.tfvars.exampleをterraform.tfvarsにコピーしてください:
    cp terraform.tfvars.example terraform.tfvars
  6. 必要な構成に基づいてterraform.tfvarsファイル内の変数を変更してください。
    1. 次のエンドポイント値を使用して、Trend Vision Oneリージョンに一致するように[vision_one_endpoint_parameter_value]を設定してください。
    2. 他の変数を必要に応じて設定します。例えば、[stackset_regions]を使用して、Container SecurityをインストールするすべてのAWSリージョンを指定したり、[common_tags]を使用してすべてのリソースに適用するカスタムタグを指定したりします。
  7. 次のコマンドを使用してTerraformテンプレートをデプロイします。
    terraform init
    terraform plan
    terraform apply
    注意
    注意
    この手順を完了するには、Terraformがインストールされている必要があります。

手順5: Trend Vision Oneロールを追加

  1. Trend Vision One ロールを追加します。
    1. [Identity and Access Management]サービスで、[Access management][役割]に移動します。
    2. [Create role]をクリックしてください。
    3. [Trusted entity type][Custom trust policy] を選択します。
      The Custom trust policy JSON editor appears.
    4. 次のJSONコードでプレースホルダーコードを置き換えてください:
      {
        "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. 次のパラメータの文字列を置き換えてください:
      パラメータ
      説明
      "フェデレーテッド"
      "${visionOneOIDCProvider}"手順2: Trend Vision Oneをアイデンティティプロバイダとして追加で作成したプロバイダのプロバイダARNに置き換えます。
      例えば、Trend Vision Oneのリージョンが米国の場合、ARNは"arn:aws:iam::1xxxxxxxxxx1:oidc-provider/cloudaccounts-us.xdr.trendmicro.com"の形式になります
      "StringEquals"
      手順2: Trend Vision Oneをアイデンティティプロバイダとして追加でプロバイダを作成したときに使用した値で、両方のインスタンス"${visionOneOIDCProviderURL}"を置き換えてください。
      例えば、Trend Vision Oneの地域が米国の場合、cloudaccounts-us.xdr.trendmicro.comを使用してください
      文字列"arn:aws:iam::${AWSAccountID}:root"${AWS::AccountID}をあなたのAWSアカウントIDに置き換えてください。
      文字列は"arn:aws:iam::1xxxxxxxxxx1:root"の形式に従う必要があります
      "urn:visionone:identity:..."で始まる文字列内の次のパラメータを置き換えてください。
      • ${visionOneRegion}: お客様のTrend Vision Oneリージョン (us, eu, au, sg, in, または jp)
      • ${visionOneAccountID} あなたのTrend Vision OneビジネスID。両方のインスタンスを置き換えてください。
      Trend Vision Oneのリージョンが米国の場合、文字列は"urn:visionone:identity:us:1#####1:account/1#####1"のようになります
    6. [次へ] をクリックします。
    7. [Add permissions]画面で、作成したポリシーを検索し、すべて選択してください。
    8. [次へ] をクリックします。
    9. [Name, review, and create]画面で、[役割名]VisionOneRoleと入力します。
    10. [Step 3: Add tags] で次のタグを追加します。
      キー
      VisionOne機能
      次のいずれかの値を入力します。
      VisionOneCloudFormationStackName
      Vision-One-Cloud-アカウント管理
      VisionOneCloudFormationStackRegion
      リソースを展開したいAWSリージョンを入力してください。例えば、us-east-1
    11. [Create role]をクリックしてください。
    12. 作成が完了したら、作成したロールのロール名をクリックしてください。
    13. ロール詳細画面で、後の手順で[Add AWS account]APIで使用するためにARNをコピーします。
この最終手順では、パラメータ値を提供し、[Add AWS account] APIを呼び出して、AWSアカウントをTrend Vision Oneに接続します。

手順

  1. オートメーションセンターからAPIにアクセスするか、次のコードをコピーしてカスタマイズしてください。
    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. APIコード内の次のパラメータの値を提供してください:
  3. パラメータ
    roleArn
    手順5: Trend Vision Oneロールを追加で作成したロールのARNです。
    name
    Cloud Accountsアプリに表示されるアカウントの名前。
    名前はCloud Accountsアプリ内で一意でなければなりません。
    description
    Cloud Accountsアプリに表示されるアカウントの説明。
    機能
    次のいずれかを実行します。
    • 手順4: Terraformを使用してContainer Securityをデプロイする (オプション)でContainer Securityを有効にしていない場合は、この値を空白のままにしてください。
    • Container Securityを有効にするには、次の値を入力してください。
      • "id": "container-security"
      • "regions": ["us-east-1", "another region"]。Container Securityを有効にしたいすべてのリージョンを追加してください。
    token
    Server & Workload ProtectionでAPIキーを作成する際に表示される値です。詳細については、 Server & Workload Protection コンソールを使用してAPIキーを作成するを参照してください。
    注意
    注意
    トークンはAPIキーを作成する際に一度だけ表示されます。確認できない場合は、検証用に新しいキーを作成してください。
    connected_security_services
    少なくとも1つのServer & Workload Protectionインスタンスをプロビジョニングした場合、connectedSecurityServicesのために次のパラメータを提供する必要があります。
    • "name": "ワークロード"
    • インスタンスID: 接続されたAWSアカウントに関連付けたいサーバおよびWorkload Protectionインスタンスの[インスタンスID]
      インスタンスIDは、Trend Vision One コンソールで [Service Management][Product Instance] に移動して見つけることができます。
      重要
      重要
      1つのServer & Workload ProtectionインスタンスのみをAWSアカウント接続に関連付けることができます。
  4. [Add AWS account]APIを呼び出します。このAPIは既存の接続されたAWSアカウントのリストを返し、次のいずれかを実行します。
    • roleArnまたはnameが一致するAWSアカウントが存在する場合、APIはアカウントを更新して名前と説明を更新し、featuresパラメータに必要な値を提供した場合はContainer Securityを有効にします。
    • 一致するAWSアカウントが返されない場合、Trend Vision OneのCloud AccountsアプリがAWSアカウントに接続します。Cloud Accountsアプリで接続を確認するか、[Get Connected Accounts]APIを呼び出して確認できます。

次のステップ

[Cloud Security]Cloud Accountsに移動して、Trend Vision OneでAWSアカウントを表示します。必要に応じて、クラウドアカウント設定のAWSスタックの更新タブでアカウントに追加のセキュリティ機能を有効にします。

JSON形式のAWSポリシー

Cloud AccountsからAWSアカウントへの接続を許可するために必要なAWS IAMポリシーは、JSONコードブロックで提供されます。

次のJSONコードブロックは、AWSアカウントをTrend Vision One Cloud Accountsアプリに手動で接続する際に必要です。これらのコードブロックは、Cloud Accountsからダウンロードするか、APIを使用してテンプレートを呼び出すと、スタックテンプレートファイル内に見つけることができます。ポリシーは、AWSアカウントやTrend Vision Oneアカウントに固有のものではありません。コードの使用に関する詳細は、AWSアカウントを手動で接続するを参照してください。
リンクを使用して、必要なポリシーコードに移動します。
ポリシー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"
        }
    ]
}
ポリシー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": [
                "*"
              ]
            }
          ]
        }
ポリシー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"
        }
    ]
}
ポリシー4: VisionOneFeaturesPolicy
重要
重要
すべてのプレースホルダーインスタンス<AWS-Account-ID>をあなたのAWSアカウントIDに置き換える必要があります。
{
  "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/*"
      ]
    }
  ]
}