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
関連記事
-
IAMアイデンティティセンター(IIC)のList Assignment APIを確認しました
やりたいことは、IAMアイデンティティセンター(IIC)のユーザー名をキーにして …
-
AWS Transfer Family S3向けのSFTP対応サーバー
S3バケットは作成済です。 IAMロールの作成 [crayon-6790e180 …
-
Amazon EC2のスクリーンショットとは
ドキュメント見てたらAmazon EC2でスクリーンショットって機能があったので …
-
JAWS-UG関西IoT専門支部 ✕ SORACOM UG 関西「Wio LTE + 絶対圧センサーで遊ぼう!」ワークショップにいってきた
JAWS-UG関西IoT専門支部 ✕ SORACOM UG 関西「Wio LTE …
-
AWS Cost Explorerの履歴を38ヶ月とリソース別コストを見られるように設定しました
AWS Cost Explorer がより詳細な履歴データの提供を開始 知らなか …
-
Systems Manager デフォルトのホスト管理設定(Default Host Management Configuration)を確認しました
2023/2/17のアップデートAWS Systems Manager をアカウ …
-
AWS Lambda Layersのアーカイブファイルをダウンロードする
Cloud9にLambda Layersをダウンロードしたかったので検索してみた …
-
AWSマネジメントコンソールのマルチセッションサポート
AWSマネジメントコンソールにマルチセッションサポートが追加されましたので使いま …
-
API Gatewayから直接 DynamoDBに書き込む
やりたいこと WebページでOやXを押したときに、どっちを押したかをDynamo …
-
Former2で既存リソースのCloudFormationテンプレート出力を試してみた
JAWS DAYS 2020の資料確認のお手伝いを少ししてまして、「ゼロからはじ …