AWS CloudHSM で専用ハードウェアによる暗号鍵管理を体験する
記事の「実践」を 1 項目ずつ進めるためのページです。AWS マネジメントコンソールで操作したら、右の一覧にチェックを入れてください。チェックはこのブラウザに保存されます。
準備 7 項目中 1 番目
前提条件
- リージョン:
ap-northeast-1(東京) - IAM ユーザーまたはロールに CloudHSM の操作権限があること
- 以下のリソースが作成済みであること
| リソース種別 | リソース名 | 用途 |
|---|---|---|
| VPC | cloudhsm-lab-vpc | クラスターを置く VPC |
| サブネット | ap-northeast-1a と ap-northeast-1c のプライベートサブネット | HSM を配置するサブネット(2 つの AZ) |
> コストに関する注意: CloudHSM クラスターに HSM を追加すると、時間単位で課金が発生します。本記事では HSM を追加せず、クラスターの作成までを行います(HSM が 0 台のクラスターには HSM の時間料金はかかりません)。
準備 7 項目中 2 番目
作成するリソース一覧
| リソース種別 | リソース名 | 用途 |
|---|---|---|
| CloudHSM クラスター | basic-cloudhsm-cluster | HSM クラスター |
| セキュリティグループ | CloudHSM が自動作成 | HSM へのアクセス制御 |
手順 7 項目中 3 番目
ステップ1: CloudHSM コンソールへの移動
- AWS マネジメントコンソールにログインし、リージョンが
ap-northeast-1(東京)であることを確認します - 上部の検索バーに
CloudHSMと入力し、表示された「CloudHSM」を選択します
手順 7 項目中 4 番目
ステップ2: クラスターの作成
- 「クラスターを作成」をクリックします。作成は「クラスター設定」→「バックアップ保持」→「タグ」→「確認」の 4 ステップです
- ステップ 1「クラスター設定」で以下を設定します
- VPC:
cloudhsm-lab-vpcを選択します - AZ とサブネット:
ap-northeast-1aとap-northeast-1cの欄で、それぞれのプライベートサブネットを選択します(サブネットは ID で表示されます。ap-northeast-1dの欄は空のままにします)。高可用性のため、少なくとも 2 つの AZ を選択することが推奨されます - HSM タイプ: デフォルトの
hsm2m.mediumのまま(東京リージョンでは、旧タイプのhsm1.mediumは選べません) - クラスターモード: デフォルトの「FIPS 以外」のまま。FIPS で検証されたキーとアルゴリズムだけに制限したい場合は「FIPS」を選びます
- ネットワークタイプ: デフォルトの
IPv4のまま - クラスターソース: デフォルトの「新しいクラスター」のまま
- VPC:
- 「続行」をクリックします。ステップ 2「バックアップ保持」は、デフォルト(90 日)のまま「続行」をクリックします
- ステップ 3「タグ」で「タグの追加」をクリックし、キー
Name、値basic-cloudhsm-clusterを入力して「続行」をクリックします - ステップ 4 で内容を確認し、「クラスターの作成」をクリックします
- ステータスが「作成中」から「未初期化」に変わるまで待ちます(今回は 1 分ほどでした)
手順 7 項目中 5 番目
ステップ3: クラスターの詳細確認
- クラスター ID をクリックして詳細画面を確認します
- 以下の情報が表示されます
- クラスター ID: クラスターの一意の識別子
- 状態: クラスターの状態(今は「未初期化」)
- VPC: クラスターが作成された VPC
- セキュリティグループ: CloudHSM が自動作成したセキュリティグループ
- バックアップ保持期間・HSM タイプ・モード・AZ とサブネット: 作成時に選んだ設定
- HSM を追加すると、ここにクラスター内の HSM の一覧も表示されるようになります
手順 7 項目中 6 番目
ステップ4: セキュリティグループの確認
- クラスター詳細画面の「セキュリティグループ」に表示されているセキュリティグループ ID(
cloudhsm-cluster-<クラスター ID>-sg)をクリックします。EC2 コンソールのセキュリティグループの画面が開きます - 「インバウンドルール」タブで、自動作成されたルールを確認します
- TCP ポート
2223〜2225を、送信元「このセキュリティグループ自身」から許可するルールが 1 本あります(アウトバウンドも同じく、自分自身へのポート2223〜2225だけです)
- TCP ポート
- つまり、このセキュリティグループが付いているもの同士でしか通信できません。アプリケーション(EC2 インスタンス)からクラスターに接続するには、このセキュリティグループを EC2 インスタンスにも付けるか、アプリケーション側のセキュリティグループからのインバウンドを追加します
手順 7 項目中 7 番目
ステップ5: HSM の初期化(概念の確認)
実際の運用では、クラスター作成後に以下の手順で初期化を行います。ここでは手順の概要を確認します。
1. CSR(証明書署名リクエスト)の取得: クラスターの CSR をダウンロードし、HSM の真正性を確認する 2. 自己署名証明書の作成: CSR に署名し、証明書を作成してクラスターに適用する 3. HSM の初期化: 最初の HSM をクラスターに追加する 4. Crypto Officer(CO)パスワードの設定: CloudHSM クライアントを使用して HSM のパスワードを設定する 5. Crypto User(CU)の作成: アプリケーションが使用するユーザーを作成する
CloudHSM のユーザー管理は IAM とは独立しており、HSM 内部で管理されます。主なユーザータイプは以下のとおりです。
| ユーザータイプ | 役割 |
|---|---|
| Precrypto Officer(PRECO) | 初期パスワード変更用の一時ユーザー |
| Crypto Officer(CO) | ユーザー管理(作成・削除・パスワード変更) |
| Crypto User(CU) | 暗号鍵の作成・削除・暗号化・復号の実行 |
| Appliance User(AU) | クラスター内の HSM 同期(AWS が管理) |