CloudHSM CLI용 MFA가 활성화된 사용자 로그인 - AWS CloudHSM

CloudHSM CLI용 MFA가 활성화된 사용자 로그인

다음 단계에 따라 다중 인증(MFA)이 활성화된 AWS CloudHSM 사용자를 로그인합니다.

  1. CloudHSM CLI의 login mfa-token-sign 명령을 사용하여 MFA를 활성화한 사용자에 대해 MFA로 로그인 프로세스를 시작할 수 있습니다.

    aws-cloudhsm > login --username <USERNAME> --role <ROLE> mfa-token-sign --token unsigned-tokens.json Enter password:
  2. 암호를 입력합니다. 그러면 사인되지 않은/사인된 토큰 페어가 포함된 토큰 파일의 경로를 입력하라는 메시지가 표시됩니다. 여기서 사인된 토큰은 프라이빗 키를 사용하여 생성된 토큰입니다.

    aws-cloudhsm > login --username <USERNAME> --role <ROLE> mfa-token-sign --token unsigned-tokens.json Enter password: Enter signed token file path (press enter if same as the unsigned token file):
  3. 사인된 토큰 파일 경로를 입력하라는 메시지가 표시되면 별도의 터미널에서 사인되지 않은 토큰 파일을 검사할 수 있습니다. 사인이 필요한 사인되지 않은 토큰이 있는 파일 식별: unsigned-tokens.json 이 파일의 토큰 수는 클러스터의 HSM 수에 따라 달라집니다. 각 토큰은 하나의 HSM을 나타냅니다. 이 파일은 JSON 형식이며 프라이빗 키가 있음을 증명하기 위해 사인이 필요한 토큰을 포함하고 있습니다.

    $ cat unsigned-tokens.json { "version": "2.0", "tokens": [ { "unsigned": "Vtf/9QOFY45v/E1osvpEMr59JsnP/hLDm4ItOO2vqL8=", "signed": "" }, { "unsigned": "wVbC0/5IKwjyZK2NBpdFLyI7BiayZ24YcdUdlcxLwZ4=", "signed": "" }, { "unsigned": "z6aW9RzErJBL5KqFG5h8lhTVt9oLbxppjod0Ebysydw=", "signed": "" } ] }
  4. 2단계에서 생성한 프라이빗 키로 사인되지 않은 토큰에 사인합니다. 먼저 base64로 인코딩된 토큰을 추출하고 디코딩해야 합니다.

    $ echo "Vtf/9QOFY45v/E1osvpEMr59JsnP/hLDm4ItOO2vqL8=" > token1.b64 $ echo "wVbC0/5IKwjyZK2NBpdFLyI7BiayZ24YcdUdlcxLwZ4=" > token2.b64 $ echo "z6aW9RzErJBL5KqFG5h8lhTVt9oLbxppjod0Ebysydw=" > token3.b64 $ base64 -d token1.b64 > token1.bin $ base64 -d token2.b64 > token2.bin $ base64 -d token3.b64 > token3.bin
  5. 이제 바이너리 토큰이 생겼습니다. MFA 설정 단계 1에서 이전에 생성한 RSA 프라이빗 키를 사용하여 사인합니다.

    $ openssl pkeyutl -sign \ -inkey officer1.key \ -pkeyopt digest:sha256 \ -keyform PEM \ -in token1.bin \ -out token1.sig.bin $ openssl pkeyutl -sign \ -inkey officer1.key \ -pkeyopt digest:sha256 \ -keyform PEM \ -in token2.bin \ -out token2.sig.bin $ openssl pkeyutl -sign \ -inkey officer1.key \ -pkeyopt digest:sha256 \ -keyform PEM \ -in token3.bin \ -out token3.sig.bin
  6. 이제 토큰의 바이너리 사인이 생겼습니다. base64를 사용하여 인코딩한 다음 토큰 파일에 다시 배치합니다.

    $ base64 -w0 token1.sig.bin > token1.sig.b64 $ base64 -w0 token2.sig.bin > token2.sig.b64 $ base64 -w0 token3.sig.bin > token3.sig.b64
  7. 마지막으로 base64 값을 복사하여 토큰 파일에 다시 붙여넣습니다.

    { "version": "2.0", "tokens": [ { "unsigned": "1jqwxb9bJOUUQLiNb7mxXS1uBJsEXh0B9nj05BqnPsE=", "signed": "eiw3fZeCKIY50C4zPeg9Rt90M1Qlq3WlJh6Yw7xXm4nF6e9ETLE39+9M+rUqDWMRZjaBfaMbg5d9yDkz5p13U7ch2tlF9LoYabsWutkT014KRq/rcYMvFsU9n/Ey/TK0PVaxLN42X+pebV4juwMhN4mK4CzdFAJgM+UGBOj4yB9recpOBB9K8QFSpJZALSEdDgUc/mS1eDq3rU0int6+4NKuLQjpR+LSEIWRZ6g6+MND2vXGskxHjadCQ09L7Tz8VcWjKDbxJcBiGKvkqyozl9zrGo8fA3WHBmwiAgS61Merx77ZGY4PFR37+j/YMSC14prCN15DtMRv2xA1SGSb4w==" }, { "unsigned": "LMMFc34ASPnvNPFzBbMbr9FProS/Zu2P8zF/xzk5hVQ=", "signed": "HBImKnHmw+6R2TpFEpfiAg4+hu2pFNwn43ClhKPkn2higbEhUD0JVi+4MerSyvU/NN79iWVxDvJ9Ito+jpiRQjTfTGEoIteyuAr1v/Bzh+HjmrO53OQpZaJ/VXGIgApD0myuu/ZGNKQTCSkkL7+V81FG7yR1Nm22jUeGa735zvm/E+cenvZdy0VVx6A7WeWrl3JEKKBweHbi+7BwbaW+PTdCuIRd4Ug76Sy+cFhsvcG1k7cMwDh8MgXzIZ2m1f/hdy2j8qAxORTLlmwyUOYvPYOvUhc+s83hx36QpGwGcD7RA0bPT5OrTx7PHd0N1CL+Wwy91We8yIOFBS6nxo1R7w==" }, { "unsigned": "dzeHbwhiVXQqcUGj563z51/7sLUdxjL93SbOUyZRjH8=", "signed": "VgQPvrTsvGljVBFxHnswduq16x8ZrnxfcYVYGf/N7gEzI4At3GDs2EVZWTRdvS0uGHdkFYp1apHgJZ7PDVmGcTkIXVD2lFYppcgNlSzkYlftr5EOjqS9ZjYEqgGuB4g//MxaBaRbJai/6BlcE92NIdBusTtreIm3yTpjIXNAVoeRSnkfuw7wZcL96QoklNb1WUuSHw+psUyeIVtIwFMHEfFoRC0t+VhmnlnFnkjGPb9W3Aprw2dRRvFM3R2ZTDvMCiOYDzUCd43GftGq2LfxH3qSD51oFHglHQVOY0jyVzzlAvub5HQdtOQdErIeO0/9dGx5yot07o3xaGl5yQRhwA==" } ] }
  8. 이제 토큰 파일에 필요한 모든 사인이 포함되었으므로 계속 진행할 수 있습니다. 사인된 토큰이 들어 있는 파일 이름을 입력하고 Enter 키를 누릅니다. 이제 성공적으로 로그인할 수 있습니다.

    aws-cloudhsm > login --username <USERNAME> --role <ROLE> mfa-token-sign --token unsigned-tokens.json Enter password: Enter signed token file path (press enter if same as the unsigned token file): { "error_code": 0, "data": { "username": "<USERNAME>", "role": "<ROLE>" } }