会員登録すると
学習することができます。
会員登録する(無料)
登録済みの方はこちら
ログイン

暗号化と秘密情報 ― KMSのエンベロープ暗号化、Secrets ManagerとParameter Store

目安学習時間 25分

課題

全問正解でレクチャー完了です。

【問題1】

S3 のオブジェクトの暗号化で、「誰がいつ鍵を使ったかを記録し、鍵を使える人をポリシーで絞りたい」という条件に合う方式はどれですか。

[選択肢]

【問題2】

10 MB のファイルを、KMS の鍵を使って暗号化したいとき、適切な方法はどれですか。

[選択肢]
会員登録すると
学習することができます。
会員登録する(無料)

学ぶ目的

保存時と転送時の暗号化

データは、置いてあるとき(保存時)と、送っているとき(転送時)の両方で守ります。転送時は TLS(HTTPS)で暗号化します。保存時は、S3・DynamoDB・EBS などの暗号化の機能を使います。

KMS とエンベロープ暗号化

AWS KMS は、暗号化の鍵を作って守るサービスです。KMS の鍵そのものは KMS の外に出ません。KMS の Encrypt で直接暗号化できるのは 4,096 バイトまでなので、大きなデータはエンベロープ暗号化で守ります。
1. GenerateDataKey で、データキーの平文と、KMS の鍵で暗号化したデータキーを受け取る
2. 平文のデータキーでデータを暗号化し、平文のデータキーはすぐ消す
3. 暗号化したデータキーを、データと一緒に保存する
4. 読むときは、暗号化したデータキーを KMS の Decrypt で戻し、データを復号する

S3 の暗号化の方式

  • SSE-S3 … S3 が管理する鍵。既定で使われる
  • SSE-KMS … KMS の鍵。誰が鍵を使ったかが CloudTrail に残り、鍵のポリシーで使える人を絞れる
  • SSE-C … 利用者がリクエストごとに鍵を渡す
  • クライアント側の暗号化 … アプリが暗号化してから送る

秘密情報の置き場所

  • Secrets Manager … データベースのパスワードなどを置き、Lambda を使った自動のローテーション(定期的な入れ替え)ができる
  • Systems Manager Parameter Store … 設定の値を階層の名前で置く。SecureString にすると KMS で暗号化される

パスワードは、コードにも環境変数の平文にも置かず、実行のときに取り出します。証明書は AWS Certificate Manager(ACM)で発行し、更新を任せられます。

このレクチャーで学ぶこと

  • 保存時と転送時の暗号化
  • KMS のエンベロープ暗号化の手順
  • S3 の暗号化の方式の違い
  • Secrets Manager と Parameter Store の使い分け

質問

まだ質問は投稿されていません。

質問投稿

ログイン後に質問の投稿ができます。