CloudWatchとNetwork Security管理インターフェイスを使用して、VPC内のNetwork Securityインスタンスを管理します。AWS CloudWatchは、Amazonが提供するツールで、Amazonアカウント内のインスタンスを管理することができます。CloudWatchと連携してNetwork
Security管理インターフェイスを使用し、Network Securityインスタンスをモニタします。
Network Security証明書を更新する
Network Security仮想Appliancesの証明書は2年後に期限切れになります。これにより、インスタンスがAWSで正常に見え、ネットワークの中断なしにトラフィックを通過していても、Network
Security管理インターフェイスで「通信していない」と表示される可能性があります。
![]() |
注意ホストインフラストラクチャで展開されるNetwork Security仮想Appliancesの証明書はトレンドマイクロによって管理され、手動での更新は必要ありません。
|
インスタンス証明書が期限切れになっているかどうかを確認するには、Network Security CLIを使用してシステムログ内の証明書エラーを検索できます。システムログ内の証明書エラーを検索するには、次のコマンドを使用します:
show log-file system search sslv3 alert certificate
![]() |
注意CLIにアクセスするには有効なSSHキーのペアが必要です。SSHキーにアクセスできなくなった場合は、新しいインスタンスをデプロイすることをお勧めします。
|
Network Security Virtual Applianceの証明書の有効期限が切れている場合は、次の手順に従って証明書を更新してください。
始める前に、以下にアクセスできることを確認してください:
- [A valid SSH key pair]: Virtual Applianceにアクセスするために使用されるSSHキーペア (.pemファイル)。SSHキーにアクセスできなくなった場合は、新しいインスタンスをデプロイすることをお勧めします。
- [A bastion host]: バスチオンホスト、VPN、その他の方法を使用してVirtual Applianceに接続できることを確認してください。バスチオンホストの作成について詳しくはこちら。
Network Security Virtual Applianceの証明書の有効期限が切れた場合は、次の手順に従って証明書を更新してください。
手順
- 期限切れのアプライアンスをNetwork Security管理インターフェイスで[Network → Appliances]に移動し、アクションの選択で[Unregister]を選択して登録解除します。
- セキュリティグループ設定を変更してSSHアクセスを許可します。直接インラインの仮想AppliancesにはENI0を使用し、Gateway Load Balancerの背後にあるAppliancesにはENI1を使用します。セキュリティグループの作成について詳しくはこちら。
注意
証明書を更新した後、再度SSHアクセスをブロックします。 - Network Securityアプライアンス展開トークンを生成します。アプライアンス展開トークンの作成については、詳細はこちらをご覧ください。
注意
2年以上前の一部のインスタンスはアプライアンス展開トークンをサポートしていない可能性があります。この場合、アプライアンス展開トークンの代わりにAPIキーを使用してください。Trend Cloud One APIキーの作成について詳しくはこちら。 - 次のコマンドを使用して、Network Security Virtual ApplianceのCLIにSSHで接続します:
ssh -i <pem-file> admin@<NSVA-mgmt-ENI-IP>
- 次のコマンドを入力してください:
cloudone unregister
cloudone register <appliance deployment token>
- Network Security管理インターフェイスの[Network → Appliances]ページでインスタンスが更新されたことを確認してください。
注意
インスタンスが更新されたことを確認した後、Policiesを再配布してください。
CloudWatch
CloudWatchは次のサービスを提供するAmazonのツールです:
- アプリケーション監視。
- お使いのNetwork Security展開のシステム全体の可視性。
- インスタンスを追加または削除するための自動スケーリングなどのリソース最適化。
- 運用の健康。
CloudWatchシステムを設定して、ログをS3バケットまたはSlackチャンネルに送信することもできます。Network Securityに使用しているEC2インスタンスには、AWS
IAM Roleをアタッチする必要があります。
CloudWatchの詳細については、AWS CloudWatch ドキュメントページを参照してください。
CloudWatchログを有効にする
![]() |
注意Network Security仮想Appliancesは、APIを使用してCloudWatchログを正常に構成するために、バージョン2020.10.0以降を使用する必要があります。
|
次のAPIを使用して、CloudWatchログ機能を環境で有効にし、サポートします。
CloudWatchログ設定をNetwork Security Virtual Applianceに構成するための管理インターフェイスを有効にするには:
POST /api/appliances/{id}/cloudwatchlogconfig
管理インターフェイスがNetwork Security Virtual ApplianceからCloudWatchログ設定を取得できるようにするには:
GET /api/appliances/{id}/cloudwatchlogconfig
これらのAPIの詳細については、APIリファレンスをご覧ください。
[CloudWatch log streaming using APIs scripts]
CloudWatchログストリーミングを構成するには、APIを使用する必要があります。いくつかの戦略的なスクリプトにより、この構成を効率化できます。
始める前に
続行する前に、以下のリソースを用意してください:
- バージョン2020.10.0以降のNetwork Security Virtual Applianceを少なくとも1つデプロイしてください。 [詳細はこちら](Network Security for AWS.md)。
- Trend Micro Cloud One APIキーを作成してAPI呼び出しを認証します。詳細はこちら。
- curlをダウンロードしてインストール。
- Bash用のjqをインストール。Bashスクリプトはjqを使用してJSONデータを解析します。インストールを確認するには、ターミナルから
jq --version
コマンドを実行してください。
1. 管理対象の仮想AppliancesのIDを特定する
CloudWatchログ設定の構成を開始する前に、管理対象の仮想AppliancesのIDを特定してください。これらのIDを使用して、AppliancesでCloudWatchログを有効または無効にします。
管理対象のすべてのAppliancesのリストを取得するには、次のコマンドを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サービスによって管理されている1つのNetwork Security Virtual Applianceがあり、そのアプライアンスのIDが
1
であることを示しています。2. アプライアンスでCloudWatchログ設定を構成する
次のアプライアンスログをCloudWatchにストリーミングするように有効化できます:
- システムログ
- 監査ログ
- ホストログ
- ipsAlertログ
- ipsBlock ログ
- 評判ブロックログ
- 評判アラートログ
- 隔離ログ
- SSL (TLS) ログ
次のcurlの例は、アプライアンスのipsBlockログをCloudWatchにストリーミングする方法を示しています。例:
- CloudWatchログGroup変数とストリーム変数の名前を指定するか、デフォルト値を受け入れることができます。この例では、ログGroup名に
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
が以前に指定したLog Group変数名と一致し、Stream名変数がデフォルト値ipsBlock_{instance_id}
を表示することを確認します。ログストリームが作成されると、この{instance_id}
値はVirtual Applianceの実際のIDに置き換えられます。[Complete configuration example]
次のAPIスクリプトは、管理対象のすべての仮想Appliancesで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でログを表示
Virtual ApplianceでCloudWatchログの設定が完了したら、AWS Management Consoleを使用してログを表示するために次の手順に従ってください。
手順
- AWS CloudWatchコンソールを開く: https://console.aws.amazon.com/cloudwatch/
- ナビゲーションペインから[Log groups]を選択します。
- 確認したいログGroupを選択してください。
トラブルシューティングのヒント
ステータスコードは一般的に3つのクラスに分類されます:
- 2xxコードはSuccessを示します
- 4xxコードはクライアントエラーを示します
- 5xxコードはサーバエラーを示します
実行するすべての前述のAPIのステータスコードは
200
である必要があります。クライアントまたはサーバのステータスコードが返された場合、次の可能性を考慮してください:
- [400 client code errors] – APIのPOSTメソッドに対して無効なペイロードを示します。エラーの詳細な説明については、APIのレスポンスコードの追加の詳細フィールドを確認してください。GETおよびSETペイロードAPIについて詳しく学んでください。
- [401 client code errors] – 無効なAPIキーを示し、
"Authorization Required"
メッセージを表示します。APIキーが正しいことを確認し、再度APIを呼び出してください。 - [503 server code errors] – 予定または予定外の停止により、サーバがリクエストを処理できなかったことを示します。停止が終了し、サーバが復旧するまでしばらく待ってから、再度APIを呼び出してください。