클라이언트와 TLS AWS CloudHSM 간에 상호 설정(권장) - AWS CloudHSM

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

클라이언트와 TLS AWS CloudHSM 간에 상호 설정(권장)

다음 주제에서는 클라이언트와 간의 상호 TLS (mTLS)을 활성화하기 위해 완료해야 하는 단계를 설명합니다 AWS CloudHSM. 현재 이 기능은 hsm2m.medium에서만 사용할 수 있습니다. HSM 유형에 대한 자세한 내용은 AWS CloudHSM 클러스터 모드 섹션을 참조하세요.

1단계. 에 신뢰 앵커 생성 및 등록 HSM

m을 활성화하기 HSM 전에 신뢰 앵커를 생성하여에 등록해야 합니다TLS. 다음 2단계 프로세스로 진행됩니다.

프라이빗 키 및 자체 서명된 루트 인증서 생성

참고

프로덕션 클러스터의 경우 신뢰할 수 있는 임의 소스를 사용하여 안전한 방식으로 키를 생성해야 합니다. 안전한 오프사이트 및 오프라인 HSM 또는 이에 상응하는를 사용하는 것이 좋습니다. 키를 안전하게 저장하십시오.

개발 및 테스트를 위해 편리한 도구(예: OpenSSL)를 사용하여 키를 생성하고 루트 인증서에 자체 서명할 수 있습니다. 활성화 mTLS AWS CloudHSM에서 클라이언트 인증서에 서명하려면 키와 루트 인증서가 필요합니다.

다음 예제에서는 OpenSSL을 사용하여 프라이빗 키와 자체 서명된 루트 인증서를 생성하는 방법을 보여줍니다.

예 - Open을 사용하여 프라이빗 키 생성SSL

다음 명령을 사용하여 AES-256 알고리즘으로 암호화된 4096비트 RSA 키를 생성합니다. 이 예제<mtls_ca_root_1.key>를 사용하려면 키를 저장할 파일의 이름으로를 바꿉니다.

$ openssl genrsa -out <mtls_ca_root_1.key> -aes256 4096 Generating RSA private key, 4096 bit long modulus .....................................+++ .+++ e is 65537 (0x10001) Enter pass phrase for mtls_ca_root_1.key: Verifying - Enter pass phrase for mtls_ca_root_1.key:
예 - Open을 사용하여 자체 서명된 루트 인증서 생성SSL

다음 명령을 사용하여 방금 생성한 프라이빗 키에서 mtls_ca_root_1.crt라는 자체 서명된 루트 인증서를 생성합니다. 인증서는 25년(9130일) 동안 유효합니다. 화면의 지침을 읽고 프롬프트의 메시지를 따릅니다.

$ openssl req -new -x509 -days 9130 -key mtls_ca_root_1.key -out mtls_ca_root_1.crt Enter pass phrase for mtls_ca_root_1.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) [AU]: State or Province Name (full name) [Some-State]: Locality Name (eg, city) []: Organization Name (eg, company) [Internet Widgits Pty Ltd]: Organizational Unit Name (eg, section) []: Common Name (e.g. server FQDN or YOUR name) []: Email Address []:

에 신뢰 앵커 등록 HSM

자체 서명된 루트 인증서를 생성한 후 관리자는 이를 AWS CloudHSM 클러스터에 신뢰 앵커로 등록해야 합니다.

에 신뢰 앵커를 등록하려면 HSM
  1. 다음 명령을 사용하여 클라우드HSM를 시작합니다CLI.

    Linux
    $ /opt/cloudhsm/bin/cloudhsm-cli interactive
    Windows
    C:\Program Files\Amazon\CloudHSM\bin\> .\cloudhsm-cli.exe interactive
  2. CloudHSM를 사용하여 관리자로 CLI로그인합니다.

    aws-cloudhsm > login --username admin --role admin Enter password: { "error_code": 0, "data": { "username": "admin", "role": "admin" } }
  3. Cloud에 신뢰 앵커 등록HSM CLI 명령을 사용하여 트러스트 앵커를 등록합니다. 자세한 내용은 다음 예제를 참조하거나 help cluster mtls register-trust-anchor 명령을 사용하십시오.

예 - AWS CloudHSM 클러스터에 신뢰 앵커 등록

다음 예제에서는 CloudHSM에서 cluster mtls register-trust-anchor 명령을 사용하여에 신뢰 앵커를 CLI 등록하는 방법을 보여줍니다HSM. 이 명령을 사용하려면 관리자가에 로그인해야 합니다HSM. 이 값들을 사용자의 값으로 대체합니다.

