スタックテンプレートを使用できない場合に、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) 環境内のコンテナおよびコンテナイメージを保護します。
重要
|
手順1: スタックテンプレートを生成してダウンロードする
Trend Vision Oneコンソールから、またはAPIを呼び出してスタックテンプレートを生成します。
手順
- スタックテンプレートを生成してダウンロード:
-
Trend Vision Oneコンソールにアクセスしてテンプレートを作成してください。
-
Trend Vision Oneのコンソールで、 に移動します
-
[アカウントを追加]をクリックしてください。
-
[デプロイメントタイプ] 画面で、[CloudFormation] を選択し、[単一のAWSアカウント]。
-
[次へ] をクリックします。
-
[アカウント名]、[説明]を指定し、デプロイのためのAWSリージョンを選択してください。
-
複数のServer & Workload Protection Managerインスタンスがある場合は、接続されたアカウントに関連付けるインスタンスを選択し、[次へ]をクリックしてください。
-
[次へ] をクリックして、[機能と権限] 画面を設定せずに進みます。
-
[テンプレートをダウンロードして確認]をクリックします。

注意
[アカウント名]フィールドと[説明]フィールドはレビューのテンプレートにエクスポートされません。[Add AWS account]APIを呼び出す際にこれらのパラメータを提供できます。 -
-
テンプレートを取得するためにAPIを呼び出します。
-
オートメーションセンターで[Generate AWS CloudFormation template]APIを見つけてください。
-
query_params文字列を探します。 -
awsRegionには、スタックテンプレートとコア機能をデプロイしたいAWSリージョンを指定してください。デフォルトのリージョンはTrend Vision Oneリージョンに基づいています。 -
featuresとfeatureAwsREgionsのパラメータは空白のままにしてください。 -
変更内容を保存してAPIを呼び出します。APIは次の内容を返します:
-
templateUrl: テンプレートをダウンロードするためのURL。 -
visionOneOidcProviderUrl: テンプレートをデプロイするために必要なパラメータです。 -
createStackUrl: Trend Vision OneのCloudFormationテンプレートを指すAWS CloudFormationコンソールのURL。
-
-
テンプレートをダウンロードしてください。
-
-
手順2: Trend Vision Oneをアイデンティティプロバイダとして追加
AWSコンソールでIdentity and Access Management (IAM) サービスを使用して、Trend Vision OneにAWSアカウントへのアクセスを許可します。
- AWSコンソールへのアクセス
- Trend Vision Oneをアイデンティティプロバイダとして追加します。
- AWSコンソールで[Identity and Access Management (IAM)]サービスを開きます。
- に移動します。
- [プロバイダを追加]をクリックしてください。
[Add an Identity provider screen] が開きます。
- [Configure provider] で、[OpenID Connect] を選択します。
- プロバイダURLには、[Provider URL]を入力または貼り付けてください。
-
APIを使用してテンプレートを呼び出した場合、APIが返した
visionOneOidcProviderUrlパラメータをコピーして貼り付けてください。 -
テンプレートをダウンロードした場合、cloudaccounts-{region}.xdr.trendmicro.com と入力してください。ここで、
{region}は Trend Vision One のリージョンを示します (us, eu, au, sg, in,またはjp)例えば、Trend Vision Oneの地域が米国の場合、visionOneOidcProviderUrlはcloudaccounts-us.xdr.trendmicro.comです
-
- [Audience]の入力にarn:aws:iam::${AWSAccountId}:rootを使用します。
${AWSAccountId}をあなたのAWSアカウントIDに置き換えてください。
- [Get thumbprint]をクリックします。
- [プロバイダを追加]をクリックしてください。
プロバイダが [Identity Providers] リストに追加されます。
- 作成したプロバイダの名前をクリックしてください。
プロバイダの詳細画面が開きます。
- 後の手順でロールを作成する際に使用するために、プロバイダARNをコピーしてください。
- [Thumbprints]セクションを見つけて[管理]をクリックしてください。
- プロバイダを作成する際に生成されたサムプリントを削除し、次のサムプリントを貼り付けてください。
[Add thumbprint] をクリックして各新しい行を追加します。
-
9e99a48a9960b14926bb7f3b02e22da2b0ab7280 -
9565AD13689C2C4B4F018BE31767084D197F2692 -
8CF427FD790C3AD166068DE81E57EFBB932272D4 -
F21C12F46CDB6B2E16F09F9419CDFF328437B2D7

