CloudHSM 管理ユーティリティ (CMU) を使用した暗号通貨担当者の 2 要素認証 (2FA) 管理 - AWS CloudHSM

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

CloudHSM 管理ユーティリティ (CMU) を使用した暗号通貨担当者の 2 要素認証 (2FA) 管理

セキュリティを向上する場合、2 要素認証 (2FA) を設定してクラスターを保護できます。Crypto Officer (CO) に対してのみ 2FA を有効化できます。

注記

暗号ユーザー (CU) またはアプリケーションに対して 2FA を有効化できません。2 要素認証 (2FA) は CO ユーザーのみ対象です。

HSM ユーザー用 2FA について

2FA 有効のハードウェアサービスモジュール (HSM) アカウントでクラスターにログインする場合、cloudhsm_mgmt_util (CMU) にパスワード (最初の要素、ユーザーが知っているもの) を指定します。CMU はトークンを提供し、トークンに署名を要求するプロンプトを表示します。2 番目の要素 (自分の持っているもの) を提供する場合、すでに作成して HSM ユーザーに紐づけしたキーペアからプライベートキーを使用してトークンに署名します。クラスターにアクセスする場合、署名付きトークンを CMU に指定します。

クォーラム認証と 2FA

クラスターは、クォーラム認証と 2FA に同じキーを使用します。これは、2FA が有効なユーザーが M of N アクセスコントロール (MofN) に登録されていることを意味します。同じ HSM ユーザーに対して 2FA 認証とクォーラム認証を正常に実行する際、次の点を考慮する必要があります。

  • 現在、ユーザーに対してクォーラム認証を使用している場合は、クォーラムのユーザーに対して作成したものと同じキーペアを使用し、ユーザーに対して 2FA を有効化する必要があります。

  • クォーラム認証ユーザーではない非 2FA ユーザーに 2FA 要件を追加する場合、そのユーザーを 2FA 認証で MofN ユーザーとして登録します。

  • 2FA 要件を削除するか、クォーラム認証ユーザーでもある 2FA ユーザーのパスワードを変更する場合、クォーラムのユーザーのMofN ユーザーとしての登録も削除されます。

  • 2FA 要件を削除するか、クォーラム認証ユーザーでもある 2FA ユーザーのパスワードを変更する場合、それでもそのユーザーがクォーラム認証に加わる必要がある の場合、当該ユーザーを MofN ユーザーとして再登録する必要があります。

認証の詳細情報は、CMU を使用してクォーラム認証を管理する を参照してください。

HSM ユーザー向け 2FA を使用した作業

このセクションでは、2FA HSM ユーザーの作成、キーのローテーション、2FA 有効ユーザーとして HSM へのログインなど、HSM ユーザー向け 2FA の操作方法について説明します。HSM ユーザーの操作方法の詳細は、での HSM ユーザーの管理 AWS CloudHSMCloudHSM 管理ユーティリティ (CMU) を使用したユーザーの管理createUserloginHSM および logoutHSMchangePswd を参照してください。

2FA ユーザーの作成

HSM ユーザーに対して 2FA を有効化する場合、次の要件を満たすキーを使用します。

新しいキーペアの作成や、以下の要件を満たす既存のキーを使用することもできます。

  • キータイプ : 非対称

  • キーの使用方法 : 署名と認証

  • キースペック: RSA_2048

  • 署名アルゴリズムには、以下が含まれます。

    • sha256WithRSAEncryption

注記

クォーラム認証を使用している場合、またはクォーラム認証を使用する予定の場合は、クォーラム認証と 2FA を参照してください。

CMU とキーペアを使用して、2FA を有効化した新しい CO ユーザーを作成します。