aws-cloudhsm > cluster mtls register-trust-anchor --path </path/mtls_ca_root_1.crt> { "error_code": 0, "data": { "trust_anchor": { "certificate-reference": "0x01", "certificate": "<PEM Encoded Certificate>", "cluster-coverage": "full" } } }
참고

AWS CloudHSM 는 중간 인증서를 신뢰 앵커로 등록하는 것을 지원합니다. 이러한 경우 전체 PEM인코딩된 인증서 체인 파일을 계층적 순서로 인증서HSM와 함께에 등록해야 합니다.

AWS CloudHSM 는 6980바이트의 인증서 체인을 지원합니다.

트러스트 앵커를 성공적으로 등록한 후 cluster mtls list-trust-anchors 명령을 실행하여 다음과 같이 현재 등록된 트러스트 앵커를 확인할 수 있습니다.

aws-cloudhsm > cluster mtls list-trust-anchors { "error_code": 0, "data": { "trust_anchors": [ { "certificate-reference": "0x01", "certificate": "<PEM Encoded Certificate>", "cluster-coverage": "full" } ] } }
참고

hsm2m.medium에 등록할 수 있는 최대 트러스트 앵커 수는 두 개(2)입니다.

2단계. 에 대해 mTLS 활성화 AWS CloudHSM

mTLS을 활성화하려면에서 생성한 루트 인증서로 서명된 프라이빗 키와 클라이언트 인증서를 생성하고 에 신뢰 앵커를 등록한 HSM다음 Client SDK 5 구성 도구를 사용하여 프라이빗 키 경로와 클라이언트 인증서 체인 경로를 설정해야 AWS CloudHSM합니다.

프라이빗 키 및 클라이언트 인증서 체인 생성

예 - Open을 사용하여 프라이빗 키 생성SSL

다음 명령을 사용하여 4096비트 RSA 키를 생성합니다. 이 예제<ssl-client.key>를 사용하려면 키를 저장할 파일의 이름으로를 바꿉니다.

$ openssl genrsa -out <ssl-client.key> 4096 Generating RSA private key, 4096 bit long modulus .....................................+++ .+++ e is 65537 (0x10001)
예 - Open을 사용하여 인증서 서명 요청(CSR) 생성SSL

다음 명령을 사용하여 방금 생성한 프라이빗 키에서 인증서 서명 요청(CSR)을 생성합니다. 화면의 지침을 읽고 프롬프트의 메시지를 따릅니다.

$ openssl req -new -key <ssl-client.key> -out <ssl-client.csr> 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) [AU]: State or Province Name (full name) [Some-State]: Locality Name (eg, city) []: Organization Name (eg, company) [Internet Widgits Pty Ltd]: Organizational Unit Name (eg, section) []: Common Name (e.g. server FQDN or YOUR name) []: Email Address []:
예 - 루트 인증서CSR로 서명

다음 명령을 사용하여에 신뢰 앵커 생성 및 등록에서 생성하고 등록한 루트 인증서CSR로에 서명하고 라는 클라이언트 인증서를 생성합니다ssl-client.crt. HSM 인증서는 5년(1826일) 동안 유효합니다.

$ openssl x509 -req -days 1826 -in <ssl-client.csr> -CA <mtls_ca_root_1.crt> -CAkey <mtls_ca_root_1.key> -CAcreateserial -out <ssl-client.crt>
예 - 클라이언트 인증서 체인 생성

다음 명령을 사용하여 신뢰 앵커 생성 및 등록HSM에서 생성 및 등록한 클라이언트 인증서와 루트 인증서를 결합하고 다음 단계에서 구성하는 데 ssl-client.pem사용할 클라이언트 인증서 체인을 생성합니다.

$ cat <ssl-client.crt> <mtls_ca_root_1.crt> > <ssl-client.pem>
참고

에서 중간 인증서를 등록하고 신뢰 앵커를에 신뢰 앵커로 등록한 HSM 경우 클라이언트 인증서를 전체 인증서 체인과 결합하여 클라이언트 인증서 체인을 생성해야 합니다.

클라이언트 5에 대한 SDK mTLS 구성

Client SDK 5 구성 도구를 사용하여 올바른 클라이언트 키 경로와 클라이언트 인증서 체인 경로를 TLS 제공하여 상호를 활성화합니다. 클라이언트 SDK 5용 구성 도구에 대한 자세한 내용은 AWS CloudHSM 클라이언트 SDK 5 구성 도구 섹션을 참조하세요.

