AWS における暗号化と証明書管理

AWS へのアプリケーションデプロイ

Dunieski Otano

Amazon Web Services Solutions Architect

紛失したバックアップディスク

  • バックアップドライブが輸送中に紛失
  • 保存時に暗号化されていれば、盗んでも意味がない
  • TLS はネットワーク上のデータに同じ保護を提供する

保存時暗号化を表す南京錠で保護されたディスクと、保護されていないディスクの比較

AWS へのアプリケーションデプロイ

保存時暗号化と転送時暗号化

2パネル比較:左はKMSキーで保護されたRDSとS3アイコンによる保存時暗号化、右はクライアントからLambdaへのTLSトンネルによる転送時暗号化

  • 保存時:ディスクに保存されたデータを暗号化
  • 保存時はKMSなどのキーを使用
  • 転送時:ネットワーク上を移動するデータを暗号化
  • 転送時はTLS証明書を使用
AWS へのアプリケーションデプロイ

クライアントサイドとサーバーサイドの暗号化


サーバーサイド

  • データを受信した後、サービスが暗号化します
  • 最もシンプルな方法で、通常 KMS キーを使って AWS が管理します

クライアントサイド

  • コードから送信する前にデータを暗号化します
  • サービスには暗号文のみが保存され、平文は一切保存されません
AWS へのアプリケーションデプロイ

パブリック証明書とプライベート証明書

  • ACM:独自ドメイン向けの無料パブリック TLS 証明書
  • ロードバランサー、CloudFront、API Gateway で利用可能
  • AWS Private CA:内部用プライベート証明書を発行
  • Private CA は内部サービスやmTLSを支える

左:ロードバランサーとCloudFrontでのACM無料パブリック証明書、右:内部サービス間mTLS向けPrivate CA証明書

AWS へのアプリケーションデプロイ

KMS キーとローテーション

  • AWS マネージドキー:AWS が作成・ローテーション
  • カスタマーマネージドキー:ポリシーとローテーションを自分で管理
  • 自動ローテーション:毎年新しいキーマテリアルを生成、キー ID は変わらない
  • アプリケーションは同じキー参照を使い続けます

KMSキーの種類の比較:左は自動ローテーション付きAWSマネージドキー、右は設定可能なキーポリシーと年次ローテーションタイムラインを持つカスタマーマネージドキー

AWS へのアプリケーションデプロイ

クロスアカウントのキーアクセス

クロスアカウントKMSキーアクセス:アカウントAのキーにアカウントBへの使用許可を持つキーポリシーを設定し、アカウントBはキーマテリアルをKMS外に出さずに暗号化・復号を実行

  • キーポリシーで KMS キーの使用者を制御します
  • ポリシーを通じて別のアカウントにキーの使用を許可できます
  • キーは KMS の外に出ることはありません
  • アカウントをまたいだ暗号化リソースの共有が可能になります
AWS へのアプリケーションデプロイ

暗号化と証明書をまとめる

  • 転送時:ACM 証明書がエッジで TLS を終端
  • 保存時:KMS キーが保存データを暗号化
  • キーは自動ローテーション、証明書は自動更新
  • ネットワークからディスクまで多層的に保護

多層暗号化スタック:エッジで転送時TLSを終端するACM証明書と保存時データを暗号化するKMSキー、両者の自動年次更新・ローテーション

AWS へのアプリケーションデプロイ

練習しましょう!

AWS へのアプリケーションデプロイ

Preparing Video For Download...