AWS の暗号化オプションを整理してみる
こんにちは、現在私はAWS Developer Associate試験に向けて勉強しているのですが、
試験において度々暗号化に関する知識が問われます。
AWSで環境構築している際もあまり深く考えずに、ネットの落ちている情報を参考に暗号化を利用しているところがあるなと思い、今回はこの場を借りてAWSの暗号化に関して情報の整理をさせていただきます。
AWSの各種サービスにおいて暗号化を利用することができますが、
今回は一番取っ付きやすいであろうS3を例に暗号化オプションをまとめてみました。
1, サーバーサイド暗号化(3種類)
データがバケットにアップロードされる際に暗号化される方式。データが送信元(クライアント側)で暗号化はされないため、データが送信元からS3に到達する間はデータは暗号化されない。
■ SSE-S3
S3が管理するキーによるサーバ側で暗号化を行い、ユーザがキーの管理をしなくて良いのが特徴。キーの個別管理・監査要件などが無ければ一番簡単に利用できる暗号化。SSE-S3の利用には料金は発生しない。
■ SSE-KMS
KMSが管理しているキーを使ったサーバ側での暗号化。ユーザがKMSで管理するCMKで暗号化を行う。1年ごとに自動で暗号化キーをローテーションすることができるので、セキュリティ要件がある場合などにも利用できる。SSE-KMSの利用に料金が発生する。
■ SSE-C
ユーザ指定のキーによるサーバ側暗号化。オンプレミスで作成されたキーを利用する要件などがある場合に利用。暗号化・復号化に伴う料金は発生しない。
2, クライアントサイド暗号化(2種類)
データ送信元(クライアント側)で暗号化した上でS3へアップロードされる。
■ CSE-KMS
KMSで管理されたキーを利用してクライアント側で暗号化して上でS3へデータをアップロードする方式。SSE-KMSの利用に料金が発生する。
■ CSE-C
ユーザ指定のキーによるクライアント側での暗号化。オンプレミスで作成されたキーを利用する要件などがある場合に利用。暗号化・復号化に伴う料金は発生しない。
AWSの試験では上記の暗号化オプションの中で、与えられた要件に合う暗号化オプションを問われる問題が割と出てくる印象です。
これからAWS Developer Associate 及び Solution Architect Associateなどの試験を受ける予定がない方も、
「各オプションの1文字目のSはサーバーサイド(Server Side)のS!Cはクライアントサイド(Client Side)のC!」
くらいは覚えておいて損はないかと思います。
(さて、AWS Developer Associateを一発で合格することができるだろうか・・・・?)