PKCS #11 library
Linux에서 TLS 클라이언트 SDK 5와의 클라이언트 상호HSM 인증에 사용자 지정 인증서 및 키를 사용하려면
  1. 키와 인증서를 적절한 디렉터리로 복사합니다.

    $ sudo cp ssl-client.pem /opt/cloudhsm/etc $ sudo cp ssl-client.key /opt/cloudhsm/etc
  2. 구성 도구를 사용하여 ssl-client.pemssl-client.key을 지정합니다.

    $ sudo /opt/cloudhsm/bin/configure-pkcs11 \ --client-cert-hsm-tls-file /opt/cloudhsm/etc/ssl-client.pem \ --client-key-hsm-tls-file /opt/cloudhsm/etc/ssl-client.key
Windows에서 TLS 클라이언트 SDK 5와의 클라이언트 상호HSM 인증에 사용자 지정 인증서 및 키를 사용하려면
  1. 키와 인증서를 적절한 디렉터리로 복사합니다.

    cp ssl-client.pem C:\ProgramData\Amazon\CloudHSM\ssl-client.pem cp ssl-client.key C:\ProgramData\Amazon\CloudHSM\ssl-client.key
  2. PowerShell 인터프리터를 사용하여 구성 도구를 사용하여 ssl-client.pem 및를 지정합니다ssl-client.key.

    & "C:\Program Files\Amazon\CloudHSM\bin\configure-pkcs11.exe" ` --client-cert-hsm-tls-file C:\ProgramData\Amazon\CloudHSM\ssl-client.pem ` --client-key-hsm-tls-file C:\ProgramData\Amazon\CloudHSM\ssl-client.key
OpenSSL Dynamic Engine
Linux에서 TLS 클라이언트 SDK 5와의 클라이언트 상호HSM 인증에 사용자 지정 인증서 및 키를 사용하려면
  1. 키와 인증서를 적절한 디렉터리로 복사합니다.

    $ sudo cp ssl-client.pem /opt/cloudhsm/etc sudo cp ssl-client.key /opt/cloudhsm/etc
  2. 구성 도구를 사용하여 ssl-client.pemssl-client.key을 지정합니다.

    $ sudo /opt/cloudhsm/bin/configure-dyn \ --client-cert-hsm-tls-file /opt/cloudhsm/etc/ssl-client.pem \ --client-key-hsm-tls-file /opt/cloudhsm/etc/ssl-client.key
Key Storage Provider (KSP)
Windows에서 TLS 클라이언트 SDK 5와의 클라이언트 상호HSM 인증에 사용자 지정 인증서 및 키를 사용하려면
  1. 키와 인증서를 적절한 디렉터리로 복사합니다.

    cp ssl-client.pem C:\ProgramData\Amazon\CloudHSM\ssl-client.pem cp ssl-client.key C:\ProgramData\Amazon\CloudHSM\ssl-client.key
  2. PowerShell 인터프리터를 사용하여 구성 도구를 사용하여 ssl-client.pem 및를 지정합니다ssl-client.key.

    & "C:\Program Files\Amazon\CloudHSM\bin\configure-ksp.exe" ` --client-cert-hsm-tls-file C:\ProgramData\Amazon\CloudHSM\ssl-client.pem ` --client-key-hsm-tls-file C:\ProgramData\Amazon\CloudHSM\ssl-client.key
JCE provider
Linux에서 TLS 클라이언트 SDK 5와의 클라이언트 상호HSM 인증에 사용자 지정 인증서 및 키를 사용하려면
  1. 키와 인증서를 적절한 디렉터리로 복사합니다.

    $ sudo cp ssl-client.pem /opt/cloudhsm/etc sudo cp ssl-client.key /opt/cloudhsm/etc
  2. 구성 도구를 사용하여 ssl-client.pemssl-client.key을 지정합니다.

    $ sudo /opt/cloudhsm/bin/configure-jce \ --client-cert-hsm-tls-file /opt/cloudhsm/etc/ssl-client.pem \ --client-key-hsm-tls-file /opt/cloudhsm/etc/ssl-client.key
