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認定クラウドプラクティショナー 改訂第2版」という本を書きました。
「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。
「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。
「AWSではじめるLinux入門ガイド」という本を書きました。
開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
ad
ad
関連記事
-
ヤマムギ vol.10 (AWS)EC2モニタリングハンズオン 手順
このブログは2020/5/6に開催しました、「ヤマムギ vol.10 (AWS) …
-
AWSアカウントでルートユーザーが使用されたときにTeamsへ投稿する
Organizations組織内のアカウントのいずれかでルートユーザーが使用され …
-
CodeCommitリポジトリの復号化のCloudTrailログ確認
ユーザーガイドAWS Key Management Service と AWS …
-
Amazon SES(Simple Email Service)でメール受信時のアクションでLambdaを実行して渡されるデータを見てみる
Amazon SESで受信したメールをS3に保存して、S3のトリガーでLambd …
-
AWS GlueでAurora JDBC接続でS3へのジョブを実行
Aurora Serverless v1のMySQLタイプデータベースからS3へ …
-
Amazon EC2 Auto Scalingのライフサイクルフック
EC2 Auto Scalingにライフサイクルフックという機能があります。 ス …
-
T3.nanoで仮想メモリ割当をユーザーデータで実行する
T3.nanoはメモリがだいたい500MBです。 実行する処理によってはメモリエ …
-
Amazon EMR 「Hadoop を使用してビッグデータを分析」チュートリアルをやってみました
AWS認定データアナリティクス受験準備の一環で、Amazon EMRのチュートリ …
-
EC2インスタンスプロファイルによってAssumeRoleされた認証情報の有効期限は短くできるのでしょうか
「EC2インスタンスプロファイルによってAssumeRoleされた認証情報の有効 …
-
AWS Summit Tokyo 2017 Day3 開場~基調講演~Dev Day Night
AWS Summit Tokyo 2017 参加2日目のDay3です。 基調講演 …