# AWS EC2 仮想マシンスキャンの設定

{% hint style="info" %}
この機能は〜で利用できます **Pro** と **Advanced** プランのみです。 [お問い合わせ](https://www.aikido.dev/contact) 詳細について。
{% endhint %}

### なぜ仮想マシンをスキャンする必要があるのですか？ <a href="#why-should-i-scan-my-virtual-machines" id="why-should-i-scan-my-virtual-machines"></a>

仮想マシンのスキャンでは、Aikido が仮想マシンのディスクをスキャンし、脆弱なパッケージや古いランタイムを検出します。

### はじめに <a href="#getting-started" id="getting-started"></a>

Amazon EC2 インスタンスのスキャンを有効にするには、まず AWS アカウントを Aikido に接続します。これを行うには、で説明されている手順に従ってください。 [この記事](https://help.aikido.dev/docs/docs-ja/cloud-scanning/connect-your-cloud/aws/connect-aws-account-to-aikido).

クラウドが接続されると、詳細ページに「Virtual Machines」というタブが表示されます。

![AWS EC2 インスタンスの VM スキャンを有効化して、オープンソース依存関係の問題を検出します。](https://help.aikido.dev/_assets/542ffe4e621a/ucarecdn-5009bb66-9945-408a-a7c5-37fd3c8bc531.png)

「Set Up VM Scanning」をクリックすると、次のページに移動します。

![IAM ロールとポリシーの作成手順を含む AWS EC2 ボリュームスキャンのセットアップ。](https://help.aikido.dev/_assets/5c677687a869/ucarecdn-c0f27d23-d8bc-4379-85d1-d6b3ac77d3ab.png)

このページでは、スキャン対象にしたい仮想マシンのアカウントに適用する必要がある AWS CloudFormation テンプレートを使用して、仮想マシンのスキャンを設定できます。CloudFormation テンプレートは、AWS アカウントへのアクセスが制限されたロールを作成します。重要なのは、 **維持** ロールからの権限を維持することです。これが Aikido がスキャンを実行するために必要な最小限だからです。

CloudFormation リソースが作成されると、作成された AWS 上のロールの ARN が表示されます。それをコピーして、セットアップ画面の入力欄に追加してください。「保存」をクリックすると、Aikido は直ちにアカウント内の仮想マシンの検出を開始し、それらをスキャンします。

### VM のグループ化 <a href="#vm-grouping" id="vm-grouping"></a>

スキャン効率を最適化するため、Aikido は特定の EC2 インスタンスをグループ化し、各グループから 1 つのインスタンスのみをスキャンします。グループ化は次のとおりです:

* **Auto Scaling Group（ASG）**: 同じ AWS Auto Scaling Group に属するすべての EC2 インスタンスは、Aikido では 1 つの VM グループとして表示されます。VM グループ名は ASG 名と一致します。
* **Karpenter ノードプール**: EKS クラスター内で同じ Karpenter ノードプールに属するすべての EC2 インスタンスは、まとめてグループ化されます。VM グループ名は、Karpenter が使用するインスタンス名のパターンと一致します。
* **グループ化なし**: ASG または Karpenter ノードプールの一部ではない EC2 インスタンスは、独立した VM として扱われ、個別にスキャンされます。

### 仕組み <a href="#how-it-works" id="how-it-works"></a>

全体の流れは次のとおりです。

{% stepper %}
{% step %}
Aikido は、スキャンされたインスタンスに接続されている各ボリュームのスナップショットを作成します。

{% hint style="info" %}
Aikido はこれらのスナップショットにタグを付けるため、付与する削除権限は Aikido が作成したスナップショットにのみ適用されます。
{% endhint %}
{% endstep %}

{% step %}
Aikido は、スナップショットをボリュームやインスタンスにアタッチすることなく、EBS の直接 API を通じてスナップショットのデータを直接読み取ります。
{% endstep %}

{% step %}
スキャンが完了すると、Aikido は最新のスナップショットを VM グループごとに 1 つ（たとえば Auto Scaling Group ごとに 1 つ）保持し、古いものは削除します。

{% hint style="info" %}
EBS スナップショットは増分方式なので、最後のスナップショットを保持しておくと、AWS が変更されたブロックだけをコピーするため、次回のスキャンのスナップショットをはるかに速く作成できます。
{% endhint %}
{% endstep %}
{% endstepper %}

### カスタムスナップショットタグ <a href="#custom-snapshot-tags" id="custom-snapshot-tags"></a>

Aikido が自動的に追加するタグに加えて、スキャン中に Aikido が作成する EBS スナップショットに適用する独自のカスタムタグを設定できます。これは、コスト配分、コンプライアンス、または組織で適用したいその他のタグ付けポリシーに役立ちます。

これらを管理するには、 [**仮想マシン** 設定ページ](https://app.aikido.dev/virtual-machines/settings)を入力してから **編集** 以下の **AWS スナップショットタグ** でキーと値のペアを追加、更新、または削除します。新しいタグは、その時点以降に作成されるスナップショットに適用されます。

### どの VM をスキャンするかの管理 <a href="#managing-which-vms-are-scanned" id="managing-which-vms-are-scanned"></a>

Aikido は [VM スキャンの包含/除外モデルをサポートしています](https://help.aikido.dev/docs/docs-ja/virtual-machine-scanning/aws/managing-which-vms-are-scanned).

### スキャン頻度

毎日、スキャン有効なすべての VM の 10% が再スキャンされるため、平均すると各 VM は 10 日に 1 回スキャンされます。
