8.14. IBM Secure Execution 証明書と鍵の設定
ワーカーノードの IBM Secure Execution (SE) 証明書とキーを設定する必要があります。
前提条件
- bastion ノードの IP アドレスがある。
- ワーカーノードの内部 IP アドレスがある。
手順
次の手順を実行して、キーブローカーサービス (KBS) 証明書とキーを生成します。
次の例に従って
kbs.conf設定ファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、KBS キーと自己署名証明書を生成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、KBS キーを
ibmseディレクトリーにコピーします。cp kbs.key /tmp/ibmse/kbs.key
$ cp kbs.key /tmp/ibmse/kbs.keyCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、KBS 証明書を
ibmseディレクトリーにコピーします。cp kbs.crt /tmp/ibmse/kbs.crt
$ cp kbs.crt /tmp/ibmse/kbs.crtCopy to Clipboard Copied! Toggle word wrap Toggle overflow
次の手順を実行して、アテステーションポリシーフィールドを取得します。
次のコマンドを実行して、
GetRvps.shスクリプトをダウンロードするディレクトリーを作成します。mkdir -p Rvps-Extraction/
$ mkdir -p Rvps-Extraction/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行してスクリプトをダウンロードします。
wget https://github.com/openshift/sandboxed-containers-operator/raw/devel/scripts/rvps-extraction/GetRvps.sh -O $PWD/GetRvps.sh
$ wget https://github.com/openshift/sandboxed-containers-operator/raw/devel/scripts/rvps-extraction/GetRvps.sh -O $PWD/GetRvps.shCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行してサブディレクトリーを作成します。
mkdir -p Rvps-Extraction/static-files
$ mkdir -p Rvps-Extraction/static-filesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
static-filesディレクトリーに移動します。cd Rvps-Extraction/static-files
$ cd Rvps-Extraction/static-filesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
pvextract-hdrツールをダウンロードします。wget https://github.com/openshift/sandboxed-containers-operator/raw/devel/scripts/rvps-extraction/static-files/pvextract-hdr -O $PWD/pvextract-hdr
$ wget https://github.com/openshift/sandboxed-containers-operator/raw/devel/scripts/rvps-extraction/static-files/pvextract-hdr -O $PWD/pvextract-hdrCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、ツールを実行可能にします。
chmod +x pvextract-hdr
$ chmod +x pvextract-hdrCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
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
$ wget https://github.com/openshift/sandboxed-containers-operator/raw/devel/scripts/rvps-extraction/static-files/se_parse_hdr.py -O $PWD/se_parse_hdr.pyCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、Host Key Document (HKD) 証明書を
static-filesディレクトリーにコピーします。cp ~/path/to/<hkd_cert.crt> .
$ cp ~/path/to/<hkd_cert.crt> .Copy to Clipboard Copied! Toggle word wrap Toggle overflow static-filesディレクトリーには次のファイルが含まれています。-
HKD.crt -
pvextract-hdr -
se_parse_hdr.py
-
次のコマンドを実行して、
Rvps-Extractionディレクトリーに移動します。cd ..
$ cd ..Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
GetRvps.shスクリプトを実行可能にします。chmod +x GetRvps.sh
$ chmod +x GetRvps.shCopy to Clipboard Copied! Toggle word wrap Toggle overflow スクリプトを実行します。
./GetRvps.sh
$ ./GetRvps.shCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ボリュームから参照値プロバイダーサービスを生成するには、
2を入力します。Please enter your choice: 2
Please enter your choice: 2Copy to Clipboard Copied! Toggle word wrap Toggle overflow libvirt プール名として
fa-ppを入力します。Enter the Libvirt Pool Name: fa-pp
Enter the Libvirt Pool Name: fa-ppCopy to Clipboard Copied! Toggle word wrap Toggle overflow libvirt ゲートウェイ URI を入力します。
Enter the Libvirt URI Name: <libvirt-uri>
Enter the Libvirt URI Name: <libvirt-uri>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- ピア Pod シークレット を作成するために使用した
LIBVIRT_URI値を指定します。
libvirt ボリューム名として
fa-pp-volと入力します。Enter the Libvirt Volume Name: fa-pp-vol
Enter the Libvirt Volume Name: fa-pp-volCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
次の手順を実行して、証明書と証明書失効リスト (CRL) を取得します。
次のコマンドを実行して、証明書用の一時ディレクトリーを作成します。
mkdir /tmp/ibmse/certs
$ mkdir /tmp/ibmse/certsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して、
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
$ 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.crtCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
DigiCertCA.crt証明書をダウンロードします。wget https://www.ibm.com/support/resourcelink/api/content/public/DigiCertCA.crt -O /tmp/ibmse/certs/DigiCertCA.crt
$ wget https://www.ibm.com/support/resourcelink/api/content/public/DigiCertCA.crt -O /tmp/ibmse/certs/DigiCertCA.crtCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、CRL の一時ディレクトリーを作成します。
mkdir /tmp/ibmse/crls
$ mkdir /tmp/ibmse/crlsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
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
$ 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.crlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
DigiCertTrustedRootG4.crlファイルをダウンロードします。wget http://crl3.digicert.com/DigiCertTrustedRootG4.crl -O /tmp/ibmse/crls/DigiCertTrustedRootG4.crl
$ wget http://crl3.digicert.com/DigiCertTrustedRootG4.crl -O /tmp/ibmse/crls/DigiCertTrustedRootG4.crlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
DigiCertTrustedG4CodeSigningRSA4096SHA3842021CA1.crlファイルをダウンロードします。wget http://crl3.digicert.com/DigiCertTrustedG4CodeSigningRSA4096SHA3842021CA1.crl -O /tmp/ibmse/crls/DigiCertTrustedG4CodeSigningRSA4096SHA3842021CA1.crl
$ wget http://crl3.digicert.com/DigiCertTrustedG4CodeSigningRSA4096SHA3842021CA1.crl -O /tmp/ibmse/crls/DigiCertTrustedG4CodeSigningRSA4096SHA3842021CA1.crlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
hdr.binファイル用の一時ディレクトリーを作成します。mkdir -p /tmp/ibmse/hdr/
$ mkdir -p /tmp/ibmse/hdr/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
hdr.binファイルをhdrディレクトリーにコピーします。cp /root/Rvps-Extraction/output-files/hdr.bin /tmp/ibmse/hdr/
$ cp /root/Rvps-Extraction/output-files/hdr.bin /tmp/ibmse/hdr/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、Host Key Document (HKD) 証明書用の一時ディレクトリーを作成します。
mkdir -p /tmp/ibmse/hkds
$ mkdir -p /tmp/ibmse/hkdsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、HKD 証明書を
hkdsディレクトリーにコピーします。cp ~/path/to/<hkd_cert.crt> /tmp/ibmse/hkds/
$ cp ~/path/to/<hkd_cert.crt> /tmp/ibmse/hkds/Copy to Clipboard Copied! Toggle word wrap Toggle overflow
RSA 鍵を生成します。
次のコマンドを実行して RSA のキーペアを生成します。
openssl genrsa -aes256 -passout pass:<password> -out /tmp/encrypt_key-psw.pem 4096
$ openssl genrsa -aes256 -passout pass:<password> -out /tmp/encrypt_key-psw.pem 40961 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- RSA 鍵のパスワードを指定します。
次のコマンドを実行して、RSA 鍵の一時ディレクトリーを作成します。
mkdir -p /tmp/ibmse/rsa
$ mkdir -p /tmp/ibmse/rsaCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して
encrypt_key.pub鍵を作成します。openssl rsa -in /tmp/encrypt_key-psw.pem -passin pass:<password> -pubout -out /tmp/ibmse/rsa/encrypt_key.pub
$ openssl rsa -in /tmp/encrypt_key-psw.pem -passin pass:<password> -pubout -out /tmp/ibmse/rsa/encrypt_key.pubCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して
encrypt_key.pem鍵を作成します。openssl rsa -in /tmp/encrypt_key-psw.pem -passin pass:<password> -out /tmp/ibmse/rsa/encrypt_key.pem
$ openssl rsa -in /tmp/encrypt_key-psw.pem -passin pass:<password> -out /tmp/ibmse/rsa/encrypt_key.pemCopy to Clipboard Copied! Toggle word wrap Toggle overflow
次のコマンドを実行して、
/tmp/ibmseディレクトリーの構造を確認します。tree /tmp/ibmse
$ tree /tmp/ibmseCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の手順を実行して、これらのファイルを OpenShift Container Platform ワーカーノードにコピーします。
以下のコマンドを実行して、
/tmp/ibmseディレクトリーから圧縮ファイルを作成します。tar -czf ibmse.tar.gz -C /tmp/ ibmse
$ tar -czf ibmse.tar.gz -C /tmp/ ibmseCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
.tar.gzファイルをクラスターの bastion ノードにコピーします。scp /tmp/ibmse.tar.gz root@<ocp_bastion_ip>:/tmp
$ scp /tmp/ibmse.tar.gz root@<ocp_bastion_ip>:/tmp1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- bastion ノードの IP アドレスを指定します。
次のコマンドを実行して、SSH 経由で bastion ノードに接続します。
ssh root@<ocp_bastion_ip>
$ ssh root@<ocp_bastion_ip>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
.tar.gzファイルを各ワーカーノードにコピーします。scp /tmp/ibmse.tar.gz core@<worker_node_ip>:/tmp
$ scp /tmp/ibmse.tar.gz core@<worker_node_ip>:/tmp1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- ワーカーノードの IP アドレスを指定します。
次のコマンドを実行して、各ワーカーノードで
.tar.gzを抽出します。ssh core@<worker_node_ip> 'sudo mkdir -p /opt/confidential-containers/ && sudo tar -xzf /tmp/ibmse.tar.gz -C /opt/confidential-containers/'
$ 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 Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
ibmseフォルダーの権限を更新します。ssh core@<worker_node_ip> 'sudo chmod -R 755 /opt/confidential-containers/ibmse/'
$ ssh core@<worker_node_ip> 'sudo chmod -R 755 /opt/confidential-containers/ibmse/'Copy to Clipboard Copied! Toggle word wrap Toggle overflow
次の手順を実行して、KBS キーと証明書を使用してクラスター内にシークレットを作成します。
次の例に従って、
kbs-https-certificate.yamlマニフェストファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、KBS 証明書を含むシークレットを作成します。
oc apply -f kbs-https-certificate.yaml
$ oc apply -f kbs-https-certificate.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次の例に従って、
kbs-https-key.yamlマニフェストファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、KBS キーを使用してシークレットを作成します。
oc apply -f kbs-https-key.yaml
$ oc apply -f kbs-https-key.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow