AWS CloudHSMを起動してみました
2021/07/30
なかなか触る機会のないサービス、CloudHSM。
起動してみました。
手順はユーザーガイドAWS CloudHSM の使用開始を参照しました。
目次
CloudHSMクラスターの作成
[クラスターの作成]からスタートしました。

VPCとAZを指定しました。
本番では複数のAZを指定するべきですが、今回はお試しなので1つだけ。

バックアップは消すからなんでもいいのですが、一応最低の7日にしました。
クライアントEC2の起動

HSMクライアント用のEC2インスタンスを起動しました。
IAMロールにSSMManagedInstanceCoreを設定しているので、キーペアなし、セキュリティグループはVPCのデフォルトにしました。

CloudHSMによってセキュリティグループができましたので、それをEC2インスタンスに追加しました。
セキュリティグループはインバウンド、アウトバウンドともに自分自身がソースで、ポートは2223-2225が許可されていました。
AWS CloudHSM クライアントとコマンドラインツールのインストール
EC2にセッションマネージャで接続して実行しました。
|
1 2 3 4 |
$ cd $ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL6/cloudhsm-client-latest.el6.x86_64.rpm $ sudo yum install ./cloudhsm-client-latest.el6.x86_64.rpm |
HSM作成

CloudHSMクラスターがとりあえずできたみたいなので、選択して[アクション]-[初期化]を選択しました。
クラスターの初期化

4つの証明書ダウンロードリンクから全部ダウンロードしました。
ローカルのmacOSでプライベートキーを作成しました。
|
1 2 |
$ openssl genrsa -aes256 -out customerCA.key 2048 |
自己証明書の作成
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
$ openssl req -new -x509 -days 3652 -key customerCA.key -out customerCA.crt Enter pass phrase for customerCA.key: You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) []:JP State or Province Name (full name) []:Some-State Locality Name (eg, city) []: Organization Name (eg, company) []:Yamamugi Organizational Unit Name (eg, section) []: Common Name (eg, fully qualified host name) []: Email Address []: |
クラスターのCSRに署名
|
1 2 3 4 5 6 |
$ openssl x509 -req -days 3652 -in cluster-n4lndvgamwo_ClusterCsr.csr \ -CA customerCA.crt \ -CAkey customerCA.key \ -CAcreateserial \ -out cluster-n4lndvgamwo_CustomerHsmCertificate.crt |

指定どおりアップロードして、[アップロードと初期化]を実行しました。
クラスターの初期化とアクティブ化
customerCA.crtを/opt/cloudhsm/etc/customerCA.crtにコピーしなければ、なので、適切なS3バケットにアップロードしてEC2からダウンロード。
コピー終了後次のコマンドを実行しました。
172.31.14.232はHSMのIPアドレスです。
|
1 2 3 4 |
$ sudo /opt/cloudhsm/bin/configure -a 172.31.14.232 Updating server config in /opt/cloudhsm/etc/cloudhsm_client.cfg Updating server config in /opt/cloudhsm/etc/cloudhsm_mgmt_util.cfg |
アクティブ化は次のコマンドを実行しました。
|
1 2 3 4 5 6 7 8 9 10 11 |
$ /opt/cloudhsm/bin/cloudhsm_mgmt_util /opt/cloudhsm/etc/cloudhsm_mgmt_util.cfg Ignoring E2E enable flag in the configuration file Connecting to the server(s), it may take time depending on the server(s) load, please wait... Connecting to server '172.31.14.232': hostname '172.31.14.232', port 2225... Connected to server '172.31.14.232': hostname '172.31.14.232', port 2225. E2E enabled on server 0(172.31.14.232) aws-cloudhsm> |
listUsersコマンドを実行してみました。
|
1 2 3 4 5 6 7 8 9 |
aws-cloudhsm>listUsers Users on server 0(172.31.14.232): Number of users found:2 User Id User Type User Name MofnPubKey LoginFailureCnt2FA 1 PRECO admin NO 0 NO 2 AU app_user NO 0 NO |
PRECO ユーザーとして HSM にログインしました。
|
1 2 3 |
aws-cloudhsm>loginHSM PRECO admin password loginHSM success on server 0(172.31.14.232) |
パスワードを変更しました。
|
1 2 3 4 5 6 7 8 9 10 11 12 |
aws-cloudhsm>changePswd PRECO admin password *************************CAUTION******************************** This is a CRITICAL operation, should be done on all nodes in the cluster. AWS does NOT synchronize these changes automatically with the nodes on which this operation is not executed or failed, please ensure this operation is executed on all nodes in the cluster. **************************************************************** Do you want to continue(y/n)?y Changing password for admin(PRECO) on 1 nodes changePswd success on server 0(172.31.14.232) |
User TypeがPRECOからCOに変わりました。
|
1 2 3 4 5 6 7 8 |
aws-cloudhsm>listUsers Users on server 0(172.31.14.232): Number of users found:2 User Id User Type User Name MofnPubKey LoginFailureCnt2FA 1 CO admin NO 0 NO 2 AU app_user NO 0 NO |
初期設定はできたようです。
カスタムキーストアの作成をしてみる
せっかく環境があるので、KMSのカスタムキーストアを作ってみました。
CloudHsmClusterInvalidConfigurationException – CloudHSM cluster must contain active HSMs in at least two Availability Zones.
こんなメッセージで失敗しました。
AZが1つだとダメみたいです。
また今度機会があれば。
削除
HSMを削除しました。
クラスターを削除しました。
クライアント用のEC2も削除しました。
バックアップもと思ったら、7日間削除が保留されるそうです。
さすがHSM。守られてますね。
最後までお読みいただきましてありがとうございました!
「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。
「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。
「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。
「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。
「AWSではじめるLinux入門ガイド」という本を書きました。
開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
ad
ad
関連記事
-
-
slackのbotをAWS Lambda(Python)+API Gatewayで構築
slackで投稿した内容に応じて返信したり調べ物したりしてくれるbotですが、こ …
-
-
Amazon Rekognitionでイベント参加者の顔写真を解析して似ている人ランキングをその場で作る
2017/9/21に開催されたAWS Cloud Roadshow 2017 大 …
-
-
5分でAlexaスキルを作る
「JAWS-UG Osaka 第22回勉強会 東西の中の人が語る!!! Micr …
-
-
AWS Database Migration Service(DMS)チュートリアル
公式ユーザーガイドのAWS Database Migration Service …
-
-
AWS Cloud9でJavaサンプルを実行する
リモートで共有開発ができるCloud9便利ですね。 Cloud9でJavaのサン …
-
-
Amazon Keyspacesのキースペースを作成してみました
Amazon Keyspaces(Apache Cassandra互換のマネージ …
-
-
EC2 Amazon LinuxのNginx+RDS MySQLにレンタルWebサーバーからWordPressを移設する(手順整理版)
ブログサイト(WordPress)をレンタルWebサーバーからAWSに移設する事 …
-
-
AWS LambdaでS3 Select
RDSスナップショットをS3にエクスポートした、Parquetフォーマットのデー …
-
-
IAMアクセス許可の境界でIAMロールの権限を制御する
IAMユーザー自身の権限はIAMポリシーで制御できますが、IAMユーザーにIAM …
-
-
AWS Glueチュートリアル
AWS Glueのマネジメントコンソールの左ペインの一番下にチュートリアルがあり …








