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
関連記事
-
Amazon Chimeのチャットを使ってみました
Amazon Chimeはビデオミーティングや配信したりというサービスですが、チ …
-
SIEM on Amazon OpenSearch Serviceを構築
このブログまわりのモニタリングをSIEM on Amazon OpenSearc …
-
前からできましたっけ??CloudWatch Logsの保持設定を複数まとめて設定
AWSの個人アカウントで要らなさそうなリソースの断捨離をしてます。 CloudW …
-
ヤマムギvol.23 Amazon RDS for MySQLとAmazon Aurora Serverlessの起動のデモをしました
ゴールデンウィーク毎朝デモ勉強会は終わったのですが、土曜日にやれるときがあれば、 …
-
AWS Lambdaで Unable to import module エラーが発生したときは
そもそも、Pycharmのナビゲーションペインでディレクトリごとドラッグ& …
-
ALBにWAFを関連付けて特定のヘッダー以外はブロックする
おかげさまで、ブログのアクセスも増えてきて、t3.nano EC2インスタンス単 …
-
EFSをEC2(Amazon Linux 2)からマウントする
Amazon Elastic File Systemが東京リージョンに来たことも …
-
AWSセルフマネージドAD環境にリモートデスクトップで接続
AWSクイックスタートのActive Directory Domain Serv …
-
EC2 セッションマネージャにEC2インスタンスの一覧から接続できるようになりました
EC2に接続する時に、どうしてもSSHクライアントから接続しないといけない場合を …
-
API Gatewayから直接 DynamoDBに書き込む
やりたいこと WebページでOやXを押したときに、どっちを押したかをDynamo …