説明
ECS タスクの EFSVolumeConfiguration.TransitEncryption は、ECS ホストと EFS サーバー間で転送されるデータを保護します。DISABLED ではこの接続の転送時暗号化を使いません。EFS ファイルシステムの保存時暗号化を有効・無効にする設定ではありません。
想定される影響
- 転送時暗号化がないと、通信経路にアクセスできる攻撃者に対して、ファイル内容を保護する追加の手段が失われます。
- 暗号化された通信を要求するポリシーと設定が合わない場合、ボリュームのマウントやアプリケーションの起動に失敗することがあります。
対処方法
- サービスが実際に使うタスク定義と EFS ボリュームを確認し、
TransitEncryption: ENABLEDを指定してください。EFS の IAM 認証やアクセスポイントを使う場合、転送時暗号化が必要です。 - 対応する ECS 実行環境、EFS マウントターゲット、通信経路と権限を用意してください。新しいタスク定義のリビジョンへサービスを更新し、マウントとアプリケーションの読み書きを検証してください。
- ファイルシステムの保存時暗号化とアクセスポリシーは別途確認してください。転送時暗号化だけでは、許可済み利用者による過剰なファイルアクセスは制限できません。
例
既存の EFS ファイルシステムをマウントする EC2 ベースのタスク定義の構成案です。環境に合う EfsFileSystemId、マウントターゲット、ECS の実行容量、セキュリティグループを用意してください。タスクを実際に実行するサービス設定は含まれません。
転送時暗号化を無効化
yaml
AWSTemplateFormatVersion: "2010-09-09"
Parameters:
AppName:
Type: String
Default: simple-app
EfsFileSystemId:
Type: String
Resources:
cluster:
Type: AWS::ECS::Cluster
taskdefinition:
Type: AWS::ECS::TaskDefinition
Properties:
ContainerDefinitions:
- Name: !Ref AppName
MountPoints:
- SourceVolume: my-vol
ContainerPath: /var/www/my-vol
Image: amazon/amazon-ecs-sample
Memory: 128
Volumes:
- Name: my-vol
EFSVolumeConfiguration:
FilesystemId: !Ref EfsFileSystemId
TransitEncryption: DISABLED
ECS と EFS 間の転送時暗号化を無効にします。ファイルシステムの保存時暗号化は、この例だけでは決まりません。
転送時暗号化を有効化
yaml
AWSTemplateFormatVersion: "2010-09-09"
Parameters:
AppName:
Type: String
Default: simple-app
EfsFileSystemId:
Type: String
Resources:
cluster:
Type: AWS::ECS::Cluster
taskdefinition:
Type: AWS::ECS::TaskDefinition
Properties:
ContainerDefinitions:
- Name: !Ref AppName
MountPoints:
- SourceVolume: my-vol
ContainerPath: /var/www/my-vol
Image: amazon/amazon-ecs-sample
Memory: 128
Volumes:
- Name: my-vol
EFSVolumeConfiguration:
FilesystemId: !Ref EfsFileSystemId
TransitEncryption: ENABLED
EFS 接続に転送時暗号化を使用します。新しいリビジョンをデプロイし、必要なファイルアクセスを確認してください。