[レポート] AWS CloudHSM を使用したセキュリティ目標の達成 #SEC305 #reinvent
はじめに
みなさま Xin chao !
本記事は、AWS re:Invent 2019 のセッション 「SEC305 Achieving security goals with AWS CloudHSM」 のレポートです。
セッション概要
セッション概要を和訳したものです。
この講演では、一般的なユースケースについて、AWS CloudHSM と他の AWS 暗号化サービスを比較します。 CloudHSM を使用して、スケーラブルで信頼性の高いワークロードを構築する方法について深く掘り下げ、パフォーマンス、エラー耐性、クロスリージョン冗長性のためにサービスを構成する方法を説明します。
スピーカー
- Avni Rambhia - Sr, Product Manager, Amazon Web Services
レポート
アジェンダ
- AWS 暗号化サービス : 最適なツールを選択する
- AWS Key Management Service (AWS KMS)
- AWS Certificate Manager Private Certificate Authority (ACM Private CA)
- AWS Secret Manager
- Code signing for AWS IoT
- AWS CloudHSM の基礎
- AWS CloudHSM の新機能
AWS での暗号化および署名に自分の鍵を安全に使用する
AWS KMS 非対称鍵のサポート
- RSA と 楕円曲線暗号化鍵 (EC keys)
- 公開鍵インフラストラクチャー (PKI), コード, ドキュメント, タイムスタンプ 等への署名
- 鍵交換, 知識証明等の暗号化
- AWS CLI でのサポート
- FIPS (Federal Information Processing Standards publication) 検証済み共有 HSM での鍵生成と保管
クロスリージョンレプリケーション
- サーバーサイド暗号化 : リージョン毎の暗号化を検討
- クライアントサイド暗号化 : AWS 暗号化 SDK でのキーリング (key rings) を検討
PKCS #11 または JCE でのアプリケーション構築の管理
- 選択肢 : AWS KMS + 暗号化 SDK, CloudHSM + トラディショナルな SDK
- AWS サービスとの統合, 管理・スケーラビリティ・アクセス, コスト, 鍵管理・鍵のローテーション等をもとに検討
AWS 暗号化 SDK
- クライアントサイド暗号化のフレームワークとデータフォーマット
- 認証済みエンベロープ暗号化ライブラリの提供
- AWS KMS または外部キーソースによる裏付け
- Java, C, Python 対応
- 別の言語で実装する場合の仕様が利用可能
- データキーキャッシングとキーリングをサポート
- Apache 2.0 ライセンス配下でのオープンソース
- 言語固有のの暗号プリミティブでの構築
内部サーバーまたはデバイスを認証するための公開鍵の作成
ルートと下位 CA
- FIPS-140-2 L3 検証済み共有 HSM での安全な鍵
- AWS IAM でのアクセスコントロール
ACM プライベート CA のメリット
- 安全ででマネージドのプライベート CA
- 証明書の一元管理
- 開発者の俊敏性の確保
- プライベート CA のカスタマイズの自由度
- 従量課金
Secret Manager
セキュリティとコンプライアンスの要件に合うように機密のライフサイクルを容易に管理可能
- 安全な一元管理
- IAM ポリシーによるきめ細かいアクセスコントロール
- 機密の安全なローテーション
- 監査とモニタリング
アプリケーションでの利用における機密のライフサイクルを管理する
CloudHSM におけるコントロールの側面
- アプリケーション開発
- アルゴリズムと鍵長
- ユーザー管理
- 特定のコンプライアンス
自分でコントロールする FIPS 140-2 L3 HSM に直接アクセスする
CloudHSM が管理タスクを簡素化する
- ユーザー管理
- アプリケーションへの統合
- バックアップ
- 高可用性
- プロビジョニング
- HSM メンテナンス
AWS CloudHSM が提供する
- VPC 内のシングルテナント FIPS 140-2 L3 認証済み HSM
- ゼロコンフィグによる高可用性とワンクリッククラスター拡張
- CloudWatch への監査ログと HSM メトリクス
- バックアップの耐久性
利用者が負うべき責任
- 開発および統合
- コンプライアンス
- ユーザーとクレデンシャル
- モニタリング
- 構成と管理
- パフォーマンス
- 鍵の管理
- スケーリング
AWS CloudHSM の利用開始
CloudHSM のコンセプト
- クラスター
- HSM
- バックアップ
- クローンされたクラスター
高スループットには、クラスター拡張を、アクティブキーの追加には、新しいクラスターを。
CloudHSM のユースケース
- SSL のオフロード
- マスターデータ暗号化鍵の保管
- 証明書への署名
- ドキュメントとコードへの署名
- 鍵交換の保護
- ブロックチェーン
AWS KMS を介した間接的な CloudHSM の利用
AWS KMS カスタムキーストアは AWS KMS インテグレーションによって、AWS CloudHSM のコントロールと統合。
- AWS KMS を介して ほとんどの AWS サービスで CloudHSM によって裏付けされたキーを使用する
- 1 つのデータ保護パターン, 複数のコンプライアンスレベル
CloudHSM の 2 つのクラスのアーキテクチャ
- 直接的なトランザクション
- エンベロープ暗号化
今年発表された新機能
- 非対称鍵によるセキュアな鍵交換のラッピング
- Keytool, Jarsigner, コードやドキュメントへの同様の署名ツールとのキーストアの互換性
- ブロックチェーンアプリケーション用の Secp256k1
- 安全なキーオフロードと転送のための、コントロールされた鍵のラッピング
- HMAC 鍵導出と CKA_DERIVE 属性のサポート
- AWS Lambda サーバーレスフレームワークアーキテクチャーとの互換性
- 古いバックアップの便利な除去を行うための、コンソールでのバックアップ管理
コスト管理のためのベストプラクティス
開発およびテストワークロード向け
- 課金の一時停止 : 稼働最終日に HSM インスタンスを削除する
- 作業の再会 : 中断したところから再開するために HSM インスタンスを作成する
本番環境向け
- 弾力性 : ワークロードの変化に応じてクラスターをスケールアップ / ダウン
- 最大限の活用 : クロスアカウントでの軽使用インスタンスの共用
- ストレージの最適化 : データキーをラップし使用していない時は外部に保存する
遊休ワークロード向け
- クラスターを 0 まで引き下げる; クラスターの削除
さいごに
以上 CloudHSM に関するセッションをお届けしました。 個人的には、まったく使用したことのないサービスなので、とても勉強になりました。