AWS 暗号化まとめ(S3 / EBS / RDS)
― SAAで差がつくポイントだけを整理する ―
AWS の暗号化は SAA の中でも「理解したつもりになりやすい」領域です。
特に S3 / EBS / RDS の暗号化方式の違いは、試験/実務でも判断を誤りやすいポイント。
本記事では、初心者向けの説明は省き、
すでに学習済みの人がつまずきやすい部分だけ を抽出して整理します。
1. AWS 暗号化の本質:Envelope Encryption
AWS の暗号化はすべて Envelope Encryption(包み暗号化) を使います。
[KMS] → GenerateDataKey(平文キー + 暗号化済みキー)
↓
[サービス] 平文データキーでデータを暗号化
↓
[サービス] 暗号化済みデータキー(Ciphertext)を保存
ポイント:
- KMS が暗号化するのは データそのものではなく「データキー」
- 実際の暗号化処理は S3 / EBS / RDS 側で行われる
- 復号時は「暗号化済みデータキー」を KMS に渡して復号する
📘 公式ドキュメント
https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html
2. S3 の暗号化(SSE-S3 / SSE-KMS / SSE-C)
2-1. S3 で使える暗号化方式一覧
| 方式 | 鍵管理者 | 主な用途 | 特徴 |
|---|---|---|---|
| SSE-S3(AES-256) | AWS | 標準的な暗号化 / コストを抑えたい | 最も簡単。追加コストなし。鍵管理不要 |
| SSE-KMS | AWS KMS | 監査要件 / 復号権限の細かい制御 | CloudTrail に KMS 呼び出しが残る。IAM + KMS ポリシーで制御可能 |
| SSE-C | ユーザー | 鍵をクラウドに置けない要件 | 鍵を毎回送信する必要あり。特殊用途 |
| クライアントサイド暗号化 | ユーザー | アプリ側で暗号化したい | S3 は暗号化済みデータを保存するだけ |
2-2. SSE-KMS の押さえるべきポイント
● KMS 呼び出しは S3 が内部キャッシュする
現在は S3 が KMS データキーをキャッシュするため、
KMS API 呼び出しは大幅に削減されています。
● 監査要件があるなら SSE-KMS
- CloudTrail に KMS 呼び出しが残る
- IAM + KMS ポリシーで復号権限を細かく制御できる
● SSE-C は例外的な選択肢
- 鍵をクラウドに置けない特殊要件のみ
- 試験ではほぼ出ない
📘 公式ドキュメント
https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html
https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html
3. EBS の暗号化(KMS)
3-1. EBS で使える暗号化方式一覧
| 方式 | 鍵管理者 | 主な用途 | 特徴 |
|---|---|---|---|
| EBS 暗号化(KMS) | AWS KMS | EC2 のディスク暗号化 / スナップショットも暗号化したい | Nitro によるハードウェアオフロードで性能劣化ほぼなし |
| 暗号化スナップショット | AWS KMS | 暗号化ボリュームを新規作成したい | 暗号化スナップショット → 復元で暗号化ボリュームを作成 |
| 暗号化コピー(スナップショット) | AWS KMS | 暗号化キーを変更したい / 別リージョンへ移行 | コピー時に KMS キーを変更可能 |
3-2. Nitro によるハードウェアオフロード
EBS 暗号化は 性能劣化がほぼない と言われますが、理由は以下の通り:
- Nitro 系インスタンスでは暗号化処理が ハードウェアオフロード
- 暗号化の有無で IOPS / スループットの上限は変わらない
3-3. スナップショットは自動で暗号化
- 暗号化された EBS → スナップショットも暗号化
- 暗号化スナップショット → 復元したボリュームも暗号化
3-4. 暗号化のオン/オフは後から変更不可
- 暗号化されていない EBS を後から暗号化することはできない
- 暗号化スナップショットを作成 → 復元で暗号化ボリュームを作る
📘 公式ドキュメント
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html
4. RDS の暗号化(KMS)
4-1. RDS で使える暗号化方式一覧
| 方式 | 鍵管理者 | 主な用途 | 特徴 |
|---|---|---|---|
| RDS 暗号化(KMS) | AWS KMS | DB インスタンスの暗号化 | バックアップ・スナップショット・リードレプリカも自動で暗号化 |
| 暗号化スナップショット | AWS KMS | 暗号化インスタンスへ移行したい | 暗号化スナップショット → 復元で暗号化インスタンスを作成 |
| 暗号化レプリカ | AWS KMS | 暗号化された読み取り専用レプリカが必要 | 元インスタンスが暗号化されている必要あり |
4-2. 暗号化 ON は既存インスタンスに後付けできない
ただし、以下の方法で移行可能:
- 暗号化スナップショットを作成
- 復元して暗号化インスタンスを作成
- アプリ側で切り替え
4-3. バックアップ・リードレプリカも自動で暗号化
暗号化インスタンスを使うと、関連リソースはすべて暗号化される。
📘 公式ドキュメント
https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.Encryption.html
5. KMS の暗号化方式(キータイプ)
5-1. KMS で使えるキータイプ一覧(用途付き)
| 種類 | 主な用途 | 特徴 |
|---|---|---|
| 対称キー(Symmetric) | S3 / EBS / RDS の暗号化 | Envelope Encryption に使用。SAAで最頻出 |
| 非対称キー(Asymmetric) | デジタル署名 / 公開鍵暗号 | 暗号化用途ではなく署名用途が中心 |
| HMAC キー | メッセージ認証 | データの完全性検証に使用 |
5-2. KMS キー削除(7〜30日の猶予期間)
- KMS キーは即削除できない
- 7〜30日後に削除される
- 削除すると暗号化データは復号不可
📘 公式ドキュメント
https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html
https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html
6. SAA 暗号化問題の「要件語」だけで判断する方法
| 要件語 | 選ぶべきもの |
|---|---|
| 監査ログが必要 | SSE-KMS |
| 復号操作を追跡したい | SSE-KMS |
| 鍵管理をAWSに任せたい | SSE-S3 |
| 鍵をクラウドに置けない | SSE-C |
| EC2ディスクを暗号化したい | EBS暗号化 |
| スナップショットも暗号化したい | EBS暗号化 |
| RDSを後から暗号化したい | 暗号化スナップショット → 復元 |
まとめ
- AWS の暗号化はすべて Envelope Encryption
- S3 の SSE-KMS は 監査性とアクセス制御 が最大のメリット
- EBS 暗号化は Nitro により性能劣化ほぼなし
- RDS 暗号化は 後付け不可だが、暗号化スナップショットで移行可能
- SAAでは「要件語」を拾うだけで正解が決まる問題が多い
最後に
暗号化は“なんとなく使う”領域ではなく、設計判断の核心です。
この記事が、皆さんのアーキテクチャ判断を一段引き上げる一助になれば幸いです。