2FA を有効化した状態での CO ユーザー作成
  1. 1 つのターミナルで、以下のステップを実行します。

    1. HSM にアクセスし、CloudHSM 管理ユーティリティにログインします。

      /opt/cloudhsm/bin/cloudhsm_mgmt_util /opt/cloudhsm/etc/cloudhsm_mgmt_util.cfg
    2. CO としてログインし、以下のコマンドを使用して 2FA で新しいユーザー MFA を作成します。

      aws-cloudhsm>createUser CO MFA <CO USER NAME> -2fa /home/ec2-user/authdata *************************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)? yCreating User exampleuser3(CO) on 1 nodesAuthentication data written to: "/home/ec2-user/authdata"Generate Base64-encoded signatures for SHA256 digests in the authentication datafile. To generate the signatures, use the RSA private key, which is the second factor ofauthentication for this user. Paste the signatures and the corresponding public keyinto the authentication data file and provide the file path below.Leave this field blank to use the path initially provided.Enter filename:
    3. 上記のターミナルは、この状態のままにしておきます。Enter キーを押したり、ファイル名を入力したりしないでください。

  2. 別のターミナルで、以下のステップを実行します。

    1. HSM にアクセスし、CloudHSM 管理ユーティリティにログインします。

      /opt/cloudhsm/bin/cloudhsm_mgmt_util /opt/cloudhsm/etc/cloudhsm_mgmt_util.cfg
    2. 以下のコマンドを使用して、パブリックプライベートキーペアを生成します。

      openssl genpkey -algorithm RSA -out private_key.pem -pkeyopt rsa_keygen_bits:2048
      openssl rsa -pubout -in private_key.pem -out public_key.pem
    3. 以下のコマンドを実行して、authdata ファイルからダイジェストを抽出するための JSON クエリ機能をインストールします。

      sudo yum install jq
    4. ダイジェスト値を抽出するには、まず authdata ファイル内の以下のデータを検索します。

      { "Version":"1.0", "PublicKey":"", "Data":[ { "HsmId": <"HSM ID">, "Digest": <"DIGEST">, "Signature":"" } ] }
      注記

      取得したダイジェストは base64 でエンコードされていますが、ダイジェストに署名するには、まずファイルをデコードしてから署名する必要があります。次のコマンドはダイジェストをデコードし、デコードされたコンテンツを 「digest1.bin」に保存します

      cat authdata | jq '.Data[0].Digest' | cut -c2- | rev | cut -c2- | rev | base64 -d > digest1.bin
    5. パブリックキーの内容を変換し、次に示すように「\n」を追加し、スペースを削除します。

      -----BEGIN PUBLIC KEY-----\n<PUBLIC KEY>\n-----END PUBLIC KEY-----
      重要

      上記のコマンドは、BEGIN PUBLIC KEY----- の直後に「\n」を追加する方法、「\n」とパブリックキーの最初の文字の間のスペースを削除する方法、-----END PUBLIC KEY の前に「\n」を追加する方法、および「\n」とパブリックキーの末尾の間のスペースを削除する方法を示しています。

      これはパブリックキーの PEM 形式で、認証データファイルで受け入れられます。

    6. パブリックキー PEM 形式のコンテンツを authdata ファイルのパブリックキーセクションに貼り付けます。

      vi authdata
      { "Version":"1.0", "PublicKey":"-----BEGIN PUBLIC KEY-----\n<"PUBLIC KEY">\n-----END PUBLIC KEY-----", "Data":[ { "HsmId":<"HSM ID">, "Digest":<"DIGEST">, "Signature":”” } ] }
    7. 次のコマンドを使用してトークン ファイルに署名します。

      openssl pkeyutl -sign -in digest1.bin -inkey private_key.pem -pkeyopt digest:sha256 | base64 Output Expected: <"THE SIGNATURE">
      注記

      上記のコマンドで示したように、署名には openssl dgst の代わりに openssl pkeyutl を使用してください。

    8. Authdata ファイルの「署名」フィールドに署名済みダイジェストを追加します。

      vi authdata
      { "Version": "1.0", "PublicKey": "-----BEGIN PUBLIC KEY----- ... -----END PUBLIC KEY-----", "Data": [ { "HsmId": <"HSM ID">, "Digest": <"DIGEST">, "Signature": "Kkdl ... rkrvJ6Q==" }, { "HsmId": <"HSM ID">, "Digest": <"DIGEST">, "Signature": "K1hxy ... Q261Q==" } ] }
  3. 最初のターミナルに戻り、Enter を押します。

    Generate Base64-encoded signatures for SHA256 digests in the authentication datafile. To generate the signatures, use the RSA private key, which is the second factor ofauthentication for this user. Paste the signatures and the corresponding public keyinto the authentication data file and provide the file path below. Leave this field blank to use the path initially provided. Enter filename: >>>>> Press Enter here createUser success on server 0(10.0.1.11)

HSM ユーザー用 2FA の管理

2FA ユーザーのパスワードの変更、2FA の有効化または無効化、2FA キーのローテーション化を行う場合、[パスワードの変更] を使用します。2FA を有効化にするたびに、2FA ログイン用のパブリックキーを指定する必要があります。

パスワードの変更では、以下のシナリオが実行されます。

  • 2FA ユーザーのパスワード変更

  • 非 2FA ユーザーのパスワード変更

  • 非 2FA ユーザーに 2FA の追加

  • 2FA ユーザーから 2FA の削除

  • 2FA ユーザーのキーのローテーション化

また、タスクを組み合わせることもできます。たとえば、ユーザーから 2FA を削除すると同時にパスワードの変更や、2FA キーをローテーション化してユーザーパスワードの変更を行うことができます。

2FA が有効な CO ユーザーのパスワードの変更、またはキーのローテーション化
  1. CMU を使用し、2FA が有効な CO として HSM にログインします。

  2. changePswd を使用して、2FA が有効な CO ユーザーからパスワードを変更するか、キーをローテーション化します。-2fa パラメータを使用して、システムが authdata ファイルに書き込むファイルシステム内の位置を含みます。このファイルには、クラスター内の各 HSM のダイジェストが含まれています。

    aws-cloudhsm>changePswd CO example-user <new-password> -2fa /path/to/authdata

    CMU は、プライベートキーを使用して、authdata ファイル内のダイジェストに署名を要求するプロンプトが表示され、署名はパブリックキー付きで返却されます。

  3. プライベートキーを使用して、authdata ファイル内のダイジェストに署名し、署名とパブリックキーを JSON 形式の authdata ファイルに追加後、CMU に authdata ファイルの位置を追加します。詳細情報は、設定リファレンス を参照してください。

    注記

    クラスターは、クォーラム認証と 2FA に同じキーを使用します。クォーラム認証を使用している場合、またはクォーラム認証を使用する予定の場合は、クォーラム認証と 2FA を参照してください。

2FA が有効な CO ユーザーの 2FA の無効化
  1. CMU を使用し、2FA が有効な CO として HSM にログインします。

  2. changePswd を使用して、2FA が有効な CO ユーザーから 2FA を削除します。

    aws-cloudhsm>changePswd CO example-user <new password>

    CMU は、パスワードの変更オペレーションを要求するプロンプトを表示します。

    注記

    2FA 要件を削除するか、クォーラム認証ユーザーでもある 2FA ユーザーのパスワードを変更する場合、クォーラムのユーザーのMofN ユーザーとしての登録も削除されます。クォーラムユーザーおよび 2FA の詳細情報は、[クォーラム認証と 2FA] を参照してください。

  3. タイプ y

    CMU は、パスワードの変更オペレーションを確定します。

設定リファレンス

CMU で生成されたリクエストとレスポンスの両方に対応する authdata ファイル内の 2FA プロパティの例を以下に示します。

{ "Version": "1.0", "PublicKey": "-----BEGIN PUBLIC KEY----- ... -----END PUBLIC KEY-----", "Data": [ { "HsmId": "hsm-lgavqitns2a", "Digest": "k5O1p3f6foQRVQH7S8Rrjcau6h3TYqsSdr16A54+qG8=", "Signature": "Kkdl ... rkrvJ6Q==" }, { "HsmId": "hsm-lgavqitns2a", "Digest": "IyBcx4I5Vyx1jztwvXinCBQd9lDx8oQe7iRrWjBAi1w=", "Signature": "K1hxy ... Q261Q==" } ] }
[データ]

最上位のノード。クラスター内の各 HSM の下位ノードが含まれています。すべての 2FA コマンドのリクエストとレスポンスに表示されます。

ダイジェスト

これは、認証の 2 番目の要素を提供するために署名が必要です。すべての 2FA コマンドのリクエストで生成された CMU。

HsmId

ご利用のHSM の IDです。すべての 2FA コマンドのリクエストとレスポンスに表示されます。

PublicKey

生成したキーペアのパブリックキーの部分は、PEM 形式の文字列として挿入されます。createUserchangePswd の回答欄にこれを入力します。

署名

Base 64 でエンコードされた署名付きダイジェスト。2FA コマンドの回答欄にこれを入力します。

バージョン

認証データ JSON 形式のファイルのバージョン。すべての 2FA コマンドのリクエストとレスポンスに表示されます。