スタックテンプレートを使用できない場合にAWSアカウントをCloud Accountsに接続する方法。
一部のAWSアカウントでは、スタックテンプレートを使用してクラウド環境内にリソースをデプロイできません。これは通常、スタックテンプレート内のデプロイスクリプトで必要なIAMポリシーとロールの自動作成をセキュリティポリシーが妨げていることが原因です。
AWSアカウントを手動で接続するには、自動化センター。
重要
|
手順
- Trend Vision One コンソールから、またはAPIを呼び出して、Cloud Accountsからスタックテンプレートを生成してダウンロードします。
-
Trend Vision One コンソールにアクセスし、テンプレートを作成します。
-
Trend Vision Oneコンソールで、 に移動します
-
[アカウントを追加]をクリックします。
-
[Deployment Type] 画面で、[CloudFormation] と [Single AWS Account] を選択します。
-
[次へ] をクリックします。
-
[アカウント名]、[説明]を指定し、デプロイするAWSリージョンを選択します。
-
複数のServer & Workload Protection Managerインスタンスがある場合は、接続されたアカウントに関連付けるインスタンスを選択し、[次へ]をクリックします。
-
[次へ] をクリックして、[機能と権限] 画面を設定しないでください。
-
[テンプレートをダウンロードして確認]をクリックします。
注意
[アカウント名] および [説明] フィールドはレビューテンプレートにエクスポートされません。 Connect Account APIを呼び出すときに、これらのパラメータを指定できます。 -
-
APIを呼び出してテンプレートを取得します。
-
オートメーションセンターで [Get 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。
-
-
テンプレートをダウンロードします。
-
-
- AWSコンソールにアクセスします。
- IDプロバイダとして Trend Vision One を追加します。
- AWSコンソールで、 Identity and Access Management (IAM) サービスを開きます。
- に移動 。
- [Add provider]をクリックします。[Add an Identity provider screen] が開きます。
- [Configure provider] セクションで、 [OpenID Connect]を選択します。
- [プロバイダのURL] に、 [Provider URL]を入力するか貼り付けます。
-
APIを使用してテンプレートを呼び出した場合は、
visionOneOidcProviderUrl
APIが返すパラメータをコピーして貼り付けます。 -
テンプレートをダウンロードした場合は、次のように入力します。 cloudaccounts-{region}.xdr.trendmicro.comどこで
{region}
は Trend Vision One リージョン (us, eu, au, sg, in,
またはjp
)たとえば、 Trend Vision One 地域が米国の場合、visionOneOidcProviderUrl
はcloudaccounts-jp.xdr.trendmicro.com
-
- [Audience]の場合arn:aws:iam::${AWSAccountId}:rootと入力します。
${AWSAccountId}
をAWSアカウントIDで置き換えます。 - [Get thumbprint]をクリックします。
- [Add provider]をクリックします。プロバイダが [Identity providers] リストに追加されます。
- 作成したプロバイダの名前をクリックします。プロバイダの詳細画面が開きます。
- 後の手順でロールを作成するときに使用するために、プロバイダのARNをコピーします。
- [Thumbprints] セクションを見つけて、 [管理]をクリックします。
- プロバイダの作成時に生成された拇印を削除し、次の拇印を貼り付けます。新しい各行を追加するには、 [Add thumbprint] をクリックします。
-
9e99a48a9960b14926bb7f3b02e22da2b0ab7280
-
9565AD13689C2C4B4F018BE31767084D197F2692
-
8CF427FD790C3AD166068DE81E57EFBB932272D4
-
F21C12F46CDB6B2E16F09F9419CDFF328437B2D7
-
- [Save changes]をクリックします。
- Trend Vision One ポリシーを追加します。
- [IDとアクセス管理] サービスで、 。
- [ポリシーを作成]をクリックします。
- [Policy editor]で、 [JSON]を選択します。
- ダウンロードしたテンプレートファイル内の
VisionOnePolicyPart1
から同じパラメータを使用してStatement
パラメータをコピーして置き換えます。次のこともできます。このリンクをクリックをクリックしてJSONコードを直接表示およびコピーします。重要
コードの2行目は"Version": "2012-10-17"
のままにします。この行を削除すると、ポリシーが正しく機能しなくなる可能性があります。 - [次へ] をクリックします。
- [ポリシー名]の場合は、次のように入力します。 VisionOnePolicyPart1 。
- [ポリシーを作成]をクリックします。ポリシーが作成され、 [ポリシー] 画面が表示されます。
- ポリシーが作成されたら、 [ポリシー] 画面で [ポリシーを作成] をクリックします。
- [Policy editor]で、 [JSON]を選択します。
- ダウンロードしたテンプレートファイル内の
VisionOnePolicyPart2
から同じパラメータを使用してStatement
パラメータをコピーして置き換えます。次のこともできます。このリンクをクリックをクリックしてJSONコードを直接表示およびコピーします。重要
コードの2行目は"Version": "2012-10-17"
のままにします。この行を削除すると、ポリシーが正しく機能しなくなる可能性があります。 - [次へ] をクリックします。
- [ポリシー名]の場合は、次のように入力します。 VisionOnePolicyPart2 。
- [ポリシーを作成]をクリックします。ポリシーが作成され、 [ポリシー] 画面が表示されます。
- Trend Vision One の役割を追加します。
- [IDとアクセス管理] サービスで、 。
- [Create role]をクリックします。
- [Trusted entity type]で、 [Custom trust policy]を選択します。[Custom trust policy] JSONエディタが表示されます。
- プレースホルダコードを次の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}" ] } } } ] }
- 次のパラメータの文字列を置き換えます。パラメータ説明例
"Federated"
"${visionOneOIDCProvider}"
を作成したプロバイダのプロバイダARNで置換します。たとえば、 Trend Vision One リージョンが米国の場合、ARNは次の形式に従います。 "arn:aws:iam::1xxxxxxxxxx1:oidc-provider/cloudaccounts-us.xdr.trendmicro.com""StringEquals"
"${visionOneOIDCProviderURL}"
の両方のインスタンスをプロバイダの作成時に使用した値で置換します。たとえば、 Trend Vision One 地域が米国の場合は、次のように指定します。 cloudaccounts-jp.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]で、次のタグを追加します。キー値VisionOneFeaturesBaseVisionOneFormationStackNameVision-One-Cloud-Account-ManagementVisionOneFormationStackRegionリソースをデプロイするAWSリージョンを入力します。たとえば、 us-east-1 。
- [Create role]をクリックします。
- 作成が完了したら、作成した役割の役割名をクリックします。
- ロールの詳細画面で、ARNをコピーして、後の手順でアカウント追加APIで使用します。
- アカウントの追加APIを使用して、AWSアカウントをCloud Accountsアプリに接続します。
- からAPIにアクセスします。自動化センター、または次のコードをコピーしてカスタマイズします。
import requests import json url_base = 'https://api.xdr.trendmicro.com' url_path = '/beta/xdr/cam/awsAccounts' token = 'API Keys' query_params = {} headers = { 'Authorization': 'Bearer ' + token, 'Content-Type': 'application/json;charset=utf-8' } body = { 'roleArn': 'YOUR_ROLEARN (string)', 'name': 'YOUR_NAME (string)', 'description': 'YOUR_DESCRIPTION (string)', 'features': 'YOUR_FEATURES (array)', 'connectedSecurityServices': [ { 'name': 'YOUR_NAME2 (string)', 'instanceIds': 'YOUR_INSTANCEIDS (array)' } ] } r = requests.post(url_base + url_path, params=query_params, headers=headers, json=body) print(r.status_code) for k, v in r.headers.items(): print(f'{k}: {v}') print('') if 'application/json' in r.headers.get('Content-Type', '') and len(r.content): print(json.dumps(r.json(), indent=4)) else: print(r.text)
- APIコードの次のパラメータに値を指定します。パラメータ値
roleArn
name
Cloud Accountsアプリに表示されるアカウントの名前名前はCloud Accountsアプリ内で一意である必要があります。description
Cloud Accountsアプリに表示されるアカウントの説明features
この値は空白のままにしますServer & Workload Protectionインスタンスを1つ以上プロビジョニングしている場合は、次のパラメータを指定する必要があります。connectedSecurityServices
。パラメータ値name
workloadinstanceIds
接続されたAWSアカウントに関連付けるServer & Workload Protectionインスタンスの [インスタンスID]インスタンスIDは、 Trend Vision One コンソールで確認できます。 。重要
1つのAWSアカウント接続に関連付けることができるServer & Workload Protectionインスタンスは1つのみです。 - アカウントの追加APIを呼び出します。
Cloud AccountsアプリがAWSアカウントに接続します。接続は、Cloud Accountsアプリで確認するか、Get Connected Accounts APIを呼び出して確認できます。 - からAPIにアクセスします。自動化センター、または次のコードをコピーしてカスタマイズします。