如何在無法使用堆疊範本的情況下將您的 AWS 帳戶連接到雲端帳戶。
有些 AWS 帳戶不允許使用堆疊範本在雲端環境中部署資源。這通常是由於安全政策阻止自動建立堆疊範本中部署程式檔所需的 IAM 政策和角色。
要手動連接 AWS 帳戶,請利用 自動化中心 上的 API 資源。
重要
|
步驟
- 從雲端帳戶生成並下載堆疊範本,可以通過Trend Vision One控制台或調用API來完成。
-
訪問Trend Vision One控制台並創建模板。
-
在 Trend Vision One 主控台中,依次選擇
-
點選Add Account。
-
在Deployment Type畫面上,選擇CloudFormation和Single AWS Account。
-
點選下一步。
-
指定Account name、Description,並選擇要部署的 AWS 區域。
-
如果您有多個 Server & Workload Protection Manager 實例,請選擇要與連接的帳戶關聯的實例,然後點選下一步。
-
點選下一步,無需配置Features and Permissions畫面。
-
點選Download and Review Template。
注意
Account Name 和 Description 欄位不會匯出到審查範本。您可以在調用連接帳戶 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的 AWS CloudFormation 模板的 AWS CloudFormation 控制台 URL。
-
-
下載範本。
-
-
- 訪問 AWS 控制台。
- 將 Trend Vision One 新增為身份提供者。
- 在 AWS 控制台中,打開Identity and Access Management (IAM)服務。
- 前往 。
- 點選Add provider。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。
- 點選Add provider。提供者已新增至Identity providers清單。
- 點選您建立的提供者名稱。提供者詳細資料畫面開啟。
- 複製提供者 ARN 以便在後續步驟中建立角色時使用。
- 找到Thumbprints部分並點選Manage。
- 刪除建立提供者時生成的指紋,並貼上以下指紋。點選Add thumbprint以新增每一行。
-
9e99a48a9960b14926bb7f3b02e22da2b0ab7280
-
9565AD13689C2C4B4F018BE31767084D197F2692
-
8CF427FD790C3AD166068DE81E57EFBB932272D4
-
F21C12F46CDB6B2E16F09F9419CDFF328437B2D7
-
- 點選Save changes。
- 新增Trend Vision One政策。
- 在Identity and Access Management服務中,前往 。
- 點選Create policy。
- 對於Policy editor,選擇JSON。
- 使用您下載的範本檔案中來自
VisionOnePolicyPart1
的相同參數複製並替換Statement
參數。您也可以點選此連結以直接查看和複製 JSON 代碼。重要
請確保保留程式碼的第二行"Version": "2012-10-17"
。刪除此行可能會導致政策無法正常運作。 - 點選下一步。
- 對於Policy name,輸入VisionOnePolicyPart1。
- 點選Create policy。政策已建立,Policies畫面顯示。
- 在建立政策後,從Policies畫面點選Create policy。
- 對於Policy editor,選擇JSON。
- 使用您下載的範本檔案中來自
VisionOnePolicyPart2
的相同參數複製並替換Statement
參數。您也可以點選此連結直接查看並複製 JSON 代碼。重要
請確保保留程式碼的第二行"Version": "2012-10-17"
。刪除此行可能會導致政策無法正常運作。 - 點選下一步。
- 對於Policy name,輸入VisionOnePolicyPart2。
- 點選Create policy。政策已建立,Policies畫面顯示。
- 新增Trend Vision One角色。
- 在Identity and Access Management服務中,前往 。
- 點選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}" ] } } } ] }
- 替換以下參數的字串:參數說明範例
"聯邦"
將"${visionOneOIDCProvider}"
替換為您創建的 提供者 ARN。例如,如果您的 Trend Vision One 區域是美國,ARN 的格式如下 "arn:aws:iam::1xxxxxxxxxx1:oidc-provider/cloudaccounts-us.xdr.trendmicro.com""StringEquals"
將兩個"${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 畫面上,於 Role name 輸入 VisionOneRole。
- 在Step 3: Add tags下,添加以下標籤。金鑰值VisionOne功能基礎VisionOneFormationStackNameVision-One-雲端帳戶管理VisionOneFormationStackRegion輸入您想要部署資源的 AWS 區域。例如,us-east-1。
- 點選Create role。
- 創建完成後,點選您創建的角色名稱。
- 在角色詳細資訊畫面中,複製 ARN 以在後續步驟中使用新增帳戶 API。
- 使用新增帳戶 API 將您的 AWS 帳戶連接到雲端帳戶應用程式。
- 從自動化中心訪問 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
名稱
該帳戶在雲端帳戶應用程式中顯示的名稱名稱在雲端帳戶應用程式中必須是唯一的。描述
該帳戶在雲端帳戶應用程式中的描述功能
將此值留空如果您已配置至少一個伺服器和工作負載保護實例,則必須提供connectedSecurityServices
的參數。參數值名稱
工作負載instanceIds
您要與已連接的 AWS 帳戶關聯的伺服器和工作負載保護實例的 Instance ID您可以在 Trend Vision One 控制台中,通過前往 找到實例 ID。重要
您只能將一個伺服器和工作負載保護實例與一個 AWS 帳戶連接關聯。 - 呼叫新增帳戶 API。
雲端帳戶應用程式連接到您的 AWS 帳戶。您可以在雲端帳戶應用程式中驗證連接,或通過調用 Get Connected Accounts API 來驗證連接。 - 從自動化中心訪問 API,或複製以下代碼進行自定義。