0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

aws kms encryptとaws kms generate-data-keyの使い分け

0
Posted at

AWS KMS を使った 2つの暗号化方式の違いを、用途・仕組み・制約の観点で整理します。


① aws kms encrypt(直接暗号化)

仕組み

  • KMS に 平文データを直接渡す
  • KMS が CMK(KMSキー)で暗号化して暗号文を返す

制約

  • 暗号化できるデータサイズは最大 4KB(※実質 2KB 程度と理解されがち)

    • API上限は 4KB だが、メタデータ等を考慮して「小さなデータ向け」

特徴

  • シンプル
  • KMS API コール毎に KMS 内で暗号化処理
  • 大量・大容量データには不向き

主な用途

  • パスワード
  • トークン
  • 設定値(シークレット)
  • 小さな鍵情報

② aws kms generate-data-key(Envelope 暗号化)

仕組み

  1. KMS が データキー(平文+暗号化済み)を生成
  2. 平文データキーで ローカル(アプリ側)暗号化
  3. 暗号化済みデータキーだけを保存
  4. 復号時は Decrypt でデータキーを復号

制約

  • データサイズ制限なし(実質無制限)
  • KMS は データキーのみを保護

特徴

  • 高性能(大容量データに向く)
  • KMS API コール回数を最小化
  • AWS 推奨方式

主な用途

  • ファイル
  • オブジェクトストレージ(S3)
  • DBデータ
  • バックアップ

両者の比較(一覧)

観点 kms encrypt generate-data-key(Envelope)
暗号化対象 データそのもの データキー
サイズ制限 最大 4KB なし
暗号化処理 KMS 内 アプリ側
パフォーマンス 低め 高い
KMS API 回数 データ毎 キー生成時のみ
推奨用途 シークレット 大容量データ

どちらを選ぶべき?

  • 2KB以下の小さなデータ
    → kms encrypt
  • ファイル・ログ・大量データ
    → generate-data-key(Envelope 暗号化)
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?