

# Amazon ECS の Fargate セキュリティのベストプラクティス
<a name="security-fargate"></a>

AWS Fargate を使用する際には、次のベストプラクティスを考慮することをお勧めします。その他のガイダンスについては、「[AWS Fargate のセキュリティ概要](https://d1.awsstatic.com/whitepapers/AWS_Fargate_Security_Overview_Whitepaper.pdf)」を参照してください。

## AWS KMS を使用して Fargate のエフェメラルストレージを暗号化する
<a name="security-fargate-ephemeral-storage-encryption"></a>

エフェメラルストレージは、 AWS KMS または独自のカスタマーマネージドキーで暗号化する必要があります。バージョン `1.4.0` 以降のプラットフォームを使用していて、Fargate でホストされているタスクの場合は、最低 20 GiB のエフェメラルストレージを受け取ります。詳細については、「[カスタマーマネージドキー (CMK)](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/fargate-storage-encryption.html)」を参照してください。エフェメラルストレージの総量は、タスク定義で `ephemeralStorage` パラメータを指定することによって、最大 200 GiB まで増やすことができます。2020 年 5 月 28 日以降に起動されたこのようなタスクでは、エフェメラルストレージは、Fargate によって管理される暗号化キーを使用して、AES-256 暗号化アルゴリズムによって暗号化されます。

詳細については、「[Amazon ECS タスクのストレージオプション](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_data_volumes.html)」を参照してください。

**例: Fargate プラットフォーム バージョン 1.4.0 で、エフェメラルストレージの暗号化を使用してタスクを起動する**

次のコマンドは、Fargate プラットフォームバージョン 1.4 でタスクを起動します。このタスクは Amazon ECS クラスターの一部として起動されるため、自動的に暗号化された 20 GiB のエフェメラルストレージが使用されます。

```
aws ecs run-task --cluster clustername \
  --task-definition taskdefinition:version \
  --count 1
  --launch-type "FARGATE" \
  --platform-version 1.4.0 \
  --network-configuration "awsvpcConfiguration={subnets=[subnetid],securityGroups=[securitygroupid]}" \ 
  --region region
```

## Fargate を使用したカーネルシステムコールトレーシングの SYS\$1PTRACE 機能
<a name="security-fargate-syscall-tracing"></a>

コンテナに追加または削除される Linux 機能のデフォルト設定は、Docker が行います。

Fargate で起動したタスクでは、`SYS_PTRACE` カーネル機能の追加のみがサポートされます。

Sysdig [Falco](https://github.com/falcosecurity/falco) プロジェクトでこの機能を使用する方法を示す以下の動画。

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/OYGKjmFeLqI/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/OYGKjmFeLqI)


前のビデオで説明したコードは、[こちら](https://github.com/paavan98pm/ecs-fargate-pv1.4-falco)の GitHub にあります。

## Fargate Runtime Monitoring で Amazon GuardDuty を使用する
<a name="fargate-runtime-monitoring"></a>

Amazon GuardDuty は、AWS 環境内のアカウント、コンテナ、ワークロード、データを保護する脅威検知サービスです。GuardDuty は、機械学習（ML）モデル、異常および脅威検出機能を使用して、さまざまなログソースとランタイムアクティビティを継続的に監視し、環境内の潜在的なセキュリティリスクと悪意のあるアクティビティを特定して優先順位を付けます。

GuardDuty のランタイムモニタリングは、AWS ログとネットワークアクティビティを継続的に監視して悪意のある動作や不正な動作を特定することで、Fargate で実行されているワークロードを保護します。ランタイムモニタリングは、軽量でフルマネージド型の GuardDuty セキュリティエージェントを使用して、ファイルアクセス、プロセス実行、ネットワーク接続などのホスト上動作を分析します。これは、Amazon EC2 インスタンスおよびコンテナワークロードでの権限の昇格、流出した認証情報の使用、悪意のある IP アドレスやドメインとの通信、マルウェアの存在などの問題に対応しています。詳細については、「*GuardDuty ユーザーガイド*」の「[GuardDuty ランタイムモニタリング](https://docs.aws.amazon.com/guardduty/latest/ug/runtime-monitoring.html)」を参照してください。