セキュリティ、コンプライアンスの要件によってはデータの暗号化が必要な場合があります。データ転送やデータ保管時も暗号化の対象です。AWS は一部のサービスを除いてデータ保管時の暗号化はデフォルトで有効になっておらず、明示的に有効にする必要があります。
本記事では AWS の主要サービスにおけるデータ保管(ストレージ)の暗号化についてまとめてみました。
EC2
ここで EC2 のストレージとはインスタンスストア(エフェメラルストレージ)を指します。インスタンスストアとは EC2 自体が保有している一時ディスクで、揮発性であるため再起動するとデータを消失されます。C5d、G4、I3、I3en、F1、M5ad、M5d、p3dn.24xlarge、R5ad、R5d のインスタンスタイプは NVme インスタンスストアが提供されており、インスタンスのハードウェアモジュールに実装されている XTS-AES-256 ブロック暗号を使用して暗号化されます。
インスタンスのハードウェアモジュールに実装されている XTS-AES-256 ブロック暗号を使用して暗号化
EBS
EBS ボリュームは EC2 にアタッチされる永続化ストレージです。詳細は過去に書いた記事を参照ください。
EFS
EFS(Elastic File System)はマネージドの NFS ファイルシステムです。EFS はデータ保管時の暗号化と、伝送中のデータの暗号化に対応しています。EFS ファイルシステム作成時にデータ保管時の暗号化を有効にすることができ、ファイルシステムをマウントするときにデータ転送時の暗号化を有効にできます。暗号化キーは KMS で管理されます。
EFS でのデータの暗号化 - Amazon Elastic File System
Fargate
Fargate はコンテナ向けサーバーレスコンピューティングエンジンです。プラットフォームバージョン 1.4からエフェメラルストレージがデフォルトで暗号化されます。
S3
S3 はマネージドの分散型ストレージサービスです。詳細は過去に書いた記事を参照ください。
RDS
RDS はマネージドの RDB(リレーショナルデータベース)サービスです。EBSボリュームと同じく、暗号化キーは KMS によって管理されています。RDS インスタンスを暗号化すると、すべてのログ、バックアップ、スナップショットも暗号化されます。
Amazon RDS リソースの暗号化 - Amazon Relational Database Service
Redshift
Redshift はマネージドの DWH(データウェアハウス)サービスです。暗号化キーは KMS によって管理されています。Redshift クラスタを暗号化すると、そのスナップショットとシステムメタデータも暗号化されます。
Amazon Redshift データベース暗号化 - Amazon Redshift
以前は暗号化されていない Redshift クラスタを暗号化するには、暗号化済の Redshift クラスタへデータ移行するしかありませんでしたが、今は 1クリックで既存の Redshift クラスタを暗号化することができます。
非暗号化された Amazon Redshift クラスターが 1 クリックで暗号化可能に
DynamoDB
DynamoDB はマネージドの NoSQL サービスです。DynamoDB に保管されるすべてのデータはデフォルトで暗号化されています(無効にできません)。暗号化キーは KMS によって管理されています。
保管時の DynamoDB 暗号化の使用に関する注意事項 - Amazon DynamoDB
保管時の DynamoDB の暗号化 - Amazon DynamoDB
Amazon Elasticsearch Service
Amazon Elasticsearch Service(以降、Amazon ES)はマネージドの全文検索エンジンサービスです。Amazon ES は保管時のデータ暗号化およびノード間の暗号化をサポートしており、保管時のデータ暗号化を有効化すると、以下のリソースも合わせて暗号化されます。なお、T2 インスタンスは暗号化に対応していません。
- インデックス
- Elasticsearch ログ
- スワップファイル
- アプリケーションディレクトリのその他すべてのデータ
- 自動スナップショット
Amazon Elasticsearch Service の保管時のデータの暗号化 - Amazon Elasticsearch Service
Amazon Elasticsearch Service のノード間の暗号化 - Amazon Elasticsearch Service
ElastiCache
ElastiCache はマネージドの Redis および Memcached サービスです。Redis に限り、データ保管時の暗号化およびデータ転送中の暗号化はサポートされます。保管時のデータ暗号化を有効化すると、以下のリソースも合わせて暗号化されます。
- 同期、バックアップ、およびスワップオペレーション中のディスク
- Amazon S3 に保存されたバックアップ
暗号化がサポートされているのは以下のインスタンスファミリーなのでご注意を。
- R5、R4、R3
- M5、M4、M3
- T3、T2
Redis 用 ElastiCache での保管時の暗号化 - Redis 用 Amazon ElastiCache
Redis 用 ElastiCache 伝送中の暗号化 (TLS) - Redis 用 Amazon ElastiCache
最後に
本記事では主要 AWS サービスにおけるデータ暗号化についてまとめてみました。少々古いですが、AWS 上の暗号化について解説されている Blackbelt のスライドがありましたので転載します。AWS 全般における暗号化の概要やパフォーマンスについて取り上げられています。
www.slideshare.net