教學課程 / Cloud One Workload Security:第 13 課-API 與雲端帳戶整合的進階操作 / AWS CLI 程式碼與 Azure 帳戶概觀
單元 11 / 22

AWS CLI 程式碼與 Azure 帳戶概觀

這是 Cross Account Role 影片中 UI 操作的替代方式。若不使用 AWS UI,可透過 AWS CLI 完成設定。命令與 IAM 權限可能隨 AWS 及 Workload Security 更新而變更,執行前請先與現行 Cross Account Role 文件比對。

AWS CLI 程式碼

步驟 1

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "cloudconnector",
            "Action": [
                "ec2:DescribeImages",
                "ec2:DescribeInstances",
                "ec2:DescribeRegions",
                "ec2:DescribeSubnets",
                "ec2:DescribeTags",
                "ec2:DescribeVpcs",
                "ec2:DescribeAvailabilityZones",
                "ec2:DescribeSecurityGroups",
                "workspaces:DescribeWorkspaces",
                "workspaces:DescribeWorkspaceDirectories",
                "workspaces:DescribeWorkspaceBundles",
                "workspaces:DescribeTags",
                "iam:ListAccountAliases",
                "iam:GetRole",
                "iam:GetRolePolicy"
            ],
            "Effect": "Allow",
            "Resource": "*"
        }
    ]
}
$ aws iam create-policy --policy-name my-policy --policy-document file://cloudonepolicy.json
{
    "Policy": {
        "PolicyName": "my-policy",
        "PolicyId": "<POLICY_ID>",
        "Arn": "arn:aws:iam::<AWS_ACCOUNT_ID>:policy/my-policy",
        "Path": "/",
        "DefaultVersionId": "v1",
        "AttachmentCount": 0,
        "PermissionsBoundaryUsageCount": 0,
        "IsAttachable": true,
        "CreateDate": "2020-04-08T19:18:33Z",
        "UpdateDate": "2020-04-08T19:18:33Z"
    }
}

步驟 2

from __future__ import print_function
import sys, warnings
import deepsecurity
from deepsecurity.rest import ApiException
from pprint import pprint

# Setup
if not sys.warnoptions:
    warnings.simplefilter("ignore")
configuration = deepsecurity.Configuration()
configuration.host = 'https://cloudone.trendmicro.com:443/api/'

# Authentication
configuration.api_key['api-secret-key'] = 'Your API Key'

# Initialization
# Set Any Required Values
api_instance = deepsecurity.AWSConnectorSettingsApi(deepsecurity.ApiClient(configuration))
api_version = 'v1'

try:
    api_response = api_instance.list_aws_connector_settings(api_version)
    pprint(api_response)
except ApiException as e:
    print("An exception occurred when calling AWSConnectorSettingsApi.list_aws_connector_settings: %s\n" % e)
{'external_id': '<WORKLOAD_SECURITY_EXTERNAL_ID>'}

步驟 3

{
  "Version": "2012-10-17",
  "Statement": {
    "Effect": "Allow",
    "Action": "sts:AssumeRole",
    "Principal": {"AWS": "<WORKLOAD_SECURITY_AWS_ACCOUNT_ID>"},
    "Condition": {"StringEquals": {"sts:ExternalId": "<WORKLOAD_SECURITY_EXTERNAL_ID>"}}
  }
}
$ aws iam create-role --role-name myrole --assume-role-policy-document file://cloudonerole.json
{
    "Role": {
        "Path": "/",
        "RoleName": "myrole",
        "RoleId": "<ROLE_ID>",
        "Arn": "arn:aws:iam::<AWS_ACCOUNT_ID>:role/myrole",
        "CreateDate": "2020-04-08T19:54:06Z",
        "AssumeRolePolicyDocument": {
            "Version": "2012-10-17",
            "Statement": {
                "Effect": "Allow",
                "Action": "sts:AssumeRole",
                "Principal": {
                    "AWS": "<WORKLOAD_SECURITY_AWS_ACCOUNT_ID>"
                },
                "Condition": {
                    "StringEquals": {
                        "sts:ExternalId": "<WORKLOAD_SECURITY_EXTERNAL_ID>"
                    }
                }
            }
        }
    }
}
aws iam attach-role-policy --role-name myrole --policy-arn arn:aws:iam::<AWS_ACCOUNT_ID>:policy/my-policy

使用 API/CLI 整合 Azure 帳戶

新增及保護 Azure 雲端工作負載

新增 Microsoft Azure 帳戶中的電腦

概觀

Workload Security 可連接並管理 Microsoft Azure 雲端服務所提供的電腦。新增 Azure 帳戶後,該帳戶中的 Azure 虛擬機器會匯入 Computers 清單。

在 Workload Security 主控台中,依序選取 Computers > Add > Add Azure Account。

優點

相較於透過 Computers > Add Computer 個別新增 Azure 虛擬機器,使用 Computers > Add Azure Account 新增 Azure 帳戶有以下優點:

  • Azure 虛擬機器清單的變更會自動反映在 Workload Security 主控台。例如,在 Azure 刪除執行個體後,對應項目也會自動從主控台消失。若使用 Computers > Add Computer,則必須手動刪除主控台中的舊項目。
  • 主控台會將 Azure 虛擬機器整理在各自的帳戶分支下,方便查看哪些項目已受保護。若未新增 Azure 帳戶,所有虛擬機器都會顯示在 Computers 的相同根層級。

詳細資訊

若先前已個別新增此 Azure 帳戶中的虛擬機器,新增帳戶後,這些虛擬機器會移到 Computers 樹狀結構中的帳戶節點下。

現行流程會使用具唯讀權限的 Microsoft Entra 應用程式連接 Azure 訂閱。無論採用哪一種認證方式,都必須提供:

  • Directory ID
  • Subscription ID
  • Application ID

接著選擇認證方式:

  • Password:在 Application Password 中輸入 client secret。
  • Certificate:上傳憑證與 Private Key;若私密金鑰受密碼保護,另提供 Private Key Password。

新增 Azure 帳戶不會自動指派策略或啟用既有 Agent。

參考文件(Azure)

← 上一單元:使用 AWS CLI 建立 Cross… 下一單元:建立 Azure 應用程式 →

Cloud One Workload Security:第 13 課-API 與雲端帳戶整合的進階操作 · 22 單元