このページのトピック
Network Security インスタンスの管理
CloudWatch および Network Security 管理インタフェースを使用して、VPCの Network Security インスタンスを管理します。AWS CloudWatch は、Amazonが提供するツールで、Amazonアカウント内のインスタンスを管理できます。 Network Security 管理インタフェースを CloudWatch と組み合わせて使用して、 Network Security インスタンスを監視します。
CloudWatch
CloudWatch は、次のサービスを提供するAmazonのツールです。
- アプリケーションの監視。
- Network Security 展開のシステム全体の可視。
- インスタンスの追加または削除のための自動スケーリングなどのリソースの最適化。
- 稼働状態。
CloudWatch システムを設定して、ログをS3 バケット またはSlackチャネルに送信することもできます。 Network Securityに使用するEC2インスタンスにAWS IAMロールをアタッチする必要があります。
CloudWatchの詳細については、 AWS CloudWatch のドキュメントページを参照してください。
CloudWatch ログを有効にする
注意
APIを使用して CloudWatch ログを正常に設定するには、 Network Security 仮想アプライアンスでバージョン2020.10.0以降を使用する必要があります。
次のAPIを使用して、環境で CloudWatch ログ機能を有効にしてサポートします。
管理インタフェースを有効にして Network Security 仮想アプライアンスに対して CloudWatch ログを設定するには
POST /api/appliances/{id}/cloudwatchlogconfig
管理インタフェースを有効にして Network Security 仮想アプライアンスから CloudWatch ログ設定を取得するには
GET /api/appliances/{id}/cloudwatchlogconfig
これらのAPIの詳細については、APIリファレンスを参照してください。
CloudWatch ログストリーミング(APIスクリプトを使用)
CloudWatch ログストリーミングを設定するには、APIを使用する必要があります。一部の戦略的スクリプトでは、この設定を効率化できます。
開始する前に
続行する前に、次のリソースがあることを確認してください。
- バージョン2020.10.0以降を使用して、少なくとも1つの Network Security 仮想アプライアンスを展開します。詳細を表示。
- APIコールを認証するための Trend Micro Cloud One APIキーを作成します。 詳細を表示。
- curlをダウンロードしてインストール します。
- jq for Bashをインストールします。Bashスクリプトはjqを使用してJSONデータを解析します。インストールを確認するには、ターミナルから
jq --version
コマンドを実行します。
1. 管理対象の仮想アプライアンスのIDを特定する
CloudWatch ログの設定を開始する前に、管理対象の仮想アプライアンスのIDを確認します。これらのIDを使用して、アプライアンスで CloudWatch ログを有効または無効にします。
すべての管理対象アプライアンスのリストを取得するには、curlに次のように入力します。 <YOUR_API_KEY>
を Trend Micro Cloud One APIキーに、 <YOUR_CLOUDONE_REGION>
をアカウントの Trend Micro Cloud One リージョンに置き換えます。
SECRET= "<YOUR_API_KEY>"
region="<YOUR_CLOUDONE_REGION>" # For example: "us-1"
url="https://network.${region}.cloudone.trendmicro.com/api/appliances"
curl --location --request GET "${url}" \
--header "Authorization: ApiKey ${SECRET}" \
--header "api-version: v1"
これにより、次のような出力が生成されます。
{
"next": null,
"totalCount": 1,
"appliances": [{
"ID": 1,
"instanceId": "i-xxxxxxxxxxxee0d24",
"provider": "AWS",
"hostName": "i-xxxxxxxxxxx0d24",
"tosVersion": "5.5.0.10625",
"dvVersion": "4.0.0.9442",
"auxDv": {
"Malware": {
"Version": null
}
},
"providerMetadata": [{
"key": "accountId",
"value": "XXXXXXXXXXXX"
}, {
"key": "availabilityZone",
"value": "sa-east-1a"
}, {
"key": "instanceType",
"value": "c5n.2xlarge"
}, {
"key": "region",
"value": "sa-east-1"
}, {
"key": "vpc",
"value": "vpc-xxxxxxxxxxxx06a00"
}]
}]
}
この出力は、 Trend Micro Cloud One サービスによって管理されている Network Security 仮想アプライアンスが1つあり、そのアプライアンスのIDが 1
であることを示しています。
このアプライアンスオブジェクト出力の構造の詳細 を参照してください。
2.アプライアンスで CloudWatch ログを設定する
次のアプライアンスログを CloudWatchにストリーミングできます。
- システムログ
- 監査ログ
- ホストログ
- ipsAlertログ
- ipsBlockログ
- reputationBlockログ
- レピュテーションアラートログ
- 隔離ログ
- SSL(TLS)ログ
次のcurlの例は、アプライアンスのipsBlockログを CloudWatchにストリーミングする方法を示しています。 この例では、
- CloudWatch Log Group変数とStream変数の名前を指定するか、初期設定値をそのまま使用できます。この例では、ロググループ名に
network-security-block-events
を指定していますが、初期設定のストリーム名を使用します。 <YOUR_CLOUDONE_REGION>
を、アカウントの Trend Micro Cloud One リージョンに置き換えます。<YOUR_API_KEY>
を Trend Micro Cloud One APIキーに置き換えます。<Appliance ID>
をアプライアンスのIDに置き換えます。
SECRET= "<YOUR_API_KEY>"
region="<YOUR_CLOUDONE_REGION>" # For example: "us-1"
applianceID="<Appliance ID>"
curl --location --request POST "https://network.${region}.cloudone.trendmicro.com/api/appliances/${applianceID}/cloudwatchlogconfig" \
--header "Authorization: ApiKey ${SECRET}" \
--header "api-version: v1" \
--header "Content-Type: application/json" \
--data-raw '{
"logTypes": [
{
"logGroupName": "network-security-block-events",
"logName": "ipsBlock",
"enable": true
}
]
}'
この出力の構造の詳細 を参照してください。
3. CloudWatch ログ設定を確認します。
次のcurlの例は、 CloudWatch ログ設定を確認する方法を示しています。 この例では、
<YOUR_CLOUDONE_REGION>
を、アカウントの Trend Micro Cloud One リージョンに置き換えます。<YOUR_API_KEY>
を Trend Micro Cloud One APIキーに置き換えます。<Appliance ID>
をアプライアンスのIDに置き換えます。
SECRET= "<YOUR_API_KEY>"
region="<YOUR_CLOUDONE_REGION>" # For example: "us-1"
applianceID="<Appliance ID>"
curl --location --request GET "https://network.${region}.cloudone.trendmicro.com/api/appliances/${applianceID}/cloudwatchlogconfig" \
--header "Authorization: ApiKey ${SECRET}" \
--header "api-version: v1"
次のようなAPI応答は、有効になっているログの種類がipsBlockのみであることを示しています。
{
"next": null,
"totalCount": null,
"logTypes": [
{
"logGroupName": "ips",
"logStreamName": "system_{instance_id}",
"logName": "system",
"enable": false
},
{
"logGroupName": "ips",
"logStreamName": "audit_{instance_id}",
"logName": "audit",
"enable": false
},
{
"logGroupName": "ips",
"logStreamName": "host_{instance_id}",
"logName": "host",
"enable": false
},
{
"logGroupName": "network-security-block-events",
"logStreamName": "ipsBlock_{instance_id}",
"logName": "ipsBlock",
"enable": true
},
{
"logGroupName": "ips",
"logStreamName": "ipsAlert_{instance_id}",
"logName": "ipsAlert",
"enable": false
},
{
"logGroupName": "ips",
"logStreamName": "reputationBlock_{instance_id}",
"logName": "reputationBlock",
"enable": false
},
{
"logGroupName": "ips",
"logStreamName": "reputationAlert_{instance_id}",
"logName": "reputationAlert",
"enable": false
},
{
"logGroupName": "ips",
"logStreamName": "quarantine_{instance_id}",
"logName": "quarantine",
"enable": false
}
{
"logGroupName": "network-security-block-events",
"logStreamName": "sslInspection_{instance_id}",
"logName": "sslInspection",
"enable": false
}
]
}
さらに、この応答により、 network-security-block-events
が前に指定したロググループ変数名と一致することが確認され、Stream name変数には初期設定値の ipsBlock_{instance_id}
が表示されます。ログストリームが作成されると、この {instance_id}
値は仮想アプライアンスの実際のIDに置き換えられます。
この出力の構造の詳細 を参照してください。
完全な設定例
次のAPIスクリプトにより、管理対象のすべての仮想アプライアンスでipsBlockログとipsAlertログが有効になります。このスクリプトを実行するには
-
前提条件が完了していることを確認します。
-
次のサンプルコードを
.sh
ファイル(例:cloudwatch-api-script.sh
)に貼り付け、<YOUR_API_KEY>
を Trend Micro Cloud One APIキーに、<YOUR_CLOUDONE_REGION>
を Trend Micro Cloud One アカウントのリージョンに置き換えて保存します。SECRET= "<YOUR_API_KEY>" region="<YOUR_CLOUDONE_REGION>" # For example: "us-1" url="https://network.${region}.cloudone.trendmicro.com/api/appliances" echo "Getting list of appliances" response=$(curl --location --request GET ${url} \ --header "Authorization: ApiKey ${SECRET}" \ --header "api-version: v1" \ --silent) parsed=$(echo "${response}" | jq '.appliances') len=$(echo "$parsed" | jq '. | length') echo "Number of appliances found: $len" if [[ ${len} == 0 ]]; then echo "Try deploying an appliance using CloudFormation Script." exit else appliance="$(echo "${parsed[@]}" | jq -r .[].ID)" for id in ${appliance} do echo "Configuring AWS CloudWatch log settings on the NSVA ID: $id" curl --location --request POST "${url}/${id}/cloudwatchlogconfig" \ --header "Authorization: ApiKey ${SECRET}" \ --header "api-version: v1" \ --header "Content-Type: application/json" \ --data-raw '{ "logTypes": [ { "logGroupName": "network-security-block-events", "logName": "ipsBlock", "enable": true }, { "logGroupName": "network-security-alert-events", "logName": "ipsAlert", "enable": true } ] }' done fi
-
次のいずれかの方法でスクリプトを実行します。
sh cloudwatch-api-script.sh
bash cloudwatch-api-script.sh
**4. CloudWatchでログを表示 **
仮想アプライアンスで CloudWatch ログが正常に設定されたら、次の手順に従ってAWSマネジメントコンソールを使用してログを表示します。
- AWS CloudWatch console: https://console.aws.amazon.com/cloudwatch/.を開きます。
- ナビゲーションペインでLog groupsを選択します。
- 確認するロググループを選択します。
トラブルシューティングのヒント
ステータスコードは一般に3つのクラスに分類されます。
- 2xx コードは成功を示します。
- 4xx コードはクライアントエラーを示します。
- 5xx コードは、サーバエラーを示します。
前述のすべてのAPIのステータスコードは 200
です。
クライアントまたはサーバのステータスコードが返された場合は、次の可能性を検討してください。
400
クライアントコードエラー – APIのPOSTメソッドのペイロードが無効であることを示します。「追加の詳細」フィールドのエラーの詳細な説明については、APIの応答コードを確認してください。 GET および SET ペイロードAPIの詳細を確認してください。401
クライアントコードエラー –無効なAPIキーを示し、"Authorization Required"
メッセージを表示します。APIキーが正しいことを確認し、APIの呼び出しを再度実行してください。503
サーバコードエラー –計画的または計画外の停止により、サーバで要求を処理できなかったことを示します。停止が終了してサーバが復元するまでしばらく待ってから、APIを再度呼び出してください。