-
- [変更を保存]をクリックしてください。
手順3: Trend Vision Oneポリシーを追加
Trend Vision OneポリシーをIdentity and Access Management (IAM) サービスに追加してアクセス権限を定義します。ポリシーの表示とコピーについては、JSON形式のAWSポリシーを参照してください。
重要各ポリシーについて、コードの2行目
"Version": "2012-10-17"を必ず保持してください。この行を削除すると、ポリシーが正しく機能しない可能性があります。 |
手順
- [Identity and Access Management]サービスで、に移動します。
VisionOnePolicyPart1ポリシーを作成します。- [ポリシーを作成]をクリックしてください。
- [Policy editor] に [JSON] を選択します。
- ダウンロードしたテンプレートファイル内で、
VisionOnePolicyPart1の同じパラメータを使用してStatementパラメータをコピーして置き換えてください。このリンクをクリックして、JSONコードを直接表示およびコピーすることもできます。 - [次へ] をクリックします。
- [ポリシー名] にVisionOnePolicyPart1と入力します。
- [ポリシーを作成]をクリックしてください。
VisionOnePolicyPart1ポリシーが作成され、[ポリシー]画面が表示されます。
VisionOnePolicyPart2ポリシーを作成します。- [ポリシーを作成]をクリックしてください。
- [Policy editor] に [JSON] を選択します。このリンクをクリックして、JSONコードを直接表示およびコピーすることもできます。
- [次へ] をクリックします。
- [ポリシー名] にVisionOnePolicyPart2と入力します。
- [ポリシーを作成]をクリックしてください。
VisionOnePolicyPart2ポリシーが作成され、[ポリシー]画面が表示されます。
VisionOnePolicyPart3ポリシーを作成します。- [ポリシーを作成]をクリックしてください。
- [Policy editor] に [JSON] を選択します。このリンクをクリックして、JSONコードを直接表示およびコピーすることもできます。
- [次へ] をクリックします。
- [ポリシー名] にVisionOnePolicyPart3と入力します。
- [ポリシーを作成]をクリックしてください。
VisionOnePolicyPart3ポリシーが作成され、[ポリシー]画面が表示されます。
VisionOneFeaturesPolicyポリシーを作成します。- [ポリシーを作成]をクリックしてください。
- [Policy editor] に [JSON] を選択します。このリンクをクリックして、JSONコードを直接表示およびコピーすることもできます。

重要
すべてのプレースホルダーインスタンス<AWS-Account-ID>をあなたのAWSアカウントIDに置き換える必要があります。 - [次へ] をクリックします。
- [ポリシー名] にVisionOneFeaturesPolicyと入力します。
- [ポリシーを作成]をクリックしてください。
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クラスターに接続するを参照してください。
手順
- AWSコンソールへのアクセス
- 次のコマンドを使用してテンプレートパッケージを環境にダウンロードしてください。
curl https://container-security-us-east-1-484917860638.s3.amazonaws.com/templates/terraform/ecs_container_security_tf.zip --output container-security-terraform-package.zip - 次のコマンドを使用して、テンプレートを解凍します。
unzip -o container-security-terraform-package.zip -d container-security-terraform-package
注意
ファイルを解凍するには、環境での許可が必要です。 - 次のコマンドを使用して抽出されたフォルダにアクセスします:
cd container-security-terraform-package - 次のコマンドを使用してterraform.tfvars.exampleをterraform.tfvarsにコピーしてください:
cp terraform.tfvars.example terraform.tfvars - 必要な構成に基づいて
terraform.tfvarsファイル内の変数を変更してください。- 次のエンドポイント値を使用して、Trend Vision Oneリージョンに一致するように[vision_one_endpoint_parameter_value]を設定してください。
- 他の変数を必要に応じて設定します。例えば、[stackset_regions]を使用して、Container SecurityをインストールするすべてのAWSリージョンを指定したり、[common_tags]を使用してすべてのリソースに適用するカスタムタグを指定したりします。
- 次のエンドポイント値を使用して、Trend Vision Oneリージョンに一致するように[vision_one_endpoint_parameter_value]を設定してください。
- 次のコマンドを使用してTerraformテンプレートをデプロイします。
terraform init terraform plan terraform apply

