8.14. IBM Secure Execution 인증서 및 키 구성


작업자 노드에 대한 IBM Secure Execution (SE) 인증서 및 키를 구성해야 합니다.

사전 요구 사항

  • bastion 노드의 IP 주소가 있습니다.
  • 작업자 노드의 내부 IP 주소가 있습니다.

프로세스

  1. 다음 단계를 수행하여 KBS(Key Broker Service) 인증서 및 키를 생성합니다.

    1. 다음 예에 따라 kbs.conf 구성 파일을 생성합니다.

      [req]
      default_bits = 2048
      default_keyfile = localhost.key
      distinguished_name = req_distinguished_name
      req_extensions = req_ext
      x509_extensions = v3_ca
      
      [req_distinguished_name]
      countryName = Country Name (2-letter code)
      countryName_default = <country_name>
      stateOrProvinceName = State or Province Name (full name)
      stateOrProvinceName_default = <state_name>
      localityName = Locality Name (eg, city)
      localityName_default = <locality_name>
      organizationName = Organization Name (eg, company)
      organizationName_default = Red Hat
      organizationalUnitName = organizationalunit
      organizationalUnitName_default = Development
      commonName = Common Name (e.g. server FQDN or
      YOUR name)
      commonName_default = kbs-service
      commonName_max = 64
      
      [req_ext]
      subjectAltName = @alt_names
      
      [v3_ca]
      subjectAltName = @alt_names
      
      [alt_names]
      IP.1  = <trustee_ip>
      DNS.1  = localhost
      DNS.2  = 127.0.0.1
      Copy to Clipboard Toggle word wrap
    2. 다음 명령을 실행하여 KBS 키 및 자체 서명 인증서를 생성합니다.

      openssl req -x509 -nodes -days 365 \
         -newkey rsa:2048 \
         -keyout kbs.key \
         -out kbs.crt \
         -config kbs.conf \
         -passin pass:
      Copy to Clipboard Toggle word wrap
    3. 다음 명령을 실행하여 KBS 키를 ibmse 디렉터리에 복사합니다.

      $ cp kbs.key /tmp/ibmse/kbs.key
      Copy to Clipboard Toggle word wrap
    4. 다음 명령을 실행하여 KBS 인증서를 ibmse 디렉터리에 복사합니다.

      $ cp kbs.crt /tmp/ibmse/kbs.crt
      Copy to Clipboard Toggle word wrap
  2. 다음 단계를 수행하여 인증 정책 필드를 가져옵니다.

    1. 다음 명령을 실행하여 GetRvps.sh 스크립트를 다운로드할 디렉터리를 만듭니다.

      $ mkdir -p Rvps-Extraction/
      Copy to Clipboard Toggle word wrap
    2. 다음 명령을 실행하여 스크립트를 다운로드합니다.

      $ wget https://github.com/openshift/sandboxed-containers-operator/raw/devel/scripts/rvps-extraction/GetRvps.sh -O $PWD/GetRvps.sh
      Copy to Clipboard Toggle word wrap
    3. 다음 명령을 실행하여 하위 디렉터리를 생성합니다.

      $ mkdir -p Rvps-Extraction/static-files
      Copy to Clipboard Toggle word wrap
    4. 다음 명령을 실행하여 static-files 디렉터리로 이동합니다.

      $ cd Rvps-Extraction/static-files
      Copy to Clipboard Toggle word wrap
    5. 다음 명령을 실행하여 pvextract-hdr 툴을 다운로드합니다.

      $ wget https://github.com/openshift/sandboxed-containers-operator/raw/devel/scripts/rvps-extraction/static-files/pvextract-hdr -O $PWD/pvextract-hdr
      Copy to Clipboard Toggle word wrap
    6. 다음 명령을 실행하여 툴을 실행 가능하게 만듭니다.

      $ chmod +x pvextract-hdr
      Copy to Clipboard Toggle word wrap
    7. 다음 명령을 실행하여 se_parse_hdr.py 스크립트를 다운로드합니다.

      $ wget https://github.com/openshift/sandboxed-containers-operator/raw/devel/scripts/rvps-extraction/static-files/se_parse_hdr.py -O $PWD/se_parse_hdr.py
      Copy to Clipboard Toggle word wrap
    8. 다음 명령을 실행하여 HKD(Host Key Document) 인증서를 static-files 디렉터리에 복사합니다.

      $ cp ~/path/to/<hkd_cert.crt> .
      Copy to Clipboard Toggle word wrap

      static-files 디렉터리에는 다음 파일이 포함되어 있습니다.

      • HKD.crt
      • pvextract-hdr
      • se_parse_hdr.py
    9. 다음 명령을 실행하여 Rvps-Extraction 디렉터리로 이동합니다.

      $ cd ..
      Copy to Clipboard Toggle word wrap
    10. 다음 명령을 실행하여 GetRvps.sh 스크립트를 실행 가능하게 만듭니다.

      $ chmod +x GetRvps.sh
      Copy to Clipboard Toggle word wrap
    11. 스크립트를 실행합니다.

      $ ./GetRvps.sh
      Copy to Clipboard Toggle word wrap

      출력 예

      ***Installing necessary packages for RVPS values extraction ***
      Updating Subscription Management repositories.
      Last metadata expiration check: 0:37:12 ago on Mon Nov 18 09:20:29 2024.
      Package python3-3.9.19-8.el9_5.1.s390x is already installed.
      Package python3-cryptography-36.0.1-4.el9.s390x is already installed.
      Package kmod-28-10.el9.s390x is already installed.
      Dependencies resolved.
      Nothing to do.
      Complete!
      ***Installation Finished ***
      1) Generate the RVPS From Local Image from User pc
      2) Generate RVPS from Volume
      3) Quit
      Please enter your choice:
      Copy to Clipboard Toggle word wrap

      1. 2 를 입력하여 볼륨에서 참조 값 공급자 서비스를 생성합니다.

        Please enter your choice: 2
        Copy to Clipboard Toggle word wrap
      2. libvirt 풀 이름에 fa-pp 를 입력합니다.

        Enter the Libvirt Pool Name: fa-pp
        Copy to Clipboard Toggle word wrap
      3. libvirt 게이트웨이 URI를 입력합니다.

        Enter the Libvirt URI Name: <libvirt-uri> 
        1
        Copy to Clipboard Toggle word wrap
        1
        피어 Pod 시크릿 을 생성하는 데 사용한 LIBVIRT_URI 값을 지정합니다.
      4. libvirt 볼륨 이름에 fa-pp-vol 을 입력합니다.

        Enter the Libvirt Volume Name: fa-pp-vol
        Copy to Clipboard Toggle word wrap

        출력 예

        Downloading from PODVM Volume...
        
        mount: /mnt/myvm: special device /dev/nbd3p1 does not exist.
        Error: Failed to mount the image. Retrying...
        Mounting on second attempt passed
        /dev/nbd3 disconnected
        SE header found at offset 0x014000
        SE header written to '/root/Rvps-Extraction/output-files/hdr.bin' (640 bytes)
        se.tag:  42f3fe61e8a7e859cab3bb033fd11c61
        se.image_phkh:  92d0aff6eb86719b6b1ea0cb98d2c99ff2ec693df3efff2158f54112f6961508
        provenance = ewogICAgInNlLmF0dGVzdGF0aW9uX3Boa2giOiBbCiAgICAgICAgIjkyZDBhZmY2ZWI4NjcxOWI2YjFlYTBjYjk4ZDJjOTlmZjJlYzY5M2RmM2VmZmYyMTU4ZjU0MTEyZjY5NjE1MDgiCiAgICBdLAogICAgInNlLnRhZyI6IFsKICAgICAgICAiNDJmM2ZlNjFlOGE3ZTg1OWNhYjNiYjAzM2ZkMTFjNjEiCiAgICBdLAogICAgInNlLmltYWdlX3Boa2giOiBbCiAgICAgICAgIjkyZDBhZmY2ZWI4NjcxOWI2YjFlYTBjYjk4ZDJjOTlmZjJlYzY5M2RmM2VmZmYyMTU4ZjU0MTEyZjY5NjE1MDgiCiAgICBdLAogICAgInNlLnVzZXJfZGF0YSI6IFsKICAgICAgICAiMDAiCiAgICBdLAogICAgInNlLnZlcnNpb24iOiBbCiAgICAgICAgIjI1NiIKICAgIF0KfQo=
        -rw-r--r--. 1 root root 640 Dec 16 10:57 /root/Rvps-Extraction/output-files/hdr.bin
        -rw-r--r--. 1 root root 446 Dec 16 10:57 /root/Rvps-Extraction/output-files/ibmse-policy.rego
        -rw-r--r--. 1 root root 561 Dec 16 10:57 /root/Rvps-Extraction/output-files/se-message
        Copy to Clipboard Toggle word wrap

  3. 다음 단계를 수행하여 인증서 및 CRL(인증서 취소 목록)을 가져옵니다.

    1. 다음 명령을 실행하여 인증서에 대한 임시 디렉터리를 생성합니다.

      $ mkdir /tmp/ibmse/certs
      Copy to Clipboard Toggle word wrap
    2. 다음 명령을 실행하여 ibm-z-host-key-signing-gen2.crt 인증서를 다운로드합니다.

      $ wget https://www.ibm.com/support/resourcelink/api/content/public/ibm-z-host-key-signing-gen2.crt -O /tmp/ibmse/certs/ibm-z-host-key-signing-gen2.crt
      Copy to Clipboard Toggle word wrap
    3. 다음 명령을 실행하여 CryostatCert CA.crt 인증서를 다운로드합니다.

      $ wget https://www.ibm.com/support/resourcelink/api/content/public/DigiCertCA.crt -O /tmp/ibmse/certs/DigiCertCA.crt
      Copy to Clipboard Toggle word wrap
    4. 다음 명령을 실행하여 CRL의 임시 디렉터리를 생성합니다.

      $ mkdir /tmp/ibmse/crls
      Copy to Clipboard Toggle word wrap
    5. 다음 명령을 실행하여 ibm-z-host-key-gen2.crl 파일을 다운로드합니다.

      $ wget https://www.ibm.com/support/resourcelink/api/content/public/ibm-z-host-key-gen2.crl -O /tmp/ibmse/crls/ibm-z-host-key-gen2.crl
      Copy to Clipboard Toggle word wrap
    6. 다음 명령을 실행하여 MellanoxCert TrustedRootG4.crl 파일을 다운로드합니다.

      $ wget http://crl3.digicert.com/DigiCertTrustedRootG4.crl -O /tmp/ibmse/crls/DigiCertTrustedRootG4.crl
      Copy to Clipboard Toggle word wrap
    7. 다음 명령을 실행하여 clevisCert TrustedG4CodeSigningRSA4096SHA3842021CA1.crl 파일을 다운로드합니다.

      $ wget http://crl3.digicert.com/DigiCertTrustedG4CodeSigningRSA4096SHA3842021CA1.crl -O /tmp/ibmse/crls/DigiCertTrustedG4CodeSigningRSA4096SHA3842021CA1.crl
      Copy to Clipboard Toggle word wrap
    8. 다음 명령을 실행하여 hdr.bin 파일의 임시 디렉토리를 만듭니다.

      $ mkdir -p /tmp/ibmse/hdr/
      Copy to Clipboard Toggle word wrap
    9. 다음 명령을 실행하여 hdr.bin 파일을 hdr 디렉토리에 복사합니다.

      $ cp /root/Rvps-Extraction/output-files/hdr.bin /tmp/ibmse/hdr/
      Copy to Clipboard Toggle word wrap
    10. 다음 명령을 실행하여 HKD(Host Key Document) 인증서에 대한 임시 디렉토리를 만듭니다.

      $ mkdir -p /tmp/ibmse/hkds
      Copy to Clipboard Toggle word wrap
    11. 다음 명령을 실행하여 HKD 인증서를 hkds 디렉토리에 복사합니다.

      $ cp ~/path/to/<hkd_cert.crt> /tmp/ibmse/hkds/
      Copy to Clipboard Toggle word wrap
  4. RSA 키를 생성합니다.

    1. 다음 명령을 실행하여 RSA 키 쌍을 생성합니다.

      $ openssl genrsa -aes256 -passout pass:<password> -out /tmp/encrypt_key-psw.pem 4096 
      1
      Copy to Clipboard Toggle word wrap
      1
      RSA 키 암호를 지정합니다.
    2. 다음 명령을 실행하여 RSA 키에 대한 임시 디렉터리를 생성합니다.

      $ mkdir -p /tmp/ibmse/rsa
      Copy to Clipboard Toggle word wrap
    3. 다음 명령을 실행하여 encrypt_key.pub 키를 만듭니다.

      $ openssl rsa -in /tmp/encrypt_key-psw.pem -passin pass:<password> -pubout -out /tmp/ibmse/rsa/encrypt_key.pub
      Copy to Clipboard Toggle word wrap
    4. 다음 명령을 실행하여 encrypt_key.pem 키를 생성합니다.

      $ openssl rsa -in /tmp/encrypt_key-psw.pem -passin pass:<password> -out /tmp/ibmse/rsa/encrypt_key.pem
      Copy to Clipboard Toggle word wrap
  5. 다음 명령을 실행하여 /tmp/ibmse 디렉터리의 구조를 확인합니다.

    $ tree /tmp/ibmse
    Copy to Clipboard Toggle word wrap

    출력 예

    /tmp/ibmse
    ├──kbs.key
    ├──kbs.crt
    |
    ├── certs
    │ ├── ibm-z-host-key-signing-gen2.crt
    | └── DigiCertCA.crt
    ├── crls
    │ └── ibm-z-host-key-gen2.crl
    │ └── DigiCertTrustedRootG4.crl
    │ └── DigiCertTrustedG4CodeSigningRSA4096SHA3842021CA1.crl
    ├── hdr
    │ └── hdr.bin
    ├── hkds
    │ └── <hkd_cert.crt>
    └── rsa
    ├── encrypt_key.pem
    └── encrypt_key.pub
    Copy to Clipboard Toggle word wrap

  6. 다음 단계를 수행하여 이러한 파일을 OpenShift Container Platform 작업자 노드에 복사합니다.

    1. 다음 명령을 실행하여 /tmp/ibmse 디렉토리에서 압축 파일을 생성합니다.

      $ tar -czf ibmse.tar.gz -C /tmp/ ibmse
      Copy to Clipboard Toggle word wrap
    2. 다음 명령을 실행하여 .tar.gz 파일을 클러스터의 bastion 노드에 복사합니다.

      $ scp /tmp/ibmse.tar.gz root@<ocp_bastion_ip>:/tmp 
      1
      Copy to Clipboard Toggle word wrap
      1
      bastion 노드의 IP 주소를 지정합니다.
    3. 다음 명령을 실행하여 SSH를 통해 bastion 노드에 연결합니다.

      $ ssh root@<ocp_bastion_ip>
      Copy to Clipboard Toggle word wrap
    4. 다음 명령을 실행하여 .tar.gz 파일을 각 작업자 노드에 복사합니다.

      $ scp /tmp/ibmse.tar.gz core@<worker_node_ip>:/tmp 
      1
      Copy to Clipboard Toggle word wrap
      1
      작업자 노드의 IP 주소를 지정합니다.
    5. 다음 명령을 실행하여 각 작업자 노드에서 .tar.gz 를 추출합니다.

      $ ssh core@<worker_node_ip> 'sudo mkdir -p /opt/confidential-containers/ && sudo tar -xzf /tmp/ibmse.tar.gz -C /opt/confidential-containers/'
      Copy to Clipboard Toggle word wrap
    6. 다음 명령을 실행하여 ibmse 폴더 권한을 업데이트합니다.

      $ ssh core@<worker_node_ip> 'sudo chmod -R 755 /opt/confidential-containers/ibmse/'
      Copy to Clipboard Toggle word wrap
  7. 다음 단계를 수행하여 KBS 키 및 인증서를 사용하여 클러스터에 보안을 생성합니다.

    1. 다음 예에 따라 kbs-https-certificate.yaml 매니페스트 파일을 생성합니다.

      apiVersion: v1
      kind: Secret
      metadata:
       name: kbs-https-certificate
       namespace: trustee-operator-system
      data:
       https.crt: $(cat /tmp/ibmse/kbs.crt | base64 -w 0)
      Copy to Clipboard Toggle word wrap
    2. 다음 명령을 실행하여 KBS 인증서로 보안을 생성합니다.

      $ oc apply -f kbs-https-certificate.yaml
      Copy to Clipboard Toggle word wrap
    3. 다음 예에 따라 kbs-https-key.yaml 매니페스트 파일을 생성합니다.

      apiVersion: v1
      kind: Secret
      metadata:
        name: kbs-https-key
        namespace: trustee-operator-system
      data:
       https.key: $(cat /tmp/ibmse/kbs.key | base64 -w 0)
      Copy to Clipboard Toggle word wrap
    4. 다음 명령을 실행하여 KBS 키로 보안을 생성합니다.

      $ oc apply -f kbs-https-key.yaml
      Copy to Clipboard Toggle word wrap
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat