AWSのストレージ暗号化のセキュリティ強化について
2023年1月30日 富士通株式会社 公共デジタル事業本部 小沼 真実
はじめに
AWSをはじめとするクラウドサービスにおいて、データ管理はユーザ側の責任範囲となります。AWS Well-Architected Framework セキュリティ 設計原則として、データ分類は組織のデータを機密性レベルに基づいてカテゴリーに分類し、暗号化により認証されていないアクセスに対してデータが開示されてしまうことを防ぐ必要があることが書かれています。
また、「政府機関等のサイバーセキュリティ対策のための統一基準」(注1)にも記載がある通り、要機密情報を取り扱う情報システムは、データの暗号化を検討する必要があります。
AWSでデータを保管するストレージについては、目的ごとにいくつか種類があり、それぞれ暗号化の仕組みや実施方法が異なるため、本記事ではその暗号化の留意点を解説します。
また、システム構築時に設定した暗号化を運用フェーズでも維持していく必要があるため、暗号化を解除されないよう抑止する方法、暗号化の状況を監視する方法についても併せて解説します。
なお、AMIやRDSのほか、ネットワーク関連の暗号化については、本解説の対象外とします。
- (注1)政府機関等のサイバーセキュリティ対策のための統一基準(令和3年度版)
6.1 6.1.5 (1) (a) (ア) 要機密情報を取り扱う情報システムについては、暗号化を行う機能の必要性の有無を検討し、必要があると認めたときは、当該機能を設けること。
https://www.nisc.go.jp/pdf/policy/general/kijyunr3.pdf
ストレージの種類
AWSにはいくつかストレージサービスが存在するため、改めて以下の表に整理します。
サービス名 | 概要 | 種類 |
---|---|---|
Amazon Simple Storage Service (S3) | インターネットからアクセス可能なオブジェクトストレージサービス。 |
|
Amazon Elastic Block Store (EBS) | EC2にアタッチして使用するボリュームストレージサービス。 |
|
Amazon Elastic File System (EFS) | 複数のLinuxサーバからマウントして使用できるファイルシステムサービス。 | ― |
Amazon FSx for Windows File Server | 複数のWindowsサーバからマウントして使用できるファイルシステムサービス。 | ― |
S3の暗号化
S3 バケットでは、デフォルト暗号化を有効に設定することにより、すべてのオブジェクトがバケットに保存される際に暗号化されます。S3バケットのデフォルト暗号化を有効に設定すると、暗号化オプションなしでオブジェクトをアップロードした場合も、暗号化されて保存されます。S3を暗号化する方法は複数あるため、システムの事情に合わせて選択する必要があります。
サービス名 | 概要 | 種類 |
---|---|---|
サーバサイド暗号化(SSE:Server Side Encryption) | SSE-S3 |
|
SSE-KMS |
| |
SSE-C |
| |
クライアントサイド暗号化(CSE:Client Side Encryption) | CSE |
|
S3の暗号化(CSEとSSE)
また、Amazon S3 バケットポリシーで aws:SecureTransport 条件を使用して、HTTPS (TLS) を介した暗号化接続のみを許可することにより、潜在的な攻撃者が中間者攻撃または同様の攻撃を使用してネットワークトラフィックを盗聴または操作することを防止できます。
EBSの暗号化
EC2 インスタンス(EBS)は、ブートボリュームとデータボリュームの両方を暗号化することができます。暗号化された EBS ボリュームを作成し、サポートされるインスタンスタイプにアタッチする場合、以下のタイプのデータが暗号化されます。
- ボリューム内の保存データ
- ボリュームとインスタンスの間で移動されるすべてのデータ
- ボリュームから作成されたすべてのスナップショット
- スナップショットから作成されたすべてのボリューム
EC2 インスタンス(EBS)を暗号化するには、以下の方法で実施します。
暗号化手段 | 設定方法 |
---|---|
EC2から暗号化 |
|
デフォルト暗号化 |
|
また、EBSスナップショットの暗号化方法として、EBSをデフォルト暗号化している場合、スナップショットを取得するだけで暗号化されます。EBSをデフォルト暗号化してなかった場合でも、以下の手順で暗号化することができます。
- KMSキーを作成する
- スナップショット(暗号化されていない)を取得する
- スナップショットのコピー時に暗号化を実施する
- 暗号化したEBSボリュームが作成される
- 既存の暗号化されていないEBSをデタッチする
- 暗号化されたEBSをアタッチする
暗号化済みEBSへの入れ替え方法
EFS・FSxの暗号化
Amazon EFS は、ファイルシステムの作成時にのみ暗号化を設定することが可能であり、保存するデータに対し、AWS KMSを使用して管理されるキーを使用して暗号化されます。ファイルシステムの作成後に変更することはできません。
また、Amazon EFS マウントヘルパーを使用し、ファイルシステムをEC2にマウントする際、Transport Layer Security (TLS) を有効にすることで、Amazon EFSへ転送中のデータを暗号化することができます。
Amazon FSx for Windows File Server は、ファイルシステムの作成時に暗号化を設定することが可能であり、保存するデータに対し、AWS KMSを使用して管理されるキーを使用して暗号化されます。ファイルシステムの作成後に変更することはできません。
また、ファイルシステムをEC2に接続する際、SMB プロトコルによりAmazon FSx for Windows File Serverへの転送中のデータを自動的に暗号化することができます。
EFSとFSxの暗号化
暗号化解除の抑止方法
これまで、システム構築時に手動で暗号化する場合の設定方法について、解説してきました。
システム運用開始後は、一旦暗号化した設定を解除されることなく、維持していく必要があります。AWS OrganizationsのSCP(Service Control Policy)又はIAMポリシーにて、デフォルト暗号化を解除可能な権限を付与しないなど、以下の方法があります。
サービス名 | 抑止方法 |
---|---|
Amazon Simple Storage Service (S3) | 「DeleteBucketEncryption」のアクションを制限することにより、バケット暗号化を削除できないようにすることが可能。それには「PutEncryptionConfiguration」の実行権限も制限する必要があるが、その場合、その他にも影響する可能性がある。 |
Amazon Elastic Block Store (EBS) | 「DisableEbsEncryptionByDefault」のアクションを制限することにより、EBS 暗号化をデフォルト無効にできないようにすることが可能。 |
Amazon Elastic File System (EFS) | メトリクスフィルターにより、暗号化されていない ファイルシステムが作成されたことを検知するCloudWatch アラームを作成し、ファイルシステムとマウントターゲットを削除することが可能。
[ログメトリクスフィルターの定義]ページで[フィルターパターン] を選択し、以下のように入力する。 { ($.eventName = CreateFileSystem) && ($.responseElements.encrypted IS FALSE) } |
暗号化解除の抑止方法
暗号化状況の監視方法
同様にシステム運用開始後は、暗号化の設定が問題なく実施できているか監視していく必要があります。そのための手段として、以下の方法があります。
サービス名 | 監視方法 |
---|---|
Amazon Simple Storage Service (S3) | Amazon S3 インベントリで暗号化設定状況を監査し、EventBridge、またはCloudWatch アラームで検知する。 |
Amazon Elastic Block Store (EBS) | AWS Config で設定変更の情報を取得し、EventBridge、またはCloudWatch アラームで検知する。 |
Amazon Elastic File System (EFS) | AWS CloudTrail で設定変更の情報を取得し、AWS Security Hub にて暗号化設定状況を評価する。 |
Amazon FSx for Windows File Server |
暗号化状況の監視方法
暗号化の自動修復
もし、非暗号化のリソースが作成された場合でも、AWS Configのルールにより検知し、AWS Systems Manager Automationを利用して自動的にデフォルト暗号化を有効化することも可能です。
サービス名 | 設定方法 |
---|---|
Amazon Simple Storage Service (S3) |
|
Amazon Elastic Block Store (EBS) |
|
暗号化の自動修復
おわりに
AWSにおけるストレージの暗号化についてご紹介してきましたが、いかがでしょうか?
最初に述べましたが、AWSをはじめとするクラウドサービスにおいて、データ管理はユーザ側の責任範囲となります。AWSを個人的に利用するというならまだしも、利用者向けにサービスを提供するようなシステムを構築する場合、ストレージの暗号化は忘れずに実施しましょう。
最後までお読みいただき、ありがとうございました。