Windows에서 TLS 클라이언트 SDK 5와의 클라이언트 상호HSM 인증에 사용자 지정 인증서 및 키를 사용하려면
  1. 키와 인증서를 적절한 디렉터리로 복사합니다.

    cp ssl-client.pem C:\ProgramData\Amazon\CloudHSM\ssl-client.pem cp ssl-client.key C:\ProgramData\Amazon\CloudHSM\ssl-client.key
  2. PowerShell 인터프리터를 사용하여 구성 도구를 사용하여 ssl-client.pem 및를 지정합니다ssl-client.key.

    & "C:\Program Files\Amazon\CloudHSM\bin\configure-jce.exe" ` --client-cert-hsm-tls-file C:\ProgramData\Amazon\CloudHSM\ssl-client.pem ` --client-key-hsm-tls-file C:\ProgramData\Amazon\CloudHSM\ssl-client.key
CloudHSM CLI
Linux에서 TLS 클라이언트 SDK 5와의 클라이언트 상호HSM 인증에 사용자 지정 인증서 및 키를 사용하려면
  1. 키와 인증서를 적절한 디렉터리로 복사합니다.

    $ sudo cp ssl-client.pem /opt/cloudhsm/etc sudo cp ssl-client.key /opt/cloudhsm/etc
  2. 구성 도구를 사용하여 ssl-client.pemssl-client.key을 지정합니다.

    $ sudo /opt/cloudhsm/bin/configure-cli \ --client-cert-hsm-tls-file /opt/cloudhsm/etc/ssl-client.pem \ --client-key-hsm-tls-file /opt/cloudhsm/etc/ssl-client.key
Windows에서 TLS 클라이언트 SDK 5와의 클라이언트 상호HSM 인증에 사용자 지정 인증서 및 키를 사용하려면
  1. 키와 인증서를 적절한 디렉터리로 복사합니다.

    cp ssl-client.pem C:\ProgramData\Amazon\CloudHSM\ssl-client.pem cp ssl-client.key C:\ProgramData\Amazon\CloudHSM\ssl-client.key
  2. PowerShell 인터프리터를 사용하여 구성 도구를 사용하여 ssl-client.pem 및를 지정합니다ssl-client.key.

    & "C:\Program Files\Amazon\CloudHSM\bin\configure-cli.exe" ` --client-cert-hsm-tls-file C:\ProgramData\Amazon\CloudHSM\ssl-client.pem ` --client-key-hsm-tls-file C:\ProgramData\Amazon\CloudHSM\ssl-client.key

3단계. 에 대한 mTLS 적용 설정 AWS CloudHSM

Client SDK 5 구성 도구를 사용하여를 구성한 후 클러스터TLS에서 클라이언트와 간의 연결 AWS CloudHSM 은 상호적입니다. 그러나 구성 파일에서 프라이빗 키 경로와 클라이언트 인증서 체인 경로를 제거하면 연결이 TLS 다시 일반으로 전환됩니다. CloudHSMCLI를 사용하여 다음 단계를 완료하여 클러스터에서 mtls 적용을 설정할 수 있습니다.

  1. 다음 명령을 사용하여 클라우드HSM를 시작합니다CLI.

    Linux
    $ /opt/cloudhsm/bin/cloudhsm-cli interactive
    Windows
    C:\Program Files\Amazon\CloudHSM\bin\> .\cloudhsm-cli.exe interactive
  2. CloudHSM를 사용하여 관리자로 CLI로그인합니다.

    aws-cloudhsm > login --username admin --role admin Enter password: { "error_code": 0, "data": { "username": "admin", "role": "admin" } }
    참고

    1. 클라우드HSM를 구성했는지 CLI 확인하고 mTLS 연결CLI로 클라우드HSM를 시작합니다.

    2. mTLS을 적용하기 전에 사용자 이름을 관리자로 사용하여 기본 관리자로 로그인해야 합니다.

  3. Cloud를 사용하여 mTLS 적용 수준 설정HSM CLI 명령을 사용하여 적용을 설정합니다. 자세한 내용은 다음 예제를 참조하거나 help cluster mtls set-enforcement 명령을 사용하십시오.

    예 - AWS CloudHSM 클러스터를 사용하여 mTLS 적용 설정

    다음 예제에서는 CloudHSM에서 cluster mtls set-enforcement 명령을 사용하여를 사용하여 mTLS 적용을 CLI 설정하는 방법을 보여줍니다HSM. 이 명령을 사용하려면 사용자 이름이 관리자인 관리자가에 로그인해야 합니다HSM.

    aws-cloudhsm > cluster mtls set-enforcement --level cluster { "error_code": 0, "data": { "message": "Mtls enforcement level set to Cluster successfully" } }
    주의

    클러스터에서 mTLS 사용량을 적용하면 기존의 모든 비 mTLS 연결이 끊어지고 mTLS 인증서로만 클러스터에 연결할 수 있습니다.