AWS KMS External Key Store(XKS)と Entrust CSP Vault(旧 KeyControl / nShield HSM 連携) を接続することで、暗号化マスター鍵(Root of Trust)を完全にオンプレミスまたは自社管理環境に保持したまま、AWS サービス(EBS, S3, RDS 等)のエンベロープ暗号化を実行できます。
1. 接続アーキテクチャ要件
XKS と外部キーストアプロバイダー(Entrust CSP Vault)間の接続には、主に2つの通信方式が存在します。本番環境ではセキュリティ要件に応じて AWS Direct Connect / VPN + VPC エンドポイントサービス(AWS PrivateLink) 経由の接続が推奨されます。
[ AWS Cloud (Region) ]
AWS KMS (XKS)
│
▼ (VPC エンドポイント)
AWS VPC ── (AWS PrivateLink / Direct Connect / VPN) ──> [ オンプレミス / データセンター ]
│
▼ (HTTPS / TLS 1.2 or 1.3)
[ ロードバランサー / リバースプロキシ ]
│
▼ (XKS Proxy API / HMAC-SHA256 署名検証)
[ Entrust CSP Vault 集約クラスタ ]
│ (PKCS#11 / Security World)
▼
[ Entrust nShield HSM ]
主な技術・インフラ要件
- プロトコル & 仕様:
- AWS KMS XKS Proxy 仕様に準拠した RESTful API(暗号化・復号、キーのステータス取得など)。
- トランスポート層: TLS 1.2 または TLS 1.3(パブリック認証局またはプライベート CA 証明書)。
- 認証・認可メカニズム:
- HMAC-SHA256 認証: AWS KMS と CSP Vault 間で事前共有された「Access Key ID」と「Secret Access Key」を使用して、各リクエストヘッダーに SigV4 形式の署名を付与・検証。
- ネットワーク & レイテンシ要件:
- タイムアウト値: AWS KMS XKS のリクエストタイムアウトは 250 ミリ秒(ms) 以内。ネットワーク往復および HSM 処理時間を含めてこの制約を満たす必要があります。
- 可用性・冗長性:
- CSP Vault ノード最低2台以上のクラスタ構成、および nShield HSM の Security World による鍵共有プーリング。
2. 具体的な設定・構築手順
接続設定は大きく「CSP Vault 側の準備」と「AWS KMS 側の設定」の4つのフェーズで実施します。
フェーズ 1: Entrust CSP Vault / nShield HSM 側の準備
- 暗号鍵の生成:
- CSP Vault 管理コンソールにて、AWS XKS 用の外部マスターキー(AES-256 対称鍵)を生成します。
- バックエンドの nShield HSM(Security World)で保護されるストレージプールに鍵を割り当てます。
- XKS Proxy インスタンスの有効化:
- CSP Vault の「Cloud Keys / KMS」設定で AWS XKS Proxy サービスを有効化します。
- 認証クレデンシャルの発行:
- AWS KMS との相互認証用として、XKS Proxy Credential(Access Key ID / Secret Access Key) を生成し、安全に退避します。
- 接続エンドポイントとパスの確認:
- リバースプロキシや LB 経由で公開される Base URL(例:
[https://xks.corp.example.com/kms/xks/v1](https://xks.corp.example.com/kms/xks/v1))および XKS キー ID(URN / 鍵識別子)を控えます。
- リバースプロキシや LB 経由で公開される Base URL(例:
フェーズ 2: ネットワークと PrivateLink の構成(VPC 接続の場合)
- AWS 側 VPC にターゲットグループ作成:
- オンプレミス側の CSP Vault / リバースプロキシの IP アドレスをターゲットに指定。
- VPC エンドポイントサービス(PrivateLink)の作成:
- Network Load Balancer(NLB)を作成し、エンドポイントサービスを構成。
- AWS KMS サービスプリンシパル(
kms.<region>.amazonaws.com)に対して接続許可ポリシーを付与します。
フェーズ 3: AWS KMS 側で External Key Store を作成・接続
- 外部キーストアの作成:
- AWS マネジメントコンソール(または AWS CLI:
aws kms create-custom-key-store)を開きます。 - キーストアタイプ:
External key store (XKS)を選択。 - 接続タイプ:
VPC endpoint service name(PrivateLink 経由)またはPublic endpointを指定。 - XKS Proxy エンドポイントパス: CSP Vault の Base URL を入力。
- XKS Proxy 認証情報: フェーズ 1 で取得した Access Key ID と Secret Access Key を入力。
- AWS マネジメントコンソール(または AWS CLI:
- キーストアの接続(Connect):
- 作成した外部キーストアを選択し、「Connect」を実行します。
- AWS KMS が自動的にヘルスチェックリクエスト(
GetHealthStatus/DescribeKey等)を CSP Vault に送信し、ステータスが Connected になることを確認します。
フェーズ 4: KMS キーの作成と動作確認
- XKS キーの作成:
- KMS 管理画面から「キーの作成」を選択。
- キータイプ:
対称 (Symmetric) - キーの使用方法:
暗号化/復号 - キーストア: 先ほど作成・接続した「外部キーストア(XKS)」を選択。
- 外部キー ID: フェーズ 1 で CSP Vault 側に登録した外部鍵 ID をマッピングします。
- 疎通・暗号化テスト:
- AWS CLI を使用してテストデータを暗号化・復号し、CSP Vault の監査ログ(Compliance Manager)にリクエストが正しく記録されているか検証します。
3. 設計・運用時の注意点
- 250ms タイムアウト超過の回避:
- 地理的に離れたリージョンからオンプレミスへ接続する場合、ネットワーク遅延のみで 200ms 近く消費することがあります。AWS リージョンと同一都市または低遅延な専用線(Direct Connect)内に CSP Vault / HSM を配置することが推奨されます。
- キルスイッチ機能(即時アクセス遮断):
- AWS 側の設定を変更せずとも、CSP Vault 側で該当の XKS クレデンシャルを無効化、または HSM 側の鍵アクセス権を剥奪するだけで、AWS 上の全暗号化データへのアクセスを即時に遮断できます。