注意
この手順を完了するには、Terraformがインストールされている必要があります。
手順5: Trend Vision Oneロールを追加
- Trend Vision One ロールを追加します。
- [Identity and Access Management]サービスで、に移動します。
- [Create role]をクリックしてください。
- [Trusted entity type] に [Custom trust policy] を選択します。
The Custom trust policy JSON editor appears.
- 次の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}" ] } } } ] } - 次のパラメータの文字列を置き換えてください:
パラメータ説明例
"フェデレーテッド""${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"のようになります -
- [次へ] をクリックします。
- [Add permissions]画面で、作成したポリシーを検索し、すべて選択してください。
- [次へ] をクリックします。
- [Name, review, and create]画面で、[役割名]にVisionOneRoleと入力します。
- [Step 3: Add tags] で次のタグを追加します。
キー値VisionOne機能次のいずれかの値を入力します。
-
手順4: Terraformを使用してContainer Securityをデプロイする (オプション)でContainer Securityをデプロイした場合、container-securityを入力してください
-
Container Securityをデプロイしていない場合は、値をVisionOneFeatures: Baseのままにしてください。
VisionOneCloudFormationStackNameVision-One-Cloud-アカウント管理VisionOneCloudFormationStackRegionリソースを展開したいAWSリージョンを入力してください。例えば、us-east-1。 -
- [Create role]をクリックしてください。
- 作成が完了したら、作成したロールのロール名をクリックしてください。
- ロール詳細画面で、後の手順で[Add AWS account]APIで使用するためにARNをコピーします。
手順6: Add AWS account APIを使用してAWSアカウントを接続する
この最終手順では、パラメータ値を提供し、[Add AWS account] APIを呼び出して、AWSアカウントをTrend Vision Oneに接続します。
手順
- オートメーションセンターから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() - APIコード内の次のパラメータの値を提供してください:
-
パラメータ値
roleArn手順5: Trend Vision Oneロールを追加で作成したロールのARNです。nameCloud Accountsアプリに表示されるアカウントの名前。名前はCloud Accountsアプリ内で一意でなければなりません。descriptionCloud Accountsアプリに表示されるアカウントの説明。機能次のいずれかを実行します。-
手順4: Terraformを使用してContainer Securityをデプロイする (オプション)でContainer Securityを有効にしていない場合は、この値を空白のままにしてください。
-
Container Securityを有効にするには、次の値を入力してください。
-
"id": "container-security" -
"regions": ["us-east-1", "another region"]。Container Securityを有効にしたいすべてのリージョンを追加してください。
-
tokenServer & 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 コンソールで に移動して見つけることができます。
重要
1つのServer & Workload ProtectionインスタンスのみをAWSアカウント接続に関連付けることができます。
-
- [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を呼び出して確認できます。
-
次のステップ
に移動して、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 -
ポリシー2 :
VisionOnePolicyPart2 -
ポリシー3:
VisionOnePolicyPart3 -
ポリシー4:
VisionOneFeaturesPolicy
ポリシー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/*"
]
}
